\documentclass{article}
\usepackage{ulem}
\pagestyle{headings}
\begin{document}
\tableofcontents

\part{ Agora}
Agora is Horde's forum module, providing comments on user submitted content in e.g. Ansel\footnote{http://example.com/index.php?page=Project/Ansel} or Jonah\footnote{http://example.com/index.php?page=Project/Jonah}.

\section{ Bugs}
List any tickets on http://bugs.horde.org/\footnote{http://bugs.horde.org/} that cover this issue or are relevant to it.

\section{ People}
\begin{itemize}
\item{Stephan (webmaster <ät> dasourcerer <döt> net)}
\item{Almost certainly others}
\end{itemize}
\section{ Features}
\begin{itemize}
\item{Structure}
\end{itemize}
\begin{quote}
Introduce categories for boards as an additional means organization. For larger installations, boards alone might be insufficient.\newline
\end{quote}

\begin{verbatim}

 Categories
  + Boards
     + Threads
        + Thread pages
        + Posts
           + Attached files
\end{verbatim}

\begin{itemize}
\item{Pretty URLs}
\end{itemize}
\begin{quote}
Apart from being just "pretty", URLs should express is-a, has-a or subset relations. Examples:\newline
\end{quote}

\begin{verbatim}

http://example.com/horde/agora/main/testboard/testthread/page/3#post-9365
  Category titled "Main"     --´     |         |          |   |  |
  Board titled "Testboard"   -------´          |          |   |  |
  Thread titled "Testthread" -----------------´           |   |  |
  Show page 3 of the thread  ----------------------------´---´   |
  Jump directly to post #9365 ----------------------------------´

http://example.com/horde/agora/main/testboard/testthread/9365/edit
  Category titled "Main"     --´     |         |          |    |
  Board titled "Testboard"   -------´          |          |    |
  Thread titled "Testthread" -----------------´           |    |
  Post with the id 9365      ----------------------------´     |
  (there is little sense in naming individual posts)           |
  Action: Edit post #9365    ---------------------------------´

http://example.com/horde/agora/recent/page/3
  List threads that got     ----´      |   |
  recent replies                       |   |
  Show page three           ----------´---´
\end{verbatim}

\begin{quote}
In order to create a named URL part, the following operations should be performed:\begin{itemize}
\item{Strip trailing or leading whitespaces}
\item{Transform all letters into lower case}
\item{Translate all letters not within a-z into their phonetic equivalents. Examples:}
\end{itemize}
\end{quote}

||$\sim$ Original Letter || ä  || ß  || ø  || ð  ||\newline
\begin{tabular}{|l|l|l|l|l|}
\hline
Equivalent & ae & ss & oe & th\\
\hline
\end{tabular}
\begin{quote}
* Turn everything except a-z and 0-9 into a dash ("-")\begin{itemize}
\item{Merge multiple dashes into one}
\item{In case of a collision: Append a dash followed by the number of colliding strings + 1 (should result into "foobar", "foobar-2", "foobar-3", etc.)}
\end{itemize}
\end{quote}

\begin{itemize}
\item{Statistics}
\end{itemize}
\begin{quote}
People \textit{*love*} statistics. Providing them also seems to encourage user participation. In particular, provide a publicly available stats page featuring:\begin{itemize}
\item{Top \textit{n} most active users (by post count)}
\item{Top \textit{n} most popular boards (by post count \textit{or} by views)}
\item{Top \textit{n} most popular threads (by post count \textit{or} by views)}
\item{Last \textit{n} threads (possibly drop this in favour of /recent)}
\item{Generic stats like:}
\end{itemize}
\end{quote}

>>* Total number of threads\newline
>>* Total number of posts\newline
>>* Average number of posts per thread (bonus: Use this to determine "hot threads" instead of a fixed value)\newline
>>* Average number of posts per day and per hour (seems to be bogus, but people like it. And it is cheap to generate: Take the first and devide by 24)\newline
\begin{quote}
* Overview over the number of posts on each of the last \textit{n} days\newline
Possibly provide all of these via blocks as well.\newline
\end{quote}

\begin{itemize}
\item{Syndication}
\end{itemize}
\begin{quote}
Provide RSS and Atom feeds (c.f. Project/FeedEverything\footnote{http://example.com/index.php?page=Project/FeedEverything}). In particular:\begin{itemize}
\item{Feed solely for threads (e.g. newly created threads will be announced in here, showing the content of the very first post in the feed entry.)}
\item{Full content feed (All new posts go in here)}
\item{Both again for specific boards (this is excellent for larger installations with high traffic)}
\end{itemize}
\end{quote}

\begin{itemize}
\item{Moderation}
\end{itemize}
\begin{quote}
Currently, there can be only one moderator per board. Add an extra table to allow for an n:n boards-to-moderators relation.\newline
Also: Allow moderators to perform reversive actions in boards not assigned to them, tying them closer to their assigned boards.\newline
\end{quote}

\begin{itemize}
\item{Linkback}
\end{itemize}
\begin{quote}
Enable threads to accept ping- and trackbacks. In addition, catch refbacks.\newline
\end{quote}

\begin{itemize}
\item{Plugin Infrastructure}
\end{itemize}
\begin{quote}
Forums are often subjects to heavy modifications in an effort to appease users. A powerful plugin infrastructure might help to keep the installed software maintainable while allowing the desired modifications. The Habari Project\footnote{http://www.habariproject.org} has got a system that might be a good start for this.\newline
\end{quote}

\newline
\subsection{ BBCode}
An advanced BBCode parser has been proposed a long time ago\footnote{http://bugs.horde.org/ticket/7285}. Since then, a better one has been in the making. Features include:

\begin{itemize}
\item{Inspect links regarding availability. Examples:}
\end{itemize}
\begin{verbatim}

www.example.com
\end{verbatim}

\newline
\begin{quote}
or\newline
\end{quote}

\begin{verbatim}

[url]http://www.example.com[/url]
\end{verbatim}

\newline
\begin{quote}
would be rendered as\newline
\end{quote}

\begin{verbatim}

<a href="http://www.example.com" title="Example Site" type="text/html" target="_blank">http://www.example.com</a>
\end{verbatim}

\newline
\begin{quote}
Unreachable links would be marked with \textit{rel="nofollow"}, so there won't be an impact on search engine rating:\newline
\end{quote}

\begin{verbatim}

<a href="http://www.example.com" rel="nofollow" target="_blank">http://www.example.com</a>
\end{verbatim}

\newline
\begin{quote}
Additionally, CSS selectors could be used to give users an immediate feedback on broken links.\newline
\end{quote}

\begin{itemize}
\item{Inspect embedded images}
\end{itemize}
\begin{quote}
Check if:\begin{itemize}
\item{an [img] tag is pointing to a reachable destination}
\item{if the destination is actually an image (the rise of one-click-image-hosters seems to entice users to c\&p the URLs of result pages rather than the URLs of the actual images)}
\item{Eventually, retrieve the image dimensions.}
\end{itemize}
As an example\newline
\end{quote}

\begin{verbatim}

[img]http://www.example.com/example.png[/img]
\end{verbatim}

\newline
\begin{quote}
would be rendered as\newline
\end{quote}

\begin{verbatim}

<img src="http://www.example.com/example.png" alt="http://www.example.com/example.png" title="example.png (65536 bytes)" width="640" height="480" />
\end{verbatim}

\begin{itemize}
\item{Enhanced quotes}
\end{itemize}
\begin{quote}
The [quote] tag has got an optional parameter that can hold three different kinds of values: A quoted string, the id of a post or an URL. The last two will be using the cite-rel microformat\footnote{http://microformats.org/wiki/cite-rel} in the rendered output. Example:\newline
\end{quote}

\begin{verbatim}

[quote=http://www.horde.org]
Welcome to the home of the Horde Project.
[/quote]
\end{verbatim}

\newline
\begin{quote}
Will be rendered as:\newline
\end{quote}

\begin{verbatim}

<div class="quote">
Quote <cite class="via" id="cite-ef58e3aa-af7f-45ba-a17d-5192ffe883b7"><a href="http://www.horde.org" type="text/html" target="_blank">The Horde Project</a></cite>:
  <blockquote cite="#cite-ef58e3aa-af7f-45ba-a17d-5192ffe883b7">
    Welcome to the home of the Horde Project.
  </blockquote>
</div>
\end{verbatim}

\newline
\begin{quote}
Using a post id will in addition show the username of the original poster\newline
\end{quote}

\newline
\subsection{ Features touching other modules}
\begin{itemize}
\item{Ansel\footnote{http://example.com/index.php?page=Project/Ansel} could be utilized to provide (more or less) one-click-hosting out of Agora, offering a convenient method to publish images within posts.}
\item{Scry\footnote{http://example.com/index.php?page=Project/Scry}. Create polls via API calls and tie them into Agora in an 1:1 relation (meaning there will be at most one poll per thread)}
\item{Trean\footnote{http://example.com/index.php?page=Project/Trean}. Keeping track of larger forums is hard. Allow users to bookmark threads via Trean. Preserve Agora's logical structure (categories, boards) when displaying them. Bonus: Provide an Atom/RSS feed for bookmarked threads only.}
\item{Folks\footnote{http://example.com/index.php?page=Project/Folks}. Link usernames to profiles in Folks accordingly.}
\item{Possibly provide comments functionality for Whups\footnote{http://example.com/index.php?page=Project/Whups} and Wicked\footnote{http://example.com/index.php?page=Project/Wicked}}
\end{itemize}
\section{ Code}
\begin{itemize}
\item{H3: http://cvs.horde.org/agora\footnote{http://cvs.horde.org/agora}}
\item{H4: http://git.horde.org/browse/agora/browsedir.php?f=agora\%2F\&onb=master\footnote{http://git.horde.org/browse/agora/browsedir.php?f=agora\%2F\&onb=master}}
\end{itemize}
\section{ Resources}
\begin{itemize}
\item{API Documentation\footnote{http://dev.horde.org/api/agora/}}
\end{itemize}

\noindent\rule{\textwidth}{1pt}
Back to the Project List\footnote{http://example.com/index.php?page=Project}

\end{document}
