← Categories
20 page(s) categorized as CategoryDocumentation
APIsLast modified Wed Apr 2 14:25:33 UTC 2014Aneuch offers several API calls to assist plugin developers, which are documented here.
Note that while it is certainly possible to call these functions in your config.pl file, they may or may not work as expected. The only guaranteed way they will work as you might expect them to is by calling them from a plugin (or registering a "late load" sub by using the [[APIs RegPostInitSub|RegPostInitSub]] API call). See [[Script Flow]] for more information.
Basically, if you want to call Unreg* on anything that was Reg*'d in InitVars, you won't be able to accomplish this in your config.pl file (as InitConfig is run before InitVars). If you wish to unregister something that is registered in InitVars, you'll have to call the unregister function from a plugin (which gets loaded after InitVars).
%APIs%
----
CategoryDocumentation
BannedContentLast modified Wed Aug 28 20:32:37 UTC 2013As part of its [[Spam|anti-spam capabilities]], Aneuch administrators can set rules for the types of content allowed on a wiki. The administrator accomplishes this by visiting the administration menu, then selecting the **Ban certain types of content** option.
From this screen, the administrator can enter [[http://en.wikipedia.org/wiki/Regular_expression|regular expressions]] that he might want to match.
For example, this line would block anything that starts with [url= (which is BBCode, and not valid Creole markup)
`\[url=`
You can also use a bare word, for example "viagra" or similar. Be careful using bare words however, as if they occur innocuously in the middle of a word, that will be blocked. An example would be if you use the bare word **ass**, it would block any edit which included the words //b**ass**//, //**ass**ociate//, etc.
We publish the contents of the BannedContent file used here on the Aneuch wiki on the page [[BannedContentFile]]. Feel free to copy the contents of that into your own BannedContent file.
----
CategoryDocumentation
BlockingLast modified Wed Jul 31 16:39:41 UTC 2013Blocking an IP address is simple to accomplish in Aneuch.
# Enter the Admin menu
# Click the "(Un)Block users" link
# Add the IP address to the text area, and click "Save"
See how easy that was?
----
CategoryDocumentation
ConfiguringLast modified Fri Nov 14 01:56:49 UTC 2014You will have to rename config.pl.dist to config.pl (if you do not already have a config file in place). To do this through the shell, type: **`mv config.pl.dist config.pl`**
Now open up config.pl in your favorite editor (mine is vi) and modify the variables to your liking. The config file is **very** well documented, however feel free to ask any questions you may have on the [[Discuss_Configuring|discussion page]].
==Variables==
Here are all the variables that can be set within config.pl. These are also documented with comments within the default config.pl.dist file, but are available here for reference.
**$DataDir** - This setting tells Aneuch where to store its data. It defaults to '/tmp/aneuch', which is probably not where you want it. Change this to point to a directory that your webserver has write access to (or if running SUExec, a directory that YOU can write to). All other directories that Aneuch uses will be created within this directory (i.e. pages, archive, etc). Note that you should not include the trailing slash. But if you do by mistake, Aneuch is sensible enough to remove it for you.
**$SiteName** - This is the name of your site, and defaults to 'Aneuch'. The site name will appear in the HTML title element, as well as in the footer of your site.
**$SiteMode** - This is quite possibly one of the most important settings you NEED to change. This variable controls if your site is wide open (anyone can post) or closed (only you can post). The default value is 0, which is wide open. Here is a list of potential values and what they mean:
* 0 = Wide open, anyone can edit.
* 1 = Anyone can add to Discussion pages, but cannot edit anything
* 2 = Nobody can post anything, unless authenticated.
* 3 = Nobody can view anything, unless authenticated.
**@Passwords** - This goes hand in hand with the **$SiteMode** variable above. If **$SiteMode** > 0, then you must set a password in this array to be able to allow someone to edit pages. As I mentioned, this is a . . .
Creating PagesLast modified Wed Jul 31 16:16:40 UTC 2013Creating a page in Aneuch is easy. Simply add a link to it from another page, or type its name directly into the address bar following your site's URL.
You will see a message that "It appears there is nothing here." At the bottom you will see a link to edit this page. Simply click that link, add content to the page, and click "Save". Your page will now exist.
----
CategoryDocumentation
Deleting PagesLast modified Sun Jun 25 12:41:50 UTC 2017%notice This page contains information pertaining to [[Version 0.40]] or higher only. For information on how page deleting worked prior to this release, refer to the page [[Deleting Pages pre 0.40]].%
Deleting pages in Aneuch is pretty easy. Simply navigate to the page you want to delete, and click the edit link.
At the bottom of the page editor, you'll see a Delete button. Click that, and you'll notice your page content will be replaced with the text "DeletedPage" and the summary field will be populated with a note that the page has been marked for deletion.
Alternatively, you can delete all of the page content, and enter "DeletedPage" by itself on the first line. You can put anything you'd like after that line (such as information or discussions as to why the page is being deleted). However, the text "DeletedPage" must be the only thing on the first line.
After the amount of time defined in the variable `**$PurgeDeletedPage**` (default 2 weeks) the page will automatically be deleted via a [[Maintenance Tasks|maintenance task]]. Administrators can force delete a page from the administrative back-end by clicking on the "List Pending Deleted Pages" tab and then clicking the force delete link next to the desired page.
For information about the different methods of deleting pages, see [[Immediate vs Delayed Deleting]].
----
CategoryDocumentation
Deleting Pages pre 0.40Last modified Fri Nov 7 17:25:46 UTC 2014%notice This page pertains to versions of Aneuch prior to [[Version 0.40]]%
Deleting pages in Aneuch is pretty easy. Simply navigate to the page you want to delete, and click the edit link.
If you have edit capabilities (or if the wiki is wide-open), you'll notice a link next to the Save button on the bottom titled "Delete Page".
Click that link, and you'll be directed to answer the question "Are you sure you want to delete the page?". If you answer yes, then the page, all its archived copies, and any references to it in the RecentChanges log will be removed from your site. //Note: This action **cannot** be undone!!//
See [[Immediate vs Delayed Deleting]].
----
CategoryDocumentation
Developing PluginsLast modified Mon Jul 18 22:56:20 UTC 2016Developing [[Plugins]] for Aneuch is easy and fun. Plugins are simple PERL scripts that allow you to extend the feature set of Aneuch.
All plugins will reside in a folder called 'plugins' that lives within the $DataDir. Plugin names will end in either '.pl' or '.pm'. If you want to disable a plugin, simply add '.disabled' (or anything, really) to the end of its name and it will not be loaded.
Plugins should have a hash-bang (#!) line at the very top that points at PERL, normally **`#!/usr/bin/perl`**. The next line will say **`package Aneuch;`**. Following that should be a line that says **`push @Plugins`** followed by a string which contains plugin name, version, and a description and link to plugin homepage. An example would be:
**`push @Plugins, "<a href='http://aneuch.myunixhost.com/Plugins_PlainHTML'>plainhtml.pl</a>, version 1.0 - Allows the use of plain HTML pages (instead of markup)";`**
After this, a plugin may begin defining variables and subs as it sees fit.
A plugin may replace a built-in sub by doing the following:
**`*OldMarkup = \&Markup;\\*Markup = \&NewMarkup;`**
And then go on to define sub NewMarkup.
==[[APIs]]==
Aneuch includes several API calls that plugin developers can use. You will find them documented on the page [[APIs]].
==Examples
You can always see examples of real live Aneuch plugins by viewing the [[https://github.com/ajgraves/aneuch/tree/master/plugins|plugins directory]] in the source repository.
----
CategoryDocumentation
Developing ThemesLast modified Thu Nov 23 02:44:22 UTC 2017%warning **Warning:** This page is significantly outdated. Attempting to use this information for any release of Aneuch beyond the 0.10 release will cause you nothing but heartache and pain. If you truly want to develop a theme for recent versions of Aneuch, in lieu of having updated information on this page it's suggested that you review the Aneuch source code, specifically the DoHeader, DoFooter, and DoCSS routines.%
Theming Anuech is relatively easy. There are two variables that control the theme, **$Header** and **$Footer**. $Header controls all of the code and text that is above individual page content (including HTML, CSS, etc), and $Footer controls everything after the individual page content.
As of [[Version_0_10|version 0.10]] there is no "theme framework" with which one could install/activate a theme. The way to do it is either set $Header and $Footer directly in your config.pl file, or create a [[Plugins|plugin]] to set the variables.
There are several variables which can be included within either the $Header or $Footer variables that will be interpolated when being sent out to the browser. They are:
**$SiteName:** - Displays what is set for $SiteName (useful for <title> elements)
**$PageName:** - Displays the current page name (underscores are replaced by spaces, so 'This_is_a_test' would be 'This is a test'
**$VERSION:** - The current version of Aneuch, useful for including a generator meta (but not necessary)
**$NavBar:** - Shows the navigation bar, which includes the default page and RecentChanges by default. $NavBar can be set directly in the config.pl file, or pages can be added to it by being included in the @NavBarPages variable.
**$ShortPage:** - Interchangeable now with $Page (in extremely early versions of Aneuch, $Page and $ShortPage were separate, however by public release time these variables now contain the same data. In time I will completely remove one in favor of the other). Will show the page name, such as 'ThisIsATest' or 'This . . .
DocumentationLast modified Sat Dec 12 17:57:01 UTC 2015[[http://xkcd.com/293/|{{right:http://imgs.xkcd.com/comics/rtfm.png}}]]
Aneuch has a goal to be well documented, and this page is the central location for all documentation.
===Administrators
Administrators can get assistance in [[Installing]] or [[Configuring]] your new Aneuch wiki. Occasionally, you may have to [[Blocking|block]] somebody, or [[BannedContent|ban content]]. Additionally, if you are [[Upgrading]], be sure to check if there are any special instructions for you to follow. You should also be aware of some [[Security Considerations]].
===Users
Users of the wiki can get assistance in using the [[Markup]] language, and how to [[Creating_Pages|create]] and [[Deleting_Pages|delete]] pages. You should also be aware of some [[Security Considerations]].
===Developers
Developers can get assistance on creating [[Themes]] or [[Plugins]], and will be interested in reading up on Aneuch's available [[APIs]].
===Finding Documentation
As a helpful hint, you can see all available documentation by clicking the below link titled //CategoryDocumentation//, which will in turn search for any page that has the tag CategoryDocumentation on it.
----
%category CategoryDocumentation%
File UploadsLast modified Thu Jun 5 02:29:32 UTC 2014%notice The information on this page applies to [[Version 0.40]] and above only. File uploads were not a feature in earlier versions of the software.%
To upload a file in Aneuch, simply create a page. At the bottom of the page, you'll notice a link that says "Upload a file" (if uploads are allowed, [[#Configuration_Options|see below]]). It will look similar to this:
{{UploadAFile.png}}
Once you click on that, you'll be taken to the file upload page:
{{FileUploadPage.png}}
From there it's pretty straight-forward. Click the "Browse..." button, select the file that you want to upload, enter your edit summary, and click "Upload". That's it!
It should be noted that files, like regular wiki pages, are versioned, and a history is kept in the page database.
==Configuration Options
The following settings in your `config.pl` file dictate how and/or if file uploads are implemented on your site.
===$UploadsAllowed
This variable sets whether or not files can be uploaded to the wiki. The default value is 0, which disables uploads, and is considered a sane default. Set it to 1 to allow file uploads.
===@UploadTypes
This array holds the MIME types that can be uploaded if file uploads are allowed. The default is set to include 'image/jpeg', 'image/gif', and 'image/png', and is considered a sane default.
----
CategoryDocumentation
InstallingLast modified Wed Jul 31 16:15:45 UTC 2013Installing Aneuch is easy. Simply extract the archive using the command "**`tar -xzvf`**". This will create a directory called "aneuch" which contains the following contents:
* aneuch.pl - The wiki engine
* htaccess.dist - A sample .htaccess file for you to use (if using Apache and your site allows htaccess files)
* config.pl.dist - Sample config file
* README - A short readme file
Once you have extracted the archive, you can move the files where you want them on your web server (or leave them in the aneuch folder).
==Redirecting==
You will have to set up an .htaccess file to handle the redirecting. The simplest way to do this is to rename htaccess.dist to .htaccess. If you have shell access, you can accomplish this using the command: **`mv htaccess.dist .htaccess`**
Doing this allows all requests to a file that does not exist to flow through the Aneuch script, which then serves it up as a wiki page.
==Configuring==
Information on configuring Aneuch can be found on the [[Configuring]] page.
----
CategoryDocumentation
MarkupLast modified Mon Jul 18 03:05:13 UTC 2016[[AneuchCheatsheet?do=view|{{right:AneuchCheatsheet|Aneuch Cheatsheet}}]]
The Aneuch wiki engine attempts to implement the [[http://www.wikicreole.org|Creole]] markup language, with a few deviations (and a few additions). You can see the cheat sheet to the right.
==Implemented Features==
* Bulleted lists (prefix with a '*')
* Numbered lists (prefix with a '#')
* Bold text (surround with two *'s)
* Italic text (surround with two /'s)
* Strikethrough text (surround with two -'s)
* Forced line breaks (use two \'s)
* H1 through H5 headers (start a line with ='s x level (one for H1, five for H5)
* Links, both internal and external (surround by two ['s and ]'s, optional text after a | character)
* Horizonal rule (four -'s)
* Teletype text (surround by backticks)
* Images (surround by 2 {'s and 2 }'s, optional alignment by prepending image url with 'right:' or 'left:', optional alt text after the image url and | character)
* Underline text (surround with two underscores)
* Multi-level lists
* Page-wide nowiki (put the text #NOWIKI by itself on the top line of your document)
* Pre-formatted text (<pre> tag, use triple braces '{' on a single line to start, and end with triple braces '}' on a single line)
==Planned Features==
* Tables (simple)
* Nowiki switches around text
----
CategoryDocumentation
PluginsLast modified Sat Dec 19 13:58:42 UTC 2020%info This page is all about the available plugins for Aneuch. For information on developing plugins, see [[Developing Plugins]].%
As plugins become available for Aneuch, they will be listed here. If you're a plugin developer, feel free to edit this page, and link to your plugin's page. Pages where the name begins with "Plugins_" will automatically be listed below. This is the preferred method.
You can see the list of plugins in the [[https://github.com/ajgraves/aneuch/tree/master/plugins|source repository]].
%Plugins%
----
CategoryDocumentation
Rate LimitingLast modified Mon Sep 7 16:07:39 UTC 2015Aneuch implements a rate limiting or "surge protection" feature, similar to Oddmuse's [[https://oddmuse.org/wiki/Surge_Protection|Surge Protection]]. This allows the site administrator to control how often a visitor may load a page on the site in a given amount of time (by setting the variables **$SurgeProtectionTime** and **$SurgeProtectionCount** in their config.pl file).
**$SurgeProtectionTime**\\This controls the window of time you wish to observe. The variable holds the amount of time, in seconds, and the default is 20.
**$SurgeProtectionCount**\\This controls the number of page load requests by any given IP address in the above defined window of time. Anything that exceeds this value will be denied access to the site until their hit count falls below this number in the above defined time window. The default is 20, which means a user can request 20 pages every 20 seconds. Most normal users will spend longer than 1 second on each page they visit, and web crawlers (such as Googlebot) should be configured to leave a delay of one second or so between page loads.
----
CategoryDocumentation
Script FlowLast modified Sun Jun 16 21:40:10 UTC 2019This page will attempt to explain the process flow of the Aneuch script. It might be useful to both contributors to the mainline Aneuch source, as well as plugin developers.
* **Init**\\This is the very first subroutine called. It calls the following:
** **InitScript**\\Determines $Url, $ShortUrl, $ScriptName and $ShortScriptName
** **InitConfig**\\Executes $ConfFile (default 'config.pl'), which sets user-configured variables
** **InitVars**\\Initializes default variables. If a variable was set in the previous step (InitConfig) it will not be over-written. This is also where several "special" things get declared via: [[APIs RegCommand|RegCommand]], [[APIs RegAdminPage|RegAdminPage]], [[APIs RegPostAction|RegPostAction]], [[APIs RegSpecialPage|RegSpecialPage]]
*** **InitDirs**\\Initializes directories (if this is the first time Aneuch is ran)
** **LoadPlugins**\\This is where all plugins get loaded. Plugins should end in the extensions '.pl' or '.pm', and be in the $PluginDir directory.
** **DoPostInit**\\Calls any sub that has been registered using [[APIs RegPostInitSub|RegPostInitSub]].
* **DoRequest**\\Handles the current request. The following are called as part of this:
** **IsBlocked**\\Checks if the current user is blocked.
*** **ErrorPage**\\If the user is blocked, call ErrorPage with a 403 error.
** **DoSurgeProtection**\\If this returns true, call:
*** **ErrorPage**\\Called with 503 error.
** **ReadIn**\\Checks if the script is getting POST data.
*** **DoPosting**\\If ReadIn return true (1), call DoPosting.
**** If the 'doing' element of the submitted data exists in %PostingActions, then execute it.
** **CanView**\\Checks if the user can view (**$SiteMode** < 3, or authenticated). If not, redirect to login page.
** Checks if the "do" parameter is "random", and if so, execute **$Comands{'random'}**.
** Check if page requested (or if a command, if the command is defined), and if not, set $HTTPStatus to 404 error.
** If the command is 'revision', check if the . . .
SearchLast modified Sun Sep 17 12:50:16 UTC 2017Aneuch gives you full text search capabilities.
Not only will your search query check the contents of each page in your database, but if only the title of the page matches your search query, that will be returned too!
Search results are sorted in a manner that should provide the most relevant results closest to the top. Priority is in order of most matches to least, followed by most recent edit time stamp to oldest.
In the default theme of Aneuch, there should be a search box that allows you to type your query in. If you're using a theme that doesn't, it should still be relatively easy. You use the 'search' command, along with the 'search=' criteria. For example:
**`?do=search;search=Test`**
This would execute a search for the term "Test". Not only would documents that include the word test (or any other variation, tests, testament, etc) show in your search results, but even the document titled "Last Will and Testament" would show up, even if no variation of "test" exists in the document outside of its title.
Search is case insensitive (so "Test" would match "test" and "TeST").
Search also allows you the ability to use regular expressions as your search criteria. For example:
**`?do=search;search=Org.*s`**
This criteria would match both "Organics" and "Organisms".
----
CategoryDocumentation
TemplatesLast modified Sun Jun 25 12:37:28 UTC 2017Aneuch introduced templates in [[Version 0.50]], which aim to make adding similarly formatted articles to your wiki much easier.
A template allows you to store a pre-formatted outline in your page database that can then be used to "start" a new wiki page.
==Saving a new Template
To create a new template, you simply create a new page. Start in the page editor and build out the outline of how you want your page to look. Before saving your page, be sure to check the box below the page content that says "Is this page a template?"
Once you've built it out exactly how you want it, click the save button.
==Using a Template
When creating a new page, you'll notice a drop-down selector at the top of your edit page that says "Use template" and gives you a list of the available templates. Simply select the template you wish to use, and the page content will automatically populate with the selected template.
Note that if you do this for a page which already has content, the existing content will be cleared. If you've done this by accident, simply click the cancel button at the bottom of the page editor and you'll be returned to the last version of the page.
==Updating a Template
Updating a template is as simple as updating an existing page. Simply edit the page in the page editor, make the changes you wish, and keep the "Is this page a template?" box checked. The template framework will always pull in the most recent revision of a template. Note that doing this does not update any pages that were created previously using the template, it will only update the template itself.
----
CategoryDocumentation
ThemesLast modified Wed Apr 2 14:25:08 UTC 2014This page is a listing of available themes for Aneuch. For information on developing themes, please see [[Developing Themes]]
%Themes%
----
CategoryDocumentation
UpgradingLast modified Wed Oct 18 19:24:43 UTC 2017This page will list instructions (or links to instructions) on upgrading between various versions. If you're making a rather large jump between versions, then you'll have to read all of the notes for each version in between.
----
==0.50 -> 0.60
There is a new configuration variable, `$SpamLogging` located in the config.pl directory. The default is 0 (disable), however you may want to merge the changes in the config.pl.dist with your local config.pl (retaining your modifications, while importing the new options).
----
==0.42 -> 0.50
[[Themes]] have been moved around a bit. Previously, they were stored in a directory called templates in your data directory. This directory has been renamed to themes to avoid confusion with actual page [[Templates]] and the themes. Before upgrading your install, you could rename the templates directory to themes.
----
==0.41 -> 0.42
No changes necessary.
----
==0.40 -> 0.41
No changes necessary.
----
==0.30 -> 0.40
Compare your `config.pl` file with the default distribution one. There have been quite a few configuration changes that have taken place.
Also, check your `.htaccess` file against `htaccess.dist` and note the important change (the removal of the line **RewriteCond %{QUERY_STRING} ^$**
You may also want to clear your visitor log file, as there was some significant changes in the way this file is read and written.
----
==0.22 -> 0.30
Compare your `config.pl` file with the default distribution one. There have been quite a few configuration changes that have taken place.
----
==0.21 -> 0.22
No changes necessary.
----
==0.20 -> 0.21
0.21 introduces a new variable to the `config.pl` file, called **$FancyUrls**. It is internally set to true (or 1) by default, however if you do not wish to use .htaccess for your install, you will need to set this variable to 0.
----
==0.10 -> 0.20
Before you apply the new version of the script, you will have to be sure to change the way items in the 'pages' directory are stored. Locate wherever you . . .
20 page(s) categorized as CategoryDocumentation
← Categories