You can edit almost every page by Creating an account and confirming your email.

AWFLWIKIWORLD

From EverybodyWiki Bios & Wiki

<infobox> |title=AWFLWIKIWORLD| |image=/logo/aedtpworld.svg| |caption=The AWFLWIKIWORLD logo| |Developer=AEDTP WORLD| |Type=Wiki engine| |Interface style=MediaWiki / Vector 2022| |Written in=PHP 8.3| |License=AEDTP WORLD FREE LICENSE (AWFL)| |Storage=Flat files (.txt pages, .json users/settings)| |Default skin=vector2022| </infobox>

AWFLWIKIWORLD is a self-contained, MediaWiki-style wiki engine built in plain PHP. It stores every page as a plain text file, every user as a JSON record, and every visual style as a CSS file — no database, no build step, no external dependencies. Copy the folder onto any PHP 8.3 server (or run it on localhost), fill in one configuration file, and you have a working wiki.

This page explains what AWFLWIKIWORLD is, why it exists, how it is built, and how to use every part of it — as a visitor, as a registered user, and as the administrator.

What is AWFLWIKIWORLD

AWFLWIKIWORLD is a wiki platform: a website anyone (or anyone you allow) can read, and that logged-in users can create and edit pages on, using a simplified text markup called AWFLWIKITEXT. Pages are organized under a root namespace or grouped into named spaces (for example, a space called Music could hold a page Music/Buddy DML). Every page can carry an infobox — a small fact-table, the same idea as the boxes you see in the top-right corner of Wikipedia articles.

Unlike most wiki software, AWFLWIKIWORLD keeps everything in ordinary files:

  • Each wiki page is one .txt file containing raw AWFLWIKITEXT.
  • Each user is one JSON record in users/users.json.
  • Each visual theme is one .css file in skins/.
  • Uploaded pictures are plain .jpg/.png files in images/.

This makes the whole wiki easy to back up (copy the folder), easy to inspect (open any file in a text editor), and easy to move between a local computer and a live server.

Why AWFLWIKIWORLD

AWFLWIKIWORLD was built for people who want a Wikipedia-like knowledge base without running a database server, without installing a heavyweight CMS, and without losing control of their own content. Because every page is a plain text file:

  • You can read or edit the raw content outside the wiki, with any text editor.
  • You can move the wiki by copying a folder — no database export/import.
  • You can inspect exactly what the system stores, since nothing is hidden inside binary tables.
  • You still get the features people expect from a real wiki: accounts, page history for admin edits, protected pages, image galleries, sitemaps, and a skins system.

How it is Built (Architecture)

The engine is a small number of PHP scripts working together:

  • config.php — the single file every other script reads. It defines the site name, the site's own URL ($Server), the admin login, upload rules, and the URL style.
  • includes/functions.php — the engine room: user accounts, page storage, the AWFLWIKITEXT parser, image handling, and URL building all live here.
  • includes/header.php and includes/footer.php — the shared page frame (navigation bar, meta tags, footer) that every page includes.
  • index.php — the main controller. Almost every page you visit — viewing an article, logging in, editing, saving, downloading — passes through this one file.
  • dashboard/index.php — the admin control panel.
  • allusers/index.php and allimages/index.php — public directories of accounts and uploaded pictures.
  • sitemap/sitemap.php — builds the search-engine sitemap.

File Structure

  • index.php — the interface every visitor loads.
  • config.php — site settings (see below).
  • .htaccess — hides raw data files (.txt, .json) from being downloaded directly, and enables pretty URLs.
  • includes/header.php, includes/footer.php, includes/functions.php — shared page frame and engine code.
  • users/users.json — every registered account (hashed passwords only).
  • users/recover.php — the "forgot password" page.
  • assets/site.css, assets/site.js — the default look and the editor toolbar script. These never change; skins layer on top of them.
  • skins/vector2022.css — the default skin. More skins can be added here.
  • images/ — uploaded .jpg/.png files. images/trash/ holds images an admin has deleted but not yet permanently removed.
  • allusers/index.php — public list of accounts.
  • allimages/index.php — public gallery of uploaded images.
  • namespaces/{pagename}.txt — a root-level article.
  • namespaces/{space name}/{pagename}.txt — an article inside a named space.
  • logo/aedtpworld.svg — the default logo, used whenever $Logo is not overridden.
  • dashboard/index.php — the admin panel (skins, colors, pages, images).
  • dashboard/history.json, dashboard/history.php — the admin's own edit history.
  • dashboard/protected.json — the list of protected page titles.
  • sitemap/sitemap.xml, sitemap/sitemap.php — the generated sitemap and the script that builds it.

Getting Started (Installation)

  1. Copy the whole wikiworld folder onto your PHP 8.3 server, or into any folder you will run with PHP's built-in server for local testing.
  2. Open config.php in a text editor.
  3. Set $Server to the exact base URL you will use to reach the wiki — for example https://example.com/wiki or http://localhost:8099. This is not auto-detected; you must type it in, because auto-detection breaks on real hosting (reverse proxies, subfolders, and admin/sitemap pages living in subdirectories would each guess a different, wrong URL).
  4. Set $Sitename, $MetaTitle and $MetaDescription to describe your wiki.
  5. Set $Username and $Password to your admin login.
  6. Choose an $route mode (explained below).
  7. Visit $Server/index.php in a browser. You should see the built-in Main Page.

If you see a message saying the wiki "is not configured yet," it means $Server is still blank in config.php — fill it in and reload.

The $route modes

$route controls the shape of every page's URL:

  • "0" — {$Server}/index.php?title=Pagename (and ?title=Space/Pagename). Works everywhere, no server configuration needed. This is the default.
  • "1" — {$Server}/Pagename (and {$Server}/Space/Pagename). Pretty URLs. Requires the supplied .htaccess and an Apache server with mod_rewrite and AllowOverride All.
  • "2" — {$Server}/namespaces/Pagename. Looks like a direct link into the namespaces/ folder, but is still served by index.php — the .htaccess rules stop anyone from downloading the raw .txt file directly.

Using AWFLWIKIWORLD as a Visitor (not logged in)

Anyone can:

  • Read any page.
  • Use the search box in the header to jump straight to a page by title.
  • Browse Special:AllPages to see every page that exists.
  • Browse the image gallery at allimages/index.php — see every uploaded picture, in a 7-column grid or a sortable detail table, and use the Copy link / Copy name buttons on any image.
  • Browse the account directory at allusers/index.php.
  • Download any page as a .txt file (the raw AWFLWIKITEXT) or as a self-contained .html file (styled the same as the live page, so it looks right even opened offline).
  • Print any page (which also lets you "print to PDF" from the browser's print dialog).

Visitors cannot create pages, edit pages, or upload images — those require an account.

Using AWFLWIKIWORLD as a Registered User

Creating an account

Go to Special:Register and fill in a username, display name, email, password, and a security question and answer (used later for password recovery). Usernames must be 3–32 characters (letters, numbers, -, _, .), and the name admin is reserved. Once registered, log in at Special:Login.

Recovering a forgotten password

Open users/recover.php. You will be asked for your username, then your registration email and your security answer. If everything matches, you are immediately allowed to set a brand-new password — no email link required. Passwords and security answers are never stored in plain text; only their hashes are kept, so recovery always works by re-checking your answer, never by revealing the old password.

Creating and editing pages

To create a page, search for or navigate to its title and click Create. To edit an existing page, click Edit. Both open the same editor:

  • A toolbar with B (bold), I (italic), U (underline), P (paragraph break), List (bulleted list) and Infobox (inserts a ready-made infobox template) — each wraps or inserts AWFLWIKITEXT around your current text selection.
  • A source editor, the plain text box where the raw AWFLWIKITEXT lives.
  • A visual editor (preview) tab, which sends your current text to the server and shows exactly how it will render, without saving anything yet.

Click Save page to publish your changes immediately.

Note on protected pages: if an admin has protected a page, only an admin can edit it — the Edit link disappears (or is blocked server-side even if requested directly) for everyone else.

AWFLWIKITEXT — the markup language

AWFLWIKITEXT is a small, MediaWiki-inspired markup language. All of it can be typed by hand or inserted with the editor toolbar:

  • Bold: wrap text in three apostrophes, like '''this'''.
  • Italic: wrap text in two apostrophes, like ''this''.
  • Underline: wrap text in two underscores, like __this__.
  • Headings: surround a line with two to six equals signs, like == A Heading == (more equals signs make a smaller heading).
  • Bulleted list: start a line with an asterisk and a space, like * An item.
  • Numbered list: start a line with a hash and a space, like # An item.
  • Paragraphs: leave a blank line between blocks of text — each block becomes its own paragraph automatically.
  • Internal link: [[Page Name]], or [[Page Name|words to display instead]]. A link to a page that does not exist yet is still shown, in a different style, so you can click it to create that page.
  • External link: [http://example.com link text].
  • Bare images: any line that is just an image filename or URL ending in .jpg, .jpeg, .png, .gif, .svg or .webp is automatically rendered as a picture, shown at 250 pixels wide.

Infoboxes

An infobox is a small fact-table, usually shown floated at the top right of an article — exactly like the one at the top of this page. Write one like this:

<infobox> |title=Subject Name| |image=some-picture.jpg| |caption=A short caption for the picture| |Born=1 January 2000| |Occupation=Example, Example| |anything=you like| </infobox>

Rules:

  • title, image and caption are each allowed only once per infobox, and always appear in that fixed order — title first, then the image, then the caption underneath it — no matter where you typed them in the block.
  • Every other line becomes its own row: the part before the equals sign is shown in bold as the row's label, and the part after it is the value. You can add as many of these as you like, and they appear in the exact order you wrote them.
  • image turns any filename or link ending in an image extension into a real picture, shown at 250 pixels wide.
  • caption is shown under the picture and used as its alt text.
  • Outside of an infobox, ordinary images placed directly in the page text are also shown at 250 pixels wide by default.

Uploading images

If the admin has enabled uploads, any logged-in user can add a picture at Special:Upload. Only .jpg and .png files are accepted. Once uploaded, an image can be referenced in any page (bare, or inside an infobox) just by its filename, for example mypicture.jpg.

Downloading and printing

Every page offers:

  • Download .txt — the raw AWFLWIKITEXT, exactly as stored.
  • Download .html — a single, self-contained HTML file with the page's styling embedded in it, so it looks right even with no internet connection.
  • Print / PDF — opens your browser's print dialog, which on most browsers can also "print" straight to a PDF file.

Using AWFLWIKIWORLD as the Administrator

Log in with the $Username / $Password set in config.php. The admin account is not a row in users/users.json — it is defined directly in the configuration file and always has full control.

The Dashboard

Open the Dashboard link in the navigation bar (dashboard/index.php). It has four sections:

  • Skins — pick which skin is active site-wide, or create a brand-new skin by typing its CSS. The default vector2022 skin can be selected but never edited or deleted; create a new skin instead if you want to change the look.
  • Colors — a small palette for the site's core colors (header background, header text, buttons, button text, wiki page text, and links). Pick a color visually or type a hex code directly; the change applies across the whole wiki immediately, on top of whichever skin is active.
  • Pages — a list of every page, with a delete button per page and a "Delete all pages" button. This is also where you can trigger the sitemap to regenerate on demand.
  • Images — every uploaded image, with a delete button per image.

Managing users

The All users directory lists every account except the admin's own. Anyone can view it; only the admin sees extra controls per row to:

  • Rename a user's username.
  • Set a new password for a user directly — no need to know their old one, since passwords are stored hashed.
  • Remove a user entirely. Removing a user deletes their account record, but never deletes the pages or edits they made — those stay exactly as they are.

The admin account can never remove itself. A regular user can remove their own account at any time (through the admin, since only the admin can perform removals) and, likewise, their past contributions are kept.

Managing images (All Images)

allimages/index.php is visible to everyone, but the admin sees more:

  • Content view — a seven-column grid of thumbnails, each with Copy link and Copy file name buttons.
  • Detail view — a sortable table (click any column heading to sort ascending or descending) showing file name, extension, size, and upload date. Everyone gets these four columns; the admin gets a fifth column of checkboxes.
  • As admin, above the table you get Delete selected (moves the chosen images to images/trash/ rather than erasing them outright), Restore selected (only shown while viewing the "Deleted" tab, moves images back out of the trash), and Rename selected (type a new name into the box next to each checked row, then click to apply).

Page protection

Every page has a Protect button, visible only to the admin. Protecting a page means only the admin can edit it from then on — anyone else who tries (even by submitting the edit form directly) is blocked with a clear message. Clicking Unprotect opens editing back up to every logged-in user. Only the admin can protect or unprotect a page.

Admin edit history

Every time the admin saves a page, AWFLWIKIWORLD quietly records that exact content in dashboard/history.json — the page's name, its filename, its space (if any), the date, and the full text. This history holds only the one latest admin edit for each page; saving the same page again simply updates that one record rather than creating a new one.

Open History in the navigation bar (admin only) to see every recorded page, sortable by any column. Two actions are available, both requiring on-screen confirmation:

  • Delete selected — permanently removes the chosen history record(s).
  • Restore selected — writes the saved content straight back to the live page, overwriting whatever is there now. This is most useful after a regular user's edit has changed a page the admin had previously written, since only admin saves are tracked — restoring brings the admin's version back.

Sitemap generation

sitemap/sitemap.php builds a search-engine sitemap of every page. If the list of pages would make a single file larger than roughly 1 megabyte, it is automatically split into several files (sitemap-1.xml, sitemap-2.xml, and so on), and sitemap.xml is (re)written as an index that lists every split file. It also writes robots.txt pointing at that index. Because search engines crawl an index and then follow every entry inside it automatically, submitting the single sitemap.xml address once is enough — you never need to resubmit each split by hand.

Namespaces and Spaces

A page can live at the root (namespaces/Pagename.txt) or inside a named space (namespaces/Space Name/Pagename.txt), written and linked as Space Name/Pagename. Spaces are a simple way to group related pages, the same way a folder groups related files.

Title Handling

Page titles can contain spaces when you type or link them — for example, Buddy DML. Behind the scenes, AWFLWIKIWORLD always stores and links that page using underscores instead of spaces (Buddy_DML.txt, linked as Buddy_DML), while still displaying the title with spaces wherever it is shown to a reader. This matches how MediaWiki itself handles titles, and it means links, downloads and file names never contain raw spaces.

Security Notes

  • Passwords and security-question answers are never stored as plain text — only their one-way hashes are kept in users/users.json.
  • The supplied .htaccess blocks direct web access to every raw .txt and .json file, so page content and account records can never be downloaded straight off the server by guessing a URL — they can only be reached through the wiki's own pages.
  • Only the admin can delete users, delete or protect pages, change the skin or colors, or manage images and history.

Frequently Asked Questions

  • Do I need a database? No. Everything is stored in plain text and JSON files.
  • Can I move my wiki to another server? Yes — copy the whole folder, update $Server in config.php to the new address, and you are done.
  • Can I change how the wiki looks without touching PHP? Yes — skins are plain CSS files, created and switched from the Dashboard.
  • What happens to a user's pages if their account is removed? Nothing — page content is never tied to the account being present, so removing a user never deletes what they wrote.
  • What if I delete an image by mistake? As admin, open the "Deleted" tab in All Images and restore it — deleted images go to a trash folder rather than being erased immediately.
  • Can a regular user undo someone else's edit? AWFLWIKIWORLD does not keep a version history for every user — only the admin's own latest edit to each page is tracked, in the Dashboard's History section, precisely so an admin can always restore their own last version.

See Also