diff --git a/.gitignore b/.gitignore new file mode 100644 index 00000000..bc97e4b0 --- /dev/null +++ b/.gitignore @@ -0,0 +1,4 @@ +*~ +/current.pl +\#*\# +/test-data diff --git a/ChangeLog b/ChangeLog deleted file mode 100644 index f6498a7e..00000000 --- a/ChangeLog +++ /dev/null @@ -1,8126 +0,0 @@ -2012-03-20 Alex Schroeder - - * modules/namespaces.pl (NewNamespaceBrowsePage): Allow redirection to namespaces. - (NamespacesNewGetId): Allow for the provision of the ns parameter. - -2012-03-17 Alex Schroeder - - * modules/namespaces.pl (NamespacesNewGetId): Fix the special case - http://example.org/cgi-bin/wiki.pl/Test?rollback-1234=foo where - Test refers to the namespace and not to the page id. - -2012-03-08 Alex Schroeder - - * wiki.pl (PrintAllPages): Skip redirected pages. - -2012-03-06 Alex Schroeder - - * wiki.pl (ApplyRules): Fix regexp bug reported by Mark Zimmermann - and Ingo Belka. - -2012-01-31 Alex Schroeder - - * modules/webapp.pl (InitWebApp): Fix quoting issues. - -2012-01-17 Alex Schroeder - - * modules/logout.pl (GetFooterLinksLogout): Add extra space as - suggested by wiki user Cayenne. - -2012-01-02 Alex Schroeder - - * modules/honeypot.pl (HoneyPotInspection): Allow override using - $QuestionaskerSecretKey. - -2011-12-31 Alex Schroeder - - * modules/weblog-3.pl (CategoryParse): New. Change parsing - slightly to match the description on the wiki. - (CategoryInit, GotoBarInit): Use it. - (CategoriesNewOpenPage): Instead of setting $Page{text}, set - $NewText because that's what BrowsePage uses. Handle $NewPage in - the case of mod_apache or similar environment. - -2011-12-17 Alex Schroeder - - * wiki.pl (PrintAllPages): Fix a small bug when counting the pages - looked at, following an observation by Ingo Belka. - -2011-12-06 Alex Schroeder - - * wiki.pl: Get rid of @CssList. - Remove css action. - (DoAdminPage): Remove Install CSS menu. - (DoCss): Deleted. - - * modules/css-install.pl: New. - -2011-12-04 Alex Schroeder - - * contrib/campaignwiki/submit.pl (check_url): Use GetFormStart. - (main): Show the default screen if $HoneyPotOk is not provided - because the bookmarklet doesn't provide it. - -2011-12-01 Alex Schroeder - - * contrib/campaignwiki/submit.pl (post_addition): Add support for - honeypot. Set $FullUrl. - (default): Use GetFormStart (which will load honeypot.pl if - installed and requires $FullUrl). - (post_addition): Pass on $HoneyPotOk, if set. - (main): Call HoneyPotInspection() if appropriate. - (default): Ask for the username. - (check_url): Require a username. - (main): Add title parameter in order to trigger honeypot inspection. - - * contrib/campaignwiki/add-link.pl: use utf8. - (toc): labels and values are different, now. - (check_url): this simplifies stuff, here. Also fix some name - handling. - (post_addition, main): Fix some UTF-8 encoding issues. - -2011-11-26 Alex Schroeder - - * contrib/campaignwiki/add-link.pl (post): Handle questionasker - and honeypot modules. Add stars if any. - (check_url): Add some CSS and option to rate. - (post_addition): Pass stars to post. - - * modules/honeypot.pl: Add pod. - ($HoneyPotOk $HoneyPotIdiot, $HoneyPotTimestamp): New. - (HoneyPotNewGetFormStart, HoneyPotInspection): Use them. - -2011-11-21 Alex Schroeder - - * wiki.pl (PrintAllPages): Fix double quoting of page title. - - * modules/all.pl (PrintAllPages): Deleted. (Was it ever required?) - -2011-11-20 Alex Schroeder - - * git.pl: Renamed $GitDir to $GitRepo. - -2011-11-19 Alex Schroeder - - * modules/show-comments.pl (NewPrintJournal): PrintAllPages needs - an extra parameter. - - * modules/partial-journal.pl (NewPartialPrintAllPages): - PrintAllPages needs an extra parameter. - - * modules/compilation.pl (PrintCompilation): PrintAllPages needs - an extra parameter. - - * modules/calendar.pl (DoCollect): PrintAllPages needs an extra - parameter. - - * modules/all.pl (DoPrintAllPages): PrintAllPages needs an extra - parameter. - - * wiki.pl (PrintJournal, PrintAllPages): Journal pages no longer - print deleted pages. - (DoMaintain): PageDeletable doesn't require a parameter. - (PageDeletable): Split into two. - (PageMarkedForDeletion): New, used by PrintAllPages. - -2011-11-16 Alex Schroeder - - * wiki.pl (GetRcRss): Link to $HomePage explicitly instead of just - linking to $ScriptName. - -2011-11-05 Alex Schroeder - - * modules/git.pl (GitCleanup): No $id for commit. - (GitInitRepository): Add --quiet. - -2011-11-04 Alex Schroeder - - * modules/git.pl (GitCleanup): Get rid of git add --all and use - git commit -a instead. - -2011-10-23 Alex Schroeder - - * modules/tags.pl (NewTagDeletePage): Return OldTagDeletePage(). - - * modules/git.pl ($GitMail): New option. - (GitInitRepository, GitNewSave, GitNewDeletePage, GitCleanup): Use - it. - -2011-10-14 Alex Schroeder - - * modules/static-copy.pl (StaticFileName, StaticWriteFile): Handle - encoded files, eg. gzip. - - * wiki.pl (TextIsFile): Fix regular expression. - -2011-10-13 Alex Schroeder - - * wiki.pl (TextIsFile): Extract encoding from the file. - (DoDownload): Take encoding and pass it on. - (GetHttpHeader): Accept encoding parameter and add HTTP header. - (DoPost): Save gzip encoding if the file content starts with the - magic bytes. - -2011-10-12 Alex Schroeder - - * modules/honeypot.pl (HoneyPotInspection): New. - (HoneyPotInspection): Except editors. - - * rc2mail.pl: Fix getopts call. - - * modules/monitor.pl (MonitorSend): Change from User to From - address. - -2011-07-06 Alex Schroeder - - * modules/dynamic-comments.pl (SafeId): New. - (DynamicCommentsNewGetPageLink): Use it. - - * modules/image.pl (ImageSupportRule): Don't URL encode - $ImageUrlPath – specially bad if it ends up containing "http:" and - the like. - - * wiki.pl (GetScriptUrlWithRcParameters): New. - (GetRcRss): Add Dublin Core (dc) and Atom (atom) - namespace. Switch cc prefix to http://web.resource.org/cc/. Switch - channel link from RecentChanges to the HomePage. Fix image title - and link to match the channel title and link. Add atom self link - using GetScriptUrlWithRcParameters. - (RssItem): Repace wiki:username with dc:contributor. Use link for - guid element. - -2011-06-25 Alex Schroeder - - * modules/offline.pl (InitOffline): Disable surge protection when - browsing the offline pages. Add offline path_info to separate the - offline app from the ordinary stuff. - (DoManifest): Add the offline path_info, remove the missing pages - from @UserGotoBarPages because these result in 404 errors. - (DoOffline): Fix text. Return 200 code instead of 503. - (NewOfflineReBrowsePage): Add redirection support for offline - browsing. - -2011-06-23 Alex Schroeder - - * modules/offline.pl (DoManifest): Add missing pages from the goto - bar. - - * modules/namespaces.pl (NamespacesInitVariables): URL encode the - current namespace for $ScriptName, $FullUrl and $StaticUrl. - -2011-06-14 Alex Schroeder - - * wiki.pl (GetPageOrEditLink): Fix ampersand problem for - $UseQuestionmark = 0. - -2011-05-11 Alex Schroeder - - * modules/localnames.pl (DoDefine): New. Added to @MyAdminCode and - %Action. - (%WantedPages): New. - (LocalNamesInit): Initialize it. - (NewLocalNamesResolveId): Set it. - (GetWantedPages): New. Added to @MyFooters. Uses %WantedPages to - print definition links, which are handled by DoDefine. - -2011-03-15 Alex Schroeder - - * modules/bbcode.pl (bbCodeRule): Support [left] and [right]. - Add class for the div generated by [center], [left] and [right]. - -2011-03-06 Alex Schroeder - - * modules/bbcode.pl (bbCodeRule): Support [hightlight]. - -2011-03-03 Alex Schroeder - - * modules/gravatar.pl (AddGravatar): Ignore case. - -2011-03-01 Alex Schroeder - - * modules/gravatar.pl (AddGravatar): Prefix "http://" to homepage - if user did not provide it. - -2011-02-24 Alex Schroeder - - * modules/referrer-tracking.pl (ExpireReferers, UrlToTitle) - (GetReferers, PageContentToTitle, UpdateReferers): Get rid of - charset handling. - -2011-02-12 Alex Schroeder - - * modules/gravatar.pl (GravatarRule): Accept URL in addition to - the name. - (AddGravatar): Add homepage if available. - (GravatarNewGetSummary): Use the regular expression variable. - -2011-02-05 Alex Schroeder - - * modules/translations/french-utf8.pl: Best effort translation for - campaignwiki.org. - -2011-01-29 Alex Schroeder - - * modules/near-links.pl (ListNearPages): Skip pages that exist - locally for the index action. - -2011-01-19 Alex Schroeder - - * modules/usemod.pl ($UseModExtraSpaceRequired): New option. - (UsemodRule): Use it for definition lists. - -2011-01-17 Alex Schroeder - - * modules/creole.pl (CreoleRule): Resolved a lot more quoting - issues using the ampersand.t tests. - -2011-01-16 Alex Schroeder - - * modules/creole.pl (CreoleRule): Use FreeToNormal on the first - parameter to GetDownloadLink several times. When using - GetPageOrEditLink, make sure that we don't call NormalToFree on - the last parameter. - -2010-12-04 Alex Schroeder - - * modules/journal-rss.pl (JournalRssGetRcLines): Make sure minor - changes and empty pages don't show up. - -2010-11-07 Alex Schroeder - - * wiki.pl (InitLinkPatterns): $FreeLinkPattern now inlcudes - %&?;<>. - (LinkRules, UnquoteHtml, GetPageOrEditLink, GetDownloadLink) - (GetId, BrowsePage, PrintRcHtml, RssItem, DoHistory) - (DoContributors, GetHeader, GetHtmlHeader, GetFeeds) - (FreeToNormal, NormalToFree, DoEdit): Implement the various - changes required to allow the extra characters. This includes - issues of HTML quoting and unquoting, and the dangers of double - encoding. Unfortunately, it's a big mess. - - This revision should not be considered stable! - -2010-10-27 Alex Schroeder - - * modules/referrer-tracking.pl (UrlToTitle): Add charset arg. - (GetReferers): Pass charset to UrlToTitle. - (PageContentToTitle): Add charset arg and encode title - appropriately if not UTF-8. - (UpdateReferers): Pass charset to PageContentToTitle. - -2010-10-24 Alex Schroeder - - * modules/referrer-tracking.pl (GetReferers): Fix split. - (UrlToTitle): Strip http:// prefix and .html suffix. - (PageContentToTitle): Fix regular expressions. - -2010-10-23 Alex Schroeder - - * modules/referrer-tracking.pl: Updated license to GPL 3. - (ExpireReferers): Moved code to generate missing title to a new sub. - (UrlToTitle): New. - (UpdateReferers): Call sub to generate title from page content. - (PageContentToTitle): New. - (UrlToTitle, PageContentToTitle): Shorten title if necessary. - ($RefererTitleLimit): New. - -2010-10-10 Alex Schroeder - - * modules/gravatar.pl (GravatarNewGetSummary): New; strip gravatar - link from comment summary. - - * wiki.pl (GetSummary): Fix remaining closing square bracket. - -2010-09-21 Alex Schroeder - - * modules/bbcode.pl (bbCodeRule): Fix [/code] handling. - -2010-09-10 Alex Schroeder - - * wiki.pl (RequestLockDir): Don't enter an infinite loop of trying - requesting a lock and trying to unlock. Unlocking can fail if the - permissions are wrong, for example (user running the script - changed, for example). - -2010-08-14 Alex Schroeder - - * rc2mail.pl (send_mail): Introduced new -q flag and print - confirmation message unless the quiet flag is used. - -2010-05-17 Alex Schroeder - - * modules/load-lang.pl: Prepend instead of append to - MyInitVariables to get rid of a conflict with gotobar.pl. - -2010-05-14 Alex Schroeder - - * modules/svg-edit.pl (NewSvgGetDownloadLink): Show older - revisions, too. Work when included in [[image:foo]] links. - (DoSvg): Enable translation of the prompt. Bypass Questionasker by - default. - (DoSvg, NewSvgGetEditForm): Allow editing older revisions. - (DoSvg): Make the sidebar invisible, if - necessary. - -2010-05-13 Alex Schroeder - - * modules/svg-edit.pl (DoSvg): Add Javascript to override the save - functionality. It includes an encode64 function, a new save - handler, and some init code, and initialize the image. - -2010-05-11 Alex Schroeder - - * modules/svg-edit.pl (DoSvg): Add URL of the SVG so that you can - edit images if the image URL (on the wiki) is reachable by the - editor (defaulting to Google). - -2010-05-07 Alex Schroeder - - * modules/namespaces.pl (DoNamespacesList): Fix the links to - namespaces. - -2010-04-21 Alex Schroeder - - * wiki.pl (StripRollbacks): Strip remaining chunk of the log if we - found an unfinished [[rollback]] section. - -2010-03-31 Alex Schroeder - - * modules/tags.pl (TagsRule): Add alt attribute. - -2010-03-08 Alex Schroeder - - * modules/bbcode.pl (bbCodeRule): Fix closing of s and strike - blocks. - -2010-02-20 Alex Schroeder - - * modules/creole.pl (CreoleHeadingRule): Close HTML environment - before opening a header; this prevents headers insides p elements. - - * wiki.pl (DoRollback): Prevent rollback from restoring banned - content. - -2010-02-10 Alex Schroeder - - * wiki.pl: PATH now contains both /bin and /usr/bin. - -2010-02-08 Alex Schroeder - - * wikiupload (wikiput): Quoted 1 to avoid an error reported by - labancle on #oddmuse. - -2010-01-28 Alex Schroeder - - * modules/bbcode.pl (bbCodeRule): s and strike. - -2010-01-21 Alex Schroeder - - * modules/bbcode.pl (bbCodeRule): Support bullet lists, but no - nesting of block level elements. - -2010-01-08 Alex Schroeder - - * modules/translation-links.pl (DoTranslationLink): Provide an - error message if source and target page are the same. - -2009-12-28 Alex Schroeder - - * rc2mail.pl (get_timeframe): Replaced by get_timestamp and - update_timestamp. - (get_timestamp): New. Return from=x or days=1. - (update_timestamp): New. Update timestamp or create timestamp file - if necessary. - (get_rss): Call the two new functions. - (send_files): Always print a message when mail has been sent. - -2009-10-14 Alex Schroeder - - * wiki.pl (LatestChanges, RcHtml, RcHeader): Change to parameter - to upto parameter because there was a conflict with the to - parameter used by the rollback action. - (DoPost): Make sure empty comments and comments that are equal to - $NewComment are not saved. - - * wikiupload (wikiput): Add question-asker override. - - * modules/timezone.pl: Complete rewrite. - -2009-10-06 Alex Schroeder - - * wiki.pl (LatestChanges): Handle "to" parameter. - (RcHeader): Report use of "to" parameter - (RcHtml): Add More... link. - (DebugInterLinks): Moved to debug.pl. - - * modules/debug.pl (@Debugging, DebugInterLinks): Moved here from - the main script. - -2009-09-28 Alex Schroeder - - * rc2mail.pl (get_timeframe): Create path to filename used for -t - option if it does not exist. Requires File::Basename and - File::Path. - (get_subscribers): Report number of subscribers per site. - (get_timeframe): Added error message when open fails. - -2009-09-09 Alex Schroeder - - * rc2mail.pl: Introduce -t option. - (get_timeframe): New function. - (get_rss): Use it. - -2009-08-31 Alex Schroeder - - * modules/near-links.pl (NearLinksInit): Initialize - %NearLinksException here instead of at top level so other modules - can add to it as well. - - * modules/journal-rss.pl (JournalRssGetRcLines): New. Add journal - to %NearLinksException. - -2009-08-30 Alex Schroeder - - * modules/near-links.pl (%NearLinksException): New option. - (NewNearLinksSearchTitleAndBody): Use it. - - * modules/mail.pl (MailNewSave): Only subscribe to a page to be - saved if that's also the page the user wants to save according to - GetId(). This is needed when saving a page X will also change - another page Y. GetId() will return X in both cases, so this code - is only triggered once. - -2009-08-19 Alex Schroeder - - * wiki.pl (SearchRegexp, SearchString): Remove the test for - invalid regular expressions. - (DoSearch): Report invalid regular expressions as an error. - -2009-08-16 Alex Schroeder - - * wiki.pl (SearchString, SearchRegexp): Handle invalid regular - expressions by compiling the regular expression, and if that - fails, use quotemeta on it and use that instead. - -2009-08-04 Alex Schroeder - - * wiki.pl (DoPost): Apparently we cannot count on <$file> to - always work within the eval, so we use a local variable. (Showed - up on a site.) - -2009-07-29 Alex Schroeder - - * modules/flashbox.pl (FlashboxRule): Made YouTube regular - expression even more lenient as suggested by sjm. - -2009-07-19 Alex Schroeder - - * modules/flashbox.pl (FlashboxRule): Fixed YouTube regular - expression as suggested by sjm. - -2009-07-03 Alex Schroeder - - * modules/usemod.pl (UsemodRule): Use $UsemodHtmlRegExp instead of - $htmlre and no longer recompute it for every call. - - * modules/namespaces.pl (NewNamespaceGetRcLines): Fix bug that - prevented the oldrc.log file from being read if rc.log was missing - or empty. - - * wiki.pl (GetRcLines): Fix bug that prevented the oldrc.log file - from being read if rc.log was missing or empty. - -2009-06-26 Alex Schroeder - - * wiki.pl (SearchTitleAndBody): Unquote the search string. - -2009-06-25 Alex Schroeder - - * wiki.pl (ApplyRules): Make sure named entity Auml is rendered - just as auml is. - -2009-06-24 Alex Schroeder - - * wiki.pl (GetFeeds): Fix link to follow-up RSS feed. - -2009-06-22 Alex Schroeder - - * wiki.pl (ApplyRules): No longer localize $OpenPageName and %Page - for the rule. - (PrintJournal): No longer localize $OpenPageName and %Page before - calling PrintAllPages(). - (PrintAllPages, SearchTitleAndBody): Instead, localize them here. - This will prevent bugs when the OpenPage is called from other - locations. - -2009-06-11 Alex Schroeder - - * upgrade-files.pl (basic_data): Fix a bug that resulted in no - revisions for Oddmuse pages. - -2009-06-08 Alex Schroeder - - * Makefile (upload-translations): No longer upload to - emacswiki.org; provide secret using -z. - -2009-06-07 Alex Schroeder - - * rc2mail.pl (main): Get RSS before getting subscribers. Skip - getting subscribers if there were no items in the feed. Skip - sending files if there were no subscribers (assuming a lot of - wikis without subscribers, eg. when using namespaces). - (get_rss): Use short=0 in the URL. - (send_file): Return unless there are subscribers. - - * modules/namespaces.pl (%Namespaces): New option to differentiate - between intersites and namespaces. Don't list Main and Self as - namespaces. - (NamespacesInitVariables): Set it instead of a local variable. - (DoNamespacesList): Use it. - (NamespacesMenu): Add it to a menu. - (NamespacesInitVariables): - - * modules/mail.pl (MailNewGetFooterTimestamp): New function to - allow people to subscribe to ordinary pages. - (DoMailSubscriptions): Provide a link to change the email address. - (DoMailSubscribe): If no mail is provided, allow to subscribe and - ask for an email address. - -2009-06-04 Alex Schroeder - - * rc2mail.pl: The beginning of a new file. It will read the wiki - RSS feed and the list of subscribers. Eventually it will then send - out HTML emails to the people subscribed. - - * modules/mail.pl ($MailPattern): New. - (MailNewInitCookie): New. - (MailNewGetCommentForm): Added subscribe/unsubscribe link. - (MailIsSubscribed): New. - (NewMailDeletePage, MailAddSubscription): New. - (MailMenu): Added link to "All mail subscriptions". - (DoMailSubscriptions): Added unsubscription links. - (DoMailSubscriptionList): Support HTML output. - (MailLink): New. - (DoMailSubscribe, DoMailUnsubscribe): New. - (MailUnsubscribe): New. - (MailAddSubscription, MailSubscribe): Renamed to MailSubscribe. - - * css/wiki.css (a): form.comment span is a block, now, so that the - fields below the summary look more like a table. - - * wiki.pl (TouchIndexFile): New sub. - (Save): Use it. - -2009-05-25 Alex Schroeder - - * modules/questionasker.pl (QuestionAddTo): Trying to fix a - surprising Perl regular expression feature. - -2009-05-24 Alex Schroeder - - * wiki.pl (GetCommentForm): Default to ten lines for comments. - -2009-05-22 Alex Schroeder - - * modules/questionasker.pl (QuestionAddTo): Adapted to changes in - GetCommentForm. - - * wiki.pl (GetCommentForm): Added a span around each input field - below the textarea. - (DoMaintain): Do not a newline if the rc.log file contains no more - entries (by default this only happens if the wiki has not been - edited in 90 days). - -2009-05-15 Alex Schroeder - - * modules/static-copy.pl (StaticFileName): Don't just print - something to stdout if the target page does not exist, yet. This - will always happen when creating a link to an image before - upoading the image! - - * modules/image.pl (ImageSupportRule): Make sure we provide an - upload link of the image is local and doesn't exist yet. - - * modules/listlocked.pl (ListLockedMenu): Changed menu item name a - bit to match the German translation file. - -2009-05-11 Brian Curry - - * modules/footnotes.pl (FootnotesRule): Substantially revised. - This now handles markup for referencing another footnote or range - of other footnotes. This should, in turn, make embedding academic - citations in Wiki pages somewhat cleaner. - -2009-05-09 Alex Schroeder - - * wiki.pl (DoHistory): Handle date changes here in order to avoid - declaring a variable and having to pass it by reference to - GetHistoryLine. - (GetHistoryLine): Simplified. Also, don't set a revision if - comparing an older revision with the current one. - -2009-05-07 Alex Schroeder - - * wiki.pl (ApplyRules): Make sure we store $_ whenever we store - pos because of recursive calls to ApplyRules. - -2009-04-09 Alex Schroeder - - * modules/load-lang.pl ($CurrentLanguage): New variable. - (LoadLanguage): Set it. - -2009-04-06 Alex Schroeder - - * modules/namespaces.pl (NamespacesInitVariables): Match the code - changes in GetId. - (@NamespaceParameters): New. - (NamespacesInitVariables): Use new option. - (NamespacesInitVariables): Use new function. - - * wiki.pl (GrepFiltered): Short circuit if we end up with an empty - regular expression. This can happen when using tags.pl and only - specifying -tag:foo. - -2009-04-05 Alex Schroeder - - * modules/tags.pl (TagsMenu): Add menu. - (TagCloud): New action, based on the search-freetext.pl - implementation. - -2009-04-04 Alex Schroeder - - * modules/tags.pl (NewTagGrepFiltered, NewTagSearchString): - Support searching for tags containing a space (being replaced by - an underscore). - -2009-03-28 Alex Schroeder - - * wiki.pl (GrepFiltered): Sort output because grep -r doesn't - produce sorted output. - -2009-03-27 Alex Schroeder - - * wiki.pl (GrepFiltered): Use grep -r because on larger wikis the - command line is too large. - -2009-03-22 Alex Schroeder - - * modules/tags.pl (DoTagsReindex): Request lock and release lock - when updating the index. - - * modules/localnames.pl (LocalNamesNewSave): Localize - $OpenPageName and %Page so that it doesn't confuse other - extensions hooking into Save. - -2009-03-21 Alex Schroeder - - * modules/tags.pl (NewTagSave, NewTagDeletePage): Eliminate and - merge with NewTagSave and NewTagDeletePage respectively. - (TagFind, NewTagGrepFiltered, NewTagSearchString): New functions - to use the tag file while searching. - (DoTagsReindex): New action to get started. - (TagList): New action to debug the data. - -2009-03-20 Alex Schroeder - - * modules/tags.pl ($TagFeed, $TagFeedIcon): New options. - (TagsInit, TagsGetLink): New - (TagsRule): Will now print RSS icon and link to a feed as well, if - an icon URL has been provided. - (NewTagSave, TagIndex): Hook into Save() and index the pages. - (NewTagDeletePage, TagDeletePage): Hook into DeletePage() and - remove tags and infos when pages are deleted. - -2009-03-16 Alex Schroeder - - * wiki.pl (GetId): Do not return $HomePage if no id has been - specified. - (DoBrowseRequest): Don't report an invalid URL if no id has been - specified. Just browse the HomePage instead. - -2009-03-14 Alex Schroeder - - * wiki.pl (GetId): Fix it by no longer short-circuiting to return - HomePage. - -2009-03-13 Alex Schroeder - - * modules/markup.pl (MarkupRule): Fixed markup rules to get the - [[foo]]'s apostrophe correct. - - * modules/logout.pl (CookieUsernameDelete): Changes to %NewCookie - are no longer needed. - - * wiki.pl (GrepFiltered): Make sure matches in page content do not - duplicate matches in page names. - (DoShowVersion): Print version info for grep. - (InitCookie): We need to fall back on %OldCookie if no explicit - parameter was provided. - - * modules/find.pl (DoFind): Switch from HighlightRegex to - SearchRegexp. - - * modules/near-links.pl (SearchNearPages): Switch from - HighlightRegex to SearchRegexp. - - * modules/search-freetext.pl (NewSearchFreeTextNewSearchRegexp): - Switch from HighlightRegex to SearchRegexp. - -2009-03-12 Alex Schroeder - - * wiki.pl ($NewCookie): Deleted. - (InitCookie, CookieUsernameFix, CookieRollbackFix, GetParam) - (SetParam): Get rid of $NewCookie. - (CookieUsernameFix): Make sure that with $FreeLinks and $WikiLinks - unset, single words are still allowed. - -2009-03-11 Alex Schroeder - - * wiki.pl (GrepFiltered): Return pagename matches, then page - content matches. - (DoSearch, ApplyRules): Replace HighlightRegex with SearchRegexp. - (GrepFiltered): Use SearchRegexp, too. And search AllPagesList. - (HighlightRegex): Deleted. - (SearchRegexp): New. - -2009-03-09 Alex Schroeder - - * modules/namespaces.pl (NewNamespaceGetRcLines): Strip rollbacks - for every namespace separately. - -2009-03-07 Alex Schroeder - - * modules/journal-rss.pl (JournalRssGetRcLines): Don't just skip - minor edits. Read the last major edit instead, if your can. - -2009-03-02 Alex Schroeder - - * modules/creole.pl (CreoleRule): Use an elsif instead of an if - within the rules. - -2009-02-27 Alex Schroeder - - * modules/creoleaddition.pl ($CreoleAdditionIndentedParagraphs): - New option. - (CreoleAdditionRule): Implement indented paragraphs rule. - -2009-02-23 Alex Schroeder - - * modules/journal-rss.pl (JournalRssGetRcLines): Skip minor edits - instead of messing with them. - -2009-02-22 Alex Schroeder - - * wiki.pl (GetParam): Get result from NewCookie before getting it - from $q->param -- this will make SetParam have the intended effect. - (DoBrowseRequest): Fake a search action before calling DoSearch; - since the action is now explicitly not browse, GetRobots will - produce a NOFOLLOW header. - -2009-02-19 Alex Schroeder - - * modules/referrer-tracking.pl (PrintAllReferers): Use GetPageLink - instead of using ScriptLink directly in order to fix the output - for pages containing a space. - -2009-02-13 Alex Schroeder - - * modules/portrait-support.pl: Changed one of the [new:...] macro - to match $FreeLinkPattern instead of [^]:]+ as it interfered with - code examples containing regular expressions. As this is a macro, - it will remain tricky, unfortunately. - - * modules/markup.pl (%MarkupForcedPairs): Added that to options. - -2009-02-11 Weakish Jiang - - * modules/creoleaddition.pl (CreoleAdditionRule): Allow colons in - dt in dl. - -2009-01-28 Alex Schroeder - - * modules/faq.pl (FaqRule): Applied fix suggested by user bib on - the website. - -2009-01-22 Alex Schroeder - - * modules/page-trail.pl (NewPageTrailBrowsePage): Handle more - parameters. - (UpdatePageTrail): Just use whitespace to separate the page names. - -2009-01-14 Alex Schroeder - - * modules/google-custom-search.pl (NewGoogleCustomGetSearchLink): - Undo the use of ScriptLink. - -2009-01-06 Alex Schroeder - - * modules/big-brother.pl (WriteRecentVisitors): Make the code - easier to read and eliminate a bug that caused the list of times - to grow indefinitely. - -2009-01-05 Alex Schroeder - - * wiki.pl (DelayRequired): Fix an off-by one error. - - * modules/big-brother.pl (AddRecentVisitor): Make sure we count - all the hits in the same second. - -2008-12-18 Alex Schroeder - - * modules/faq.pl (FaqRule): Found some old modifications I made a - long time ago. Q: and A: must be at the beginning of the line. - -2008-12-17 Alex Schroeder - - * modules/download.pl (DownloadSupportRule): Rewrite to fix a bug - introduced by the change to $FreeLinkPattern 2008-08-05. - - * t/test.pl (clear_pages, add_module): Add code to make it work on - Windows with Cygwin. - -2008-12-16 Alex Schroeder - - * modules/creole.pl (CreoleInit): Don't change $FreeLinkPattern as - that intereferes with bbcode.pl. - -2008-12-15 Alex Schroeder - - * modules/static-copy.pl (ImageGetInternalUrl): Call FreeToNormal - on the argument. - -2008-12-12 Alex Schroeder - - * modules/crossbar.pl (NewCrossbarApplyRules): Do not apply the - rule if the text is an uploaded file or if we're currently - rendering the sidebar. - -2008-12-08 Alex Schroeder - - * modules/toc.pl (TocAfterApplyRule): Removed as a rule to be on - @MyAfterApplyRules. - (NewTocApplyRules): Moved code here and rewrote such as not to use - references where necessary. - - * modules/crossbar.pl (CrossbarBeforeApplyRule): Removed as a rule - to be on @MyBeforeApplyRules. - (NewCrossbarApplyRules): Moved code here. - - * wiki.pl (GetEditForm): Remove extra closing div. - (@MyBeforeApplyRules, @MyAfterApplyRules): Removed. - (ApplyRules): Removed call of code on @MyBeforeApplyRules. - (PrintWikiToHTML): Removed call of code on @MyAfterApplyRules. - -2008-12-06 Alex Schroeder - - * wiki.pl (GrepFiltered): Ignore grep error messages (which happen - on an empty wiki, for example). - - * Makefile (VERSION_NO): Fixed the command to extract the version - number from wiki.pl because the CVS Id tag now appears twice. - -2008-12-03 Alex Schroeder - - * modules/namespaces.pl (NewNamespaceScriptUrl): Try and handle - the case of namespaces containing non-ASCII characters. This - should be legal, but lead to problems when generating links to - pages in such namespaces. The URL encoding of the non-ASCII - characters prevented the $InterSitePattern from matching. Instead - of using this regular expression, we now try and guess at the - string using URL constraints ([^/?&;=]+), URL decoding it, and - then checking the $InterSitePattern. - -2008-12-03 Brian Curry - - * wiki.pl (PrintWikiToHTML): Moved "@MyBeforeApplyRules"-specific - code into the ApplyRules() routine. This corrects a number of - subtle issues with the Crossbar module: especially, the Crossbar - module's erroneous handling of uploaded files. (Thanks, Ingo - Belka!) - * modules/crossbar.pl (CrossbarBeforeApplyRule): Corrected this - module's erroneous handling of uploaded files. - (RunMyRulesTocCrossbar): New function, offloading a Crossbar- - specific hack from "toc.pl" into this file. (This is still... - slightly hacky, but a bit better.) - * modules/toc.pl (TocRule): Allowed more than one table of contents - per page. Before, this module only recognized the first "" - markup for a Wiki page: all subsequent "" markup for that - page was studiously ignored. Correcting this improves integration - with the Crossbar module. - (RunMyRulesToc): Removed a Crossbar-specific hack. - (TocAfterApplyRule): Allowed more than one table of contents. - ($TocIsApplyingAutomaticRules): New option, providing slightly - finer-grained control over Table of Contents handling. - -2008-11-28 Brian Curry - - * wiki.pl: Added a CVS-enabled version notice to this file's header - comments. This should make it easier for Oddmuse users to ascertain - which Oddmuse version they're using. - -2008-11-27 Brian Curry - - * modules/recaptcha.pl (ReCaptchaQuestionAddTo): Patched with a - Wiki-provided correction, courtesy Bayle Shanks. Apparently, the - previous regular expression in this function failed to match the - Comment form's HTML. This patch corrects that! The reCAPTCHA widget - is now properly displayed by both the Comment and Edit forms. - Thanks, Bayle. (http://bayleshanks.com) - -2008-11-25 Brian Curry - - * modules/forms.pl (FormsRule): Removed Sidebar-specific hack. - Thanks, Alex! - -2008-11-24 Alex Schroeder - - * wiki.pl (DoShowVersion): Print grep --version. - - * modules/google-custom-search.pl ($GoogleCustomSearchEngine): New - option. - (GetSearchLink): Instead of overwriting it, use - NewGoogleCustomGetSearchLink. The code now uses ScriptLink instead - of a simple HTML link. This adds class, name, and rel attributes - automatically. - -2008-11-24 Brian Curry - - * modules/crossbar.pl (UserCanEditCrossbar): Deleted. - (CrossbarInit): Permit non-administrators to edit crossbar pages. - (GetEditFormCrossbar): Added a message describing crossbar usage. - -2008-11-24 Brian Curry - - * modules/creole.pl (CreoleRule): Implemented handling of so-called - "interlinks" -- i.e., links to external Wikis via the "$InterMap" - page. (So, Creole syntax is now embeddable within interlinks!) - -2008-11-24 Brian Curry - - * modules/crossbar.pl: New module. Provides a sustainable - replacement for the Sidebar module, for all Sidebar users - requiring a cleaner integration of that module with other modules - like the Table of Contents and Footnote modules. This new module - also improves Sidebar customizability by permitting users to place - the "Crossbar" at any position in any page. - * modules/forms.pl (FormsRules): Generalized so as to support both - the Sidebar and Crossbar modules. - * modules/toc.pl (RunMyRulesToc): Generalized so as to support both - the Sidebar and Crossbar modules. - * t/crossbar.t: New test suite, testing the Crossbar module. - -2008-11-24 Brian Curry - - * wiki.pl (GetEditForm): Added the 'upload' class attribute to - upload links produced by this function, for CSS stylization. - (BrowsePage): Calls the new "PrintPageContent" function. - (PrintPageContent): New function, whose implementation has been - extracted from the "BrowsePage" function. This permits external - modules -- like the new Crossbar module -- to override this - function and thereby print page content in a module-specific - manner. - -2008-11-21 Brian Curry - - * wiki.pl (SetHtmlEnvironmentContainer): Corrected a slight, but - significant, typo. - * modules/sidebar.pl: Reverted. I underestimated the scope of - changes needed to bring this module in line with recent, other - changes to the Table of Contents module. The good news is that the - reverted Sidebar module now works as expected for all modules except - the Table of Contents module; of course, the bad news is that the - reverted Sidebar module no longer works for the Table of Contents - module. (Unfortunately, we can't have both, here.) I will be - recommitting my changes to this module as a new module, therefore, - named "modules/crossbar.pl" -- sometime, soon. That new module - will (probably) break backwards compatibility with this module, but - will otherwise behave as expected... with all modules. - * t/sidebar.t: Prevented testing against the Table of Contents - module, as the Sidebar module is now known not to work with that - module. - -2008-11-16 Brian Curry - - * wiki.pl (PrintWikiToHTML): Slightly reordered function calls, - so as to optimize a few edge cases. - -2008-11-16 Brian Curry - - * wiki.pl (RegisterBlockLevelElement): Renamed to - SetHtmlEnvironmentContainer (and changed in every other module, - where called). - -2008-11-16 Brian Curry - - * wiki.pl (AddHtmlEnvironment): Corrected a minor regression. - Probably not a genuine issue... but one can never tell. - * modules/creole.pl (CloseHtmlEnvironmentsCreole): Removed. - * modules/creoleaddition.pl (CloseHtmlEnvironmentsCreoleAddition): - Removed. - * modules/poetry.pl (CloseHtmlEnvironmentsPoetry): Removed. - -2008-11-15 Brian Curry - - * modules/sidebar.pl: Refactored. This is a complete rewrite - removing all previous module-specific hacks. However, as it is a - rewrite, it may still have issues. (Fortunately, time is the mother - of invention and bug fixes.) - * modules/toc.pl: Refactored. This is a complete rewrite - removing all previous module-specific hacks. As with "sidebar.pl", - it may still have issues. That said -- I'm relatively proud of it, - and confident that it (should) stand up under rigorous scrutinies, - utilization, and brutalization. - * modules/forms.pl (FormsRule): Slightly revised so as to comply - with the "sidebar.pl" refactoring. - -2008-11-15 Brian Curry - - * wiki.pl (@MyAfterApplyRules): New global list. This is a list of - subroutine references, much like @MyRules. Unlike @MyRules, whose - subroutines are called by ApplyRules() while iterating through wiki - page markup, @MyAfterApplyRules subroutines are called by - PrintWikiToHTML(), iteratively, after all calls to ApplyRules(). - This may not sound like much -- certainly, no deep invention. - Actually, however, it permits post-processing of all emitted HTML. - This, in turn, allows us to reimplement the Table of Contents - module ("toc.pl"), so as to remove the hacks upon which that - module formerly depended. This is a good thing. Perhaps, even a - great thing! As Alex can attest, "toc.pl" (and its retinue of - oddball hacks) has given Oddmuse some dire trouble, over time. - That's all past now...thanks be to the Nordic Gods. - (@MyBeforeApplyRules): New global list. This is a list of - subroutine references, much like @MyRules. Like @MyAfterApplyRules, - above, @MyBeforeApplyRules subroutines are not called by - ApplyRules() while iterating through wiki page markup but rather by - PrintWikiToHTML(), iteratively, before all calls to ApplyRules(). - This, also, may not sound like much. However, it permits pre- - processing of all emitted HTML. This, in turn, allows us to - reimplement the Sidebar module ("sidebar.pl"), so as to remove the - hacks upon which that module formerly depended. (Praise be to Odin.) - (%BlockLevelElements): New global hash. This hash should not be - assigned to directly, but through the new - RegisterBlockLevelElement() function. Its keys are HTML tags: - 'table', 'blockquote', 'div', and so. Its values are regular - expressions matching HTML tag attributes: 'class="poem"', - 'align="right"', and so on. That's the structure. Here's how it - works: this hash has one key for each HTML tag to be considered a - "block-level element." Block-level elements are not closed when - closing HTML environments with CloseHtmlEnvironments(). Instead, - they must be explicitly closed with, say, - CloseHtmlEnvironment('table'). CloseHtmlEnvironments() now closes - all environments up to but not including those whose HTML tag - matches a key in %BlockLevelElements and whose HTML tag attributes - match a value in %BlockLevelElements. Thus, if Oddmuse is currently - in a "...
" environment, calling - CloseHtmlEnvironments() now closes all environments up to but not - including the table. This is a good thing. This allows modules - to define block-level markup that can, itself, contain block-level - markup -- say, markup for a "..." - environment containing markup for a "
...
" - environment containing markup for a "
    ...
" environment. - Prior to the introduction of this hash, block-level markup could - not contain other block-level markup -- since most modules "open" a - new HTML environment for such markup by first calling - CloseHtmlEnvironments(), which, of course, closes the HTML - environments of all "parent" block-level markup of this markup. - Slightly mind-bending, isn't it? - (RegisterBlockLevelElement): New function. (I'm not entirely happy - with the verb 'register', here, but could think of nothing better.) - (CloseHtmlEnvironments): Use the %BlockLevelElements hash to ensure - block-level element HTML environments are not closed. (Of course, - this is an amortized constant-time lookup. No efficiency concern, - here!) - (PrintWikiToHTML): Use the @MyBeforeApplyRules and - @MyAfterApplyRules lists, to perform HTML pre- and post-processing. - -2008-11-12 Brian Curry - - * modules/poetry.pl ($PoetryIsHandlingXMLStyleMarkup): New option. - ($PoetryIsHandlingCreoleStyleMarkup): New option. - (PoetryRule): Utilized new options, so as to permit several markup - styles, and simplified implementation, according to recent - refactoring in "wiki.pl". - (CloseHtmlEnvironmentsPoetry): New function, permitting block-level - elements (e.g., lists, tables) within poems. - -2008-11-11 Brian Curry - - * modules/creole.pl (CreoleRule): Corrected a horrific link-caching - issue with my last commit. Apologies to those who've already - installed the last commit: this one should be (substantially!) more - stable. - -2008-11-06 Brian Curry - - * modules/creole.pl (CreoleRule): Simplified implementation and - integrated with improvements to CreoleHeaderRule(). - (CreoleHeaderRule): Improved -- remarkably. Header markup may now - include all other (non-bol) markup, with exception of link markup - producing a dirty HTML block. ("Dirty" link markup in header - markup is stripped out, as appropriate.) - (CreoleListAndNewlineRule): Simplified implementation. - (CreoleRuleRecursive): Supported the global @HtmlAttrStack. - (GetCreoleLinkHtml): New function, reducing code-bloat. - * modules/creoleaddition.pl (CreoleAdditionRule): Simplified - implementation; and handled small caps markup properly, now. - -2008-11-04 Brian Curry - - * modules/toc.pl (TocInit): Context-sensitively set the - "$TocConvertH1TagsToH2Tags" option, if not already set. - Basically, we only need the option enabled when the Usemod - markup module is also installed. - -2008-11-04 Brian Curry - - * wiki.pl (@HtmlAttrStack): New global variable. This permits - the InElement() and [Add|Close]HtmlEnvironment() family of - functions to add, remove, and search against HTML tag attributes - for all recently stacked HTML tag environments. Previously, tag - attributes were not retained; they were simply returned as text - from the AddHtmlEnvironment() function. Markup modules producing - complex HTML -- particularly, complex HTML having deeply nested - span or div tags -- can leverage the newly rewritten functions, - below, to simplify, streamline, and "clean up" their markup code. - (InElement): Rewritten to use this new variable. - (AddHtmlEnvironment): Rewritten to use this new variable. - (CloseHtmlEnvironment): Rewritten to use this new variable. - (CloseHtmlEnvironments): Rewritten to use this new variable. - (CloseHtmlEnvironmentUntil): Rewritten to use this new variable. - (AddOrCloseHtmlEnvironment): New function. Added so as to avoid - duplicate redefinition in the Creole, Creole Addition, and Usemod - modules. - * modules/usemod.pl (UsemodRule): Corrected erroneous usage of the - InElement() function. (I don't think UsemodRule() was ever quite - right, really; it's a bit surprising it worked this long!) - -2008-11-04 Brian Curry - - * modules/toc.pl ($TocConvertH1TagsToH2Tags): New option. - (TocRule): Use the new option; principally, this permits Wiki - administrators to prevent this module from converting - "

...

" tags "

...

" tags. - -2008-10-29 Alex Schroeder - - * modules/translation-links.pl (DoTranslationLink): Report a lot - more errors. Add more explanation. - ($TranslationLinkHelpPage): New option. - -2008-10-28 Alex Schroeder - - * modules/translation-links.pl (TranslationLinkNewGetFooterLinks): - Fix links generated with %TranslationLinkTarget. - (DoTranslationLink): Added better summary. - -2008-10-26 Alex Schroeder - - * modules/search-freetext.pl (OddMuse::Tokenize): Make the regexp - reusable outside the class. - (process): Use it. - (NewSearchFreeTextTitleAndBody): No longer strip quotes from tags. - (SearchFreeTextGet): Rewrote phrase handling so that tags can be - made mandatory by enclosing them with quotes, but making sure that - extra effort is only spent if there are multiple search terms. - Also if the terms are in fact whole tokens and not just any - phrase, avoid looking opening the page files and doing a regular - search. - -2008-10-25 Alex Schroeder - - * modules/toc.pl (TocRule, TocHeadings): Make sure no h1 headers - can be generated. This makes sure that the headings work just like - they do in the UseMod markup extension. - -2008-10-24 Alex Schroeder - - * modules/search-freetext.pl (process): Allow underscore in - tokens (foo_bar). - (SearchFreeTextTagsRule): Add double quotes around tags that - contain a space ("foo bar"). This should work for technorati links - and the like. - (SearchFreeTextIndex): When indexing a tag containing a space, use - underscores instead ([[tag:foo bar]] is indexed as foo_bar). - (SearchFreeTextCloud): When showing a tag containing an - underscore, replace it with space (foo bar). - (NewSearchFreeTextTitleAndBody): When searching for tags, strip - quotes and replace spaces with underscores. Searching for tag:"foo - bar" will thus result in a search for the tag foo_bar. - (SearchFreeTextGet): No longer tags a tag flag as an argument. - This also affects all the callers (NewSearchFreeTextTitleAndBody). - As tags will end up without quotes and with spaces replaced by - underscores, the special case for tags is gone. - -2008-10-23 Brian Curry - - * wiki.pl (OpenHtmlEnvironment): Generalized list closure - by delegating that closure to the "CloseHtmlEnvironments" function. - This permits other extensions (namely, the Creole Markup extension) - to redefine the "CloseHtmlEnvironments" function and thereby - precisely override just when and how list markup is closed. - * modules/creole.pl ($CreoleDashStyleUnorderedLists): New option. - (RunMyRules): New function. - (CreoleRule): Improved conformance to the Wiki Creole standard by - strictly requiring, among other notable things, that horizontal - rules consist of four and only four dashes, that all image links - to images on the Wiki (e.g., image "FreeLinks") be marked as dirty - blocks, that the nowiki markup strictly require the opening and - closing three braces to reside on their own lines having no other - markup, and that preformatted code not extend over multiple blocks. - (CreoleListAndNewLineRule): Avoid handling dash-style unordered - list markup unless explicitly requested by the new - "$CreoleDashStyleUnorderedLists" option being set to 1 (since - that markup is non-standard, and explicitly contradicts the Wiki - Creole standard). - * t/creole.t: Adjusted tests broken by the above modifications; - these were, typically, tests for nowiki and preformatted markup - that assumed a less conformant, gentler handling of that markup. - -2008-10-22 Alex Schroeder - - * modules/near-links.pl (NewNearLinksResolveId): Make sure that - comment links are "forbidden" -- they never redirect to a remote - place. - -2008-10-19 Brian Curry - - * modules/poetry.pl (PoetryInit): New function. - (PoetryRule): Generalized markup handling so as to avoid - conflict with HTML "div" tags produced by other markup - extensions. - -2008-10-16 Alex Schroeder - - * modules/logbannedcontent.pl (LogBannedContent): Don't remap - BannedContent again. - Copy the $BannedContent variable. - -2008-10-12 Alex Schroeder - - * modules/sitemap.pl (DoSitemap): Simplified. No longer requires - the admin password because it no longer opens all the pages to get - at the timestamp. Now uses sitemap 0.9 as documented here: - https://www.google.com/webmasters/tools/docs/en/protocol.html - - * t/test.pl (xpath_do): Strip XML preprocessing instruction and - call the XML parser if the HTML parser fails. Now we can write - XPath tests on XML documents. - -2008-10-12 Brian Curry - - * modules/hibernal.pl (HibernalInit): Implemented context- - dependent defaults for $HibernalPostCommentsAuthorshipMarkup. - (AssayHibernalPostBounds): Corrected several obscure, but - damaging, edge-cases. (This necessitated a rewrite of the - algorithm, unfortunately.) - -2008-10-07 Alex Schroeder - - * modules/creole.pl (CreoleRule): Fix dirty block handling for the - [[page]] and [[page|text]] rules. - -2008-10-07 Brian Curry - - * modules/creole.pl (CreoleRule): Allow one newline character - following an explicit pipe character to end a table. - -2008-10-06 Brian Curry - - * wiki.pl (ApplyRules): Ensure the regular expression match - position returns the length of the matched string on finishing - application of all rules. ("creole.pl" and "creoleaddition.pl" now - depend on this; it notifies them that rules are now finished.) - * modules/creoleaddition.pl (CreoleAdditionRule): Injected a sanity - check, to ensure closure of blockquotes at the end of a page. - * modules/creole.pl ($CreoleTableCellsAllowBlockLevelElements): New - option. - * modules/creole.pl (CreoleRule): The last, one hopes, of all Creole - table markup modifications (for the moment). The rather complex - table markup code has been modified so as to use the new option, has - been refactored for robustness and strict conformance to the Wiki - Creole standard, and has been well-documented. - * modules/creole.pl (CreoleGetTableHtmlAttributes): Deleted function. - -2008-10-05 Alex Schroeder - - * modules/atom.pl (DoAtom): Call print GetRcAtom instead of DoRc - GetRcAtom. - (GetRcAtom): Call ProcessRcLines instead of GetRc. - (DoAtomSave): No longer call DeletePermanentAnchors. - -2008-10-04 Alex Schroeder - - * t/test.pl (name): Show the last 60 characters of a XPath test - instead of the first 60 as this makes them easier to find. - - * modules/creole.pl (CreoleRule): Added link around image for the - [[url|{{url}}]] rule. - -2008-10-04 Brian Curry - - * modules/creole.pl (CreoleRuleRecursive): New function. Permits - embedding of Wiki Creole syntax within Wiki Creole syntax. (Yes... - This is confusing?) - (CreoleRule): Used the new function. Specifically, you can now - embed Creole and CreoleAddition syntax (such as bold, italics, - small caps, and so on) within URL and Wiki link text, ala - "[[Some_Page|Wow! **Quite** an //%%interesting page%%// page, - here]]." - - * modules/creoleaddition.pl (CreoleAdditionRule): Renamed function - from "CreoleAdditionRules" to this. - -2008-10-03 Alex Schroeder - - * wiki.pl ($UseGrep): New option. Set by default. - (SearchTitleAndBody): Use GrepFiltered. - (GrepFiltered): New code to filter AllPagesList using grep if - $UseGrep is set. - - (ReadFile): Slight rearranging of the lines. - -2008-10-01 Brian Curry - - * modules/creole.pl: "There be dragons, here." This module now - supports a significantly stabler, more robust syntax--including: - multiline table cells, block level elements in table cells, CSS - stylization for images and image links, simpler, more efficient - regular expressions, new perldoc-style documentation, and a subtle - slew of other bug fixes. "Huzzah!" - * modules/creoleaddition.pl (AddOrCloseCreoleAdditionEnvironment): New - function. - (CreoleAdditionRules): Usage of the new function. - * t/creole.pl: Corrected all non-XPath-dependent tests. - * t/creoleaddition.pl: Corrected all non-XPath-dependent tests. - -2008-09-30 Brian Curry - - * modules/creoleaddition.pl: New perldoc-style documentation. - ($CreoleAdditionSmallCaps): New option. - (CreoleAdditionInit): New function. - (CreoleAdditionRules): Improved handling of existing markup rules, - so as to allow markup nesting; and implemented handling of the new - %%small caps%% markup rule. - -2008-09-30 Brian Curry - - * modules/poetry.pl: New. - -2008-09-29 Brian Curry - - * modules/recaptcha.pl: New perldoc-style documentation. - ($ReCaptchaTheme): New option. - ($ReCaptchaTabIndex): New option. - (ReCaptchaGetQuestionHtml): New function. Permits site-specific - customization of module-emitted HTML and CSS. - (ReCaptchaGetQuestion): Rewritten so as to leverage the two new - options and one new function. - -2008-09-29 Brian Curry - - * modules/toc.pl: New perldoc-style documentation. - ($TocHeaderText): New option. - (TocPageHtml): Introduced a Footnotes extension-specific hack, so - as to circumvent footnote indexing errors after generating the - table of contents. - -2008-09-28 Brian Curry - - * modules/footnotes.pl: Refactored. Yet another flashy rewrite; it - improves integration with "toc.pl", and provides improved HTML - configurability, CSS styleability, and perldoc-style documentation. - -2008-09-22 Brian Curry - - * modules/smarttitles.pl: Refactored. This is a flashy rewrite; it - improves integration with "creole.pl", "poetry.pl", et al., HTML - configurability, CSS styleability, and perldoc-style documentation. - -2008-09-22 Alex Schroeder - - * modules/namespaces.pl (NewNamespaceGetAuthorLink): New hook into - GetAuthorLink to make sure the author link is never considered - invalid using NewNamespaceValidId. - (NamespaceValidId): Deleted. - (NewNamespaceValidId): Fully featured replacement only used by - GetAuthorLink. $NamespaceSlashing remains unused. - - * modules/journal-rss.pl (JournalRssGetRcLines): New. - (DoJournalRss): Use JournalRssGetRcLines since GetRcRss was - changed. - -2008-09-21 Alex Schroeder - - * wiki.pl (GetRcRss): Since this sub no longer takes RC lines as - parameters, there's no point in passing @_ to ProcessRcLines. - -2008-09-20 Alex Schroeder - - * wiki.pl ($RssStrip): New option. - (ItemName): Strip the default date from the item title. - - * wiki.pl (BrowsePage): Replace call to PrintRc with PrintRcHtml. - (BrowseRc): Replace call to PrintRc with PrintRcHtml. Use - PrintRcText instead of DoRcText. - (PrintRc, DoRcText, DoRc, GetRc, GetRcHtml, GetRcText): Deleted. - (GetRcLines): Moved. - (LatestChanges, RcHtml, PrintRcHtml, PrintRcText): New. - (StripRollbacks): Change to new format returned by GetRcLines. - (GetRcLinesFor): Factored out the per-file code of GetRcLines. - (ProcessRcLines): Calls the per day and per item code fragments. - (RcHeader): Return HTML instead of printing it. - (GetRcHtml, GetRcRss): Call ProcessRcLines instead of GetRc. - (DoRss): Call GetRcRss instead of DoRc and passing GetRcRss. - (DoContributors): Set parameters instead of relying on the default - behaviour of GetRcLines. - - Change also contains a lot of whitespace changes. - - * modules/search-freetext.pl (SearchFreeNewPages): Changed result - handling of call to GetRcLines. - - * modules/namespaces.pl (NewNamespaceDoRc): No longer needed. - (NewNamespaceGetRcLines): New. - (NamespaceRcLines): No longer needed. - -2008-09-19 Brian Curry - - * modules/hibernal.pl: New. - -2008-09-15 Brian Curry - - * wiki.pl (BrowsePage): Nested the preview div within the - content div, per Oddmuse norms. - -2008-09-06 Alex Schroeder - - * modules/recaptcha.pl (QuestionAddTo): Use $ReCaptchaSecretKey - instead of 'question'. - (NewReCaptchaDoPost, NewReCaptchaDoPost, ReCaptchaQuestionAddTo): - Renamed QuestionAddTo to ReCaptchaQuestionAddTo. - (NewReCaptchaDoPost): Prevent a preview from setting the cookie - analogous to the questionasker.pl edit dated 2008-06-11. - -2008-08-07 Alex Schroeder - - * wiki.pl (ItemName): New. Strips dates from page titles. - (RssItem): Use it. - -2008-08-05 Alex Schroeder - - * wiki.pl (InitLinkPatterns): Change $FreeLinkPattern so that - pages starting with "0" are still allowed. - -2008-07-30 Alex Schroeder - - * modules/image.pl (ImageSupportRule): Provide a default alt text - if linking to a local image. - (ImageGetExternalUrl, ImageGetInternalUrl): Make sure link uses _ - instead of spaces if linking to a local image. - -2008-07-24 Alex Schroeder - - * wikiput (post): Fixed handling of secret key. - (main): ||0 is not necessary. - -2008-07-18 Alex Schroeder - - * modules/dojo.pl (@DojoGroups): Deleted. - (@DojoPlugins, $DojoTheme): New. - (WysiwygScript): A whole lot of new javascript. - (NewWysiwygGetTextArea): Add a hidden input field, add id to - textarea. Don't change the comment form ('aftertext'). - -2008-07-12 Alex Schroeder - - The following change makes sure we can put *bold* words at the - beginning of lines if used together with markup.pl. - - * modules/creole.pl (CreoleListRule): New. Added with a very late - priority. - (CreoleNewLineRule): Add two more newline oriented rule items and - moved priority even further back. - (CreoleRule): Removed list items and newline rules. - -2008-07-11 Alex Schroeder - - * wiki.pl (RunMyMacros): New. - (DoPost): Call RunMyMacros on the concatenated page body + - comment. Also call it on the comment when previewing comments. - -2008-07-08 Alex Schroeder - - * wiki.pl (DoPost): Run macros after concatenating page and - comments. - -2008-07-02 Alex Schroeder - - * wiki.pl (GetSummary): Two more convenience replacements. - -2008-06-26 Alex Schroeder - - * modules/bbcode.pl (bbCodeRule): Implemented [center]. - -2008-06-26 Weakish Jiang - - * modules/emailquote.pl (EmailQuoteRule): Fixed bugs. Versions before - are buggy. - -2008-06-25 Weakish Jiang - - * modules/creole.pl (CreoleHeadingRule): Better support on - headings more than 6 levels. - - * modules/emailquote.pl (EmailQuoteRule): > on a line of its own - works. - -2008-06-24 Alex Schroeder Weakish Jiang - - * wiki.pl (GetHtmlHeader): Fix typo in HTML header. - - * modules/creole.pl (CreoleNewLineRule): Avoid adding useless br - tags in lists, etc. - (CreoleRule): When CreoleLinebreaks set to 1, \\\n won't produce - extra br tags now. - - * modules/emailquote: New module. - -2008-06-23 Alex Schroeder - - * wiki.pl (GetHtmlHeader): Add universal edit button. - -2008-06-23 Weakish Jiang - - * modules/backlinks.pl (NewGetSearchLink): Change the regex to - match [[pagename|description]] - -2008-06-19 Ingo Belka - - * modules/tables-in-lists.pl New module wich will embedd tables in - li-list-tags. The consecutive numbering is now saved. - -2008-06-13 Alex Schroeder - - * t/test.pl (xpath_do): No longer strip the HTML element in order - to allow tests for meta data. - - * wiki.pl ($DocumentHeader): New option. - (GetHtmlHeader): Use $DocumentHeader and GetFeeds. - (InitVariables): No longer set $HtmlHeaders to GetFeeds. - - Also moved copyright notice and licence info back to the front of - the file and removed the standard POD info at the back of the - file. - -2008-06-11 Alex Schroeder - - * modules/questionasker.pl (NewQuestionaskerDoPost): Only reveal - the secret key when a question has been asked (and not after a - simple preview). - - * t/test.pl: Get rid of $resultfile. - -2008-05-29 Alex Schroeder - - * wiki.pl (PrintJournal): Add content class to div. - -2008-05-27 Alex Schroeder - - * t/test.pl: Switch from /tmp/oddmuse to $DataDir. - -2008-05-23 Alex Schroeder - - * wiki.pl (LinkRules): Support [[url text]], [[url|text]], - and [url|text]. - -2008-05-11 Alex Schroeder - - * modules/usemod.pl (RFC): Link to tools.ietf.org instead of - faqs.org. - -2008-05-09 Alex Schroeder - - * modules/bbcode.pl (bbCodeRule): Fix handling of block level - elements closing. - -2008-04-25 Weakish Jiang - * module/search-list.pl ($Action, DoList): New action. - * module/listtags.pl: New extension. - -2008-04-14 Alex Schroeder - - * modules/questionasker.pl (QuestionAddTo): Use - $QuestionaskerSecretKey instead of the hard-coded 'question'. - -2008-04-12 Weakish Jiang - - * module/creoleaddition.pl ($CreoleAdditionMonospace): New option. - (CreoleAdditionRules): add new syntax: ##monaspace## - -2008-03-31 Alex Schroeder - - * modules/creole.pl ($CreoleTildeAlternative): New option. - (CreoleRule): Added tilde proposal using $CreoleTildeAlternative. - -2008-03-27 Alexander Uvizhev - - * modules/linktagmap.pl (GetLinks): Improved a pattern to search - tagged links. - (GenerateLinkTagMap, PrintLinkTagMap): Link processing changed. - -2008-03-26 Alex Schroeder - - * modules/markup.pl (MarkupInit): Sort strings by length. - -2008-03-07 Alex Schroeder - - * wiki.pl (ScriptLink): Moved the URL modifying code into a - separate sub. - (ScriptUrl): New. - (GetRcRss, RssItem): No longer provide a quoted $ScriptName. Use - ScriptUrl instead of manually concatenating the quoted $ScriptName - with code testing $UsePathInfo. This is now handled by ScriptUrl. - - * modules/namespaces.pl (NewNamespaceScriptUrl): Replaces - NewNamespaceScriptLink. This change depends on the related change - to ScriptLink in wiki.pl and fixes the RSS links. - -2008-03-04 Alex Schroeder - - * modules/calendar.pl (PrintYearCalendar): Remove useless @pages - spotted by JuanmaMP. - -2008-02-29 Robert Meier - - * wiki.pl ($VERSION): New expression based on CVS keyword - splitting and many changes involving perldoc and the options at - the beginning of the file. - -2008-02-25 Alex Schroeder - - * wiki.pl (InitLinkPatterns): $FreeLinkPattern no longer allows - linking to the page named "0" (zero). - -2008-02-22 Alex Schroeder - - * Makefile (VERSION_NO): Fix regular expression that determines - the version number to use. - -2008-02-19 Alex Schroeder - - * modules/questionasker.pl (NewQuestionaskerDoPost, - QuestionAddTo): Editor password is good enough as suggested by - Weakish Jiang. - -2008-02-19 Brock Wilcox - - * modules/recaptcha.pl: Initial add of reCAPTCHA module - -2008-02-01 Alex Schroeder - - * wiki.pl (PrintFooter): Print newline at the very end. Apparently - that solves a FCGI problem. - (PrintHtmlDiff): Handle cache=0 as noted by Markus Lude. - -2008-01-28 Alex Schroeder - - * modules/questionasker.pl (NewQuestionaskerGetEditForm): Moved - code to QuestionAddTo. - (QuestionAddTo): New. - (NewQuestionaskerGetCommentForm): Do the same thing for comments. - -2008-01-12 Alex Schroeder - - * modules/multi-url-spam-block.pl (NewMultiUrlBannedContent): Move - code to MultiUrlBannedContent. - (MultiUrlBannedContent): Disable the rule for the LocalNames page. - -2008-01-10 Alex Schroeder - - * wiki.pl (DebugInterLinks): Only print header if InterSite - contains anything. - -2007-12-31 Alex Schroeder - - * wiki.pl (UnWiki): New function to split WikiWords. - (GetHeader): Use UnWiki for the page page title. - -2007-12-22 Alex Schroeder - - * wiki.pl (UserCanEdit): %LockOnCreation only affects permissions - when the page is new. Once it exists, the lock file determines - permissions. - - * modules/csv.pl (CsvRule): Add csv class. - -2007-12-15 Alex Schroeder - - * wiki.pl (GetFooterLinks, GetCommentForm): Use the parameter $id - instead of the global $OpenPageName. - -2007-12-14 Alex Schroeder - - * wiki.pl (GetHtmlHeader, GetRobots, GetFeeds, InitVariables): - Moved meta element generation from into GetRobots and GetFeeds. - Set $HtmlHeaders via GetFeeds in InitVariables so that users can - append to the default value. - (GetHtmlHeader): Add charset http-equiv meta tag. - (GetFeeds): Removed link using match and kept just rcidonly. - -2007-12-09 Alex Schroeder - - * modules/permanent-anchors.pl - (NewPermanentAnchorsGetPageContent): Experimental support for - "anchored objects". - -2007-12-06 Alex Schroeder - - * modules/tables.pl (TablesRule): Add first, even, and odd classes - to tr elements. - - * modules/usemod.pl (UsemodRule): Add first, even, and odd classes - to tr elements. - -2007-11-28 Alex Schroeder - - * modules/strange-spam.pl (StrangeNewBannedContent): Apply test to - page name as well. - -2007-11-22 Alex Schroeder - - * wiki.pl (GetInterLink): Enclose the ":" in a separate span. - -2007-11-18 Alex Schroeder - - * modules/namespaces.pl (NamespacesInitVariables): Always set - $NamespaceRoot because it will be used below when redirecting. Not - setting it will cause redirection to the Main namespace to produce - a wrong edit link to the source page. - -2007-11-15 Alex Schroeder - - * modules/strange-spam.pl (StrangeNewBannedContent): Make sure - newlines are stripped from the match. - - * modules/despam.pl (DespamBannedContent): No longer use - case-insensitive matches to mimic changes in strange-spam.pl. - Make sure newlines are stripped from the match. - -2007-11-14 Alex Schroeder - - * modules/google-search.pl ($GoogleSearchExclusive): New option. - (GoogleSearchInit): Allow $GoogleSearchDomain to be set in the - config file. - - * modules/strange-spam.pl (StrangeNewBannedContent): No longer use - case-insensitive matches. - - * modules/toc.pl (TocHeadings): No idea why this solves the - problem with disappearing TOC. TocProcessing is allowed one more - level of recursion. - - * wiki.pl (GetRcHtml): Wrap the entire list in a form block so - that the rollback buttons actually have an effect. - -2007-11-13 Alex Schroeder - - * modules/namespaces.pl (NamespaceRcLines): Use StripRollbacks. - - * wiki.pl (GetRcLines, StripRollbacks): Move the rollback - stripping into a separate sub. - - * t/test.pl (xpath_do): Don't be confused by the new xmlns - attribute in the html element. - -2007-11-11 Alex Schroeder - - * modules/questionasker.pl (NewQuestionaskerDoPost): Pass - aftertext through. - -2007-11-07 Alex Schroeder - - * modules/namespaces.pl (NewNamespaceBrowsePage): Fix test from - $WikiLinks to $FreeLinks. - -2007-11-03 Alex Schroeder - - * wiki.pl (DoHistory): Add compare button to the top of the list. - -2007-11-06 Alex Schroeder - - * wiki.pl (GetHtmlHeader): Add - xmlns="http://www.w3.org/1999/xhtml" to the html element. - - * modules/multi-url-spam-block.pl ($MultiUrlLimit): Changed the - default to 10. - -2007-11-02 Alex Schroeder - - * modules/multi-url-spam-block.pl ($MultiUrlWhiteList): New option. - (NewMultiUrlBannedContent): Use whitelist. - -2007-10-30 Alex Schroeder - - * modules/multi-url-spam-block.pl (NewMultiUrlBannedContent): Make - the limit configurable. - -2007-10-26 Alex Schroeder - - * wiki.pl (ApplyRules, ListRule, @MyRules, %RuleOrder): Moved the - list rule to a separate sub and added it to the variables. - (GetRc): Get rid of %changetime and use %seen instead. - -2007-10-24 Alex Schroeder - - * wiki.pl (LinkRules): Unquote alt text. - - * modules/image.pl (ImageSupportRule): Unquote alt text. - -2007-10-23 Alex Schroeder - - * modules/creole.pl (CreoleRule): The \n after {{{ is mandatory - for a pre block. - -2007-10-22 Alex Schroeder - - * wiki.pl (InitCookie, CookieUsernameFix, CookieRollbackFix): Move - username testing from InitCookie to a new sub and add rollback - testing. The reason is that for submit buttons, all the info is - encoded in the name attribute; the value is used for the label. - (GetRcHtml, GetHistoryLine): Use a submit button instead of a link - for rollbacks. - -2007-10-19 Alex Schroeder - - * modules/search-freetext.pl (NewSearchFreeTextTitleAndBody): Call - SearchFreeTextUnique for both result sets. - (SearchFreeTextUnique): New, uniquify the list. - -2007-10-11 Alex Schroeder - - * modules/search-freetext.pl (SearchFreeNewPages): Use stat()[9] - instead of -M to get the timestamp. - (DoSearchFreeTextNewPages): Link to RecentChanges. - - * modules/near-links.pl (DoNearLinksList): Use semicolon instead - of br to separate pages, use page link. - - A big change to search-freetext.pl to make sure it works even if - we're not reindexing all the time. This requires a reindexing of - all pages changed after the last big reindexing on every save. - - * modules/search-freetext.pl (DoSearchFreeTextIndex) - (SearchFreeTextIndex): The buildindex action will now call - DoSearchFreeTextIndex, which does some setup and prints info, and - calls SearchFreeTextIndex which does the real work. - SearchFreeTextIndex can now be called from elsewhere without - printing anything. - (NewSearchFreeTextSave): New. When saving, call - UpdateSearchFreeTextIndex. - (UpdateSearchFreeTextIndex): New. Call SearchFreeTextIndex with - the list of pages returned by SearchFreeNewPages. - (SearchFreeNewPages): New. Return the list of all pages changed - since the last modified date on word.db. - (NewSearchFreeTextTitleAndBody): Look in both word-update.db and - tags-update.db in addition to word.db and tags.db. - (SearchFreeTextGet): Make sure we only call search on the db if it - contains data. - (DoSearchFreeTextNewPages): New. - -2007-10-10 Alex Schroeder - - * t/test.pl (xpath_do): Only print the page once per test run. - -2007-10-07 Alex Schroeder - - * modules/questionasker.pl (NewQuestionaskerDoPost): Pass on - parameters and ask another question if the question has not been - answered. - (NewQuestionaskerGetFormStart, NewQuestionaskerGetEditForm): Hook - into GetEditForm instead of GetFormStart. Add a submit button if - required. - -2007-10-06 Alex Schroeder - - * wiki.pl (GetRcLines): Handle rollback hiding for single page - rollbacks. - (DoRollback): Leave marker for single page rollbacks. - (RcTextRevision): Encode id for the current revision. - - * modules/permanent-anchors.pl (PermanentAnchorsRule): Permanent - anchor definitions are dirty, thus print instead of return the - HTML string. - -2007-10-04 Alex Schroeder - - * wiki.pl (BrowsePage): Use $NewText if looking at a page that - does not yet exist. - (OpenPage): When opening a nonexisting page, don't store $NewText - as the default text. - ($NewText): Changed default to "This page is empty.\n" - -2007-10-03 Alex Schroeder - - * wiki.pl (RssItem): Don't append the summary to the title if - showing full page content. - - (ScriptLink): Get rid of the last parameter to generate nofollow - links explicitly. Instead, generate nofollow links whenever an - action is invoked. Thus, only ordinary links should be followed. - (RcHeader): No longer generate nofollow links explicitly. Instead, - rely on the new code in ScriptLink. - (GetHtmlHeader): Simplify the generation of the robots meta tag. - Use INDEX,FOLLOW for the browse action without any revisions and - NOINDEX,FOLLOW for everything else. - -2007-10-02 Alex Schroeder - - * modules/near-links.pl ($SisterSiteLogoUrl): Added. - - Make localnames.pl independent from the near link machinery and - simplify the initialization somewhat. Added POD. - - * modules/localnames.pl ($LocalNamesInit, NewLocalNamesReInit): - Deleted. - (LocalNamesInit): No longer use %NearSource. - (NewLocalNamesGetInterSiteUrl, NewLocalNamesResolveId): Hook into - ResolveId instead of GetInterSiteUrl. - (NewLocalNamesResolveId): Existing local pages take precedence - over local names, but local names take precedence over Near Links. - - * wiki.pl (DoAdminPage): Sort AdminPages when printing the list. - -2007-10-01 Alex Schroeder - - Major change that removes near links from the core script - and moves it into a module. - - * wiki.pl (%NearSite, %NearSource, %NearLinksUsed, $NearDir) - ($NearMap, %NearSearch, $SisterSiteLogoUrl): Deleted. - (@IndexOptions): Removed near pages from the default value. - (%Action, @Debugging, DoDebug, DebugInterLinks, DoShowVersion): - Added debug action and moved interling debugging from the version - action to the debugging action. Simplified DoShowVersion by - showing dependencies always. - (NearInit, ReInit): Deleted NearInit; no longer call it from - ReInit. - (ResolveId): No longer resolve near links. - (PrintFooter, @MyFooters, GetSisterSites, GetNearLinksUsed): - Deleted GetSisterSites and GetNearLinksUsed; no longer call them - from PrintFooter; add the new option @MyFooters instead where - modules can add code. - (DoSearch, SearchMenu): Remove link to near search; moved the link - to search result changes into SearchMenu. - (SearchNearPages): Deleted. - (DoMaintain): Removed near cache maintenance. - - * modules/questionasker.pl ($QuestionaskerSecretKey): New option. - (QuestionaskerInit, NewQuestionaskerDoPost): Use it. - -2007-09-29 Alex Schroeder - - * wiki.pl (GetFooterLinks): UrlEncode id for admin link. - (GetHistoryLine): UrlEncode id for rollback link. - - * modules/permanent-anchors.pl (GetPermanentAnchor): Use - NormalToFree in the warning message. - (NewPermanentAnchorsGetHistoryLine): New. Allow viewing of old - revisions of pages where a permanent anchor of the same name - exists. - -2007-09-27 Alex Schroeder - - Major change that removes permanent anchors from the core script - and moves it into a module. - - * wiki.pl (@IndexOptions): New. - (%PermanentAnchors, $PermanentAnchors) - ($PermanentAnchorsFile): Deleted. - (PermanentAnchorsInit, ReInit): PermanentAnchorsInit deleted. - (LinkRules): Rule for permanent anchors deleted. - (ResolveId): Name resolution for permanent anchors deleted. - (GetHistoryLink): Special handling of permanent anchors removed. - (DoIndex): Major rewrite using @IndexOptions, replacing all - permanent anchors and near links related code. Use checkboxes - instead of links. - (DoPost, DeletePage, DeletePermanentAnchors): - DeletePermanentAnchors deleted. - (PermanentAnchorsInit, WritePermanentAnchors) - (GetPermanentAnchor): Deleted. - - * modules/permanent-anchors.pl: Moved code here and rewrote - it somewhat. Use @IndexOptions to reintroduce permanent anchors - into the list of all pages. - -2007-09-24 Alex Schroeder - - * wiki.pl (ApplyRules): Add a pattern for #REDIRECT in order to - prevent mismatches for non-existing link-patterns. - (BrowsePage): Add explanation for failed redirections. - - * modules/namespaces.pl: Added some POD documentation. - (NewNamespaceScriptLink): Added edit backlink for interlink - redirection. - (NewNamespaceBrowsePage): Replaces BrowsePage; adds redirection - for interlinks. - -2007-09-21 Alex Schroeder - - * wiki.pl (BrowsePage): Add support for interlink redirection. The - userinterface sucks, however. How will you ever get rid of it? - -2007-09-14 Alex Schroeder - - * modules/journal-rss.pl (DoJournalRss): Added search parameter. - - * modules/search-freetext.pl (NewSearchFreeTextTitleAndBody): - Added unwanted tags using -tag:foo syntax. - -2007-09-12 Alex Schroeder - - * wiki.pl (LinkRules, GetUrl): Handle the difference between - undefined text and "0". - (DiffMarkWords): Tighter. - (DiffHtmlMarkWords): Fix named entities if they have been pulled - appart by the diff highlighting. - -2007-08-30 Alex Schroeder - - * modules/creole.pl (CreoleRule): Added ~ rule. - -2007-08-29 Alex Schroeder - - * modules/toc.pl (TocHeadings, TocPageHtml): Use TocPageHtml - instead of PageHtml. There, localize the HTML cache to make sure - the updated cache will in fact get saved. - -2007-08-24 Alexander Uvizhev - - * modules/tagmap.pl (GenerateSearchResult): $SearchResult is now without - summaries. Generates a clear list of pages. - -2007-08-23 Alexander Uvizhev - - * modules/tagmap.pl (GenerateSearchResult): Fixed regexp for proper search. - * modules/linktagmap.pl (GenerateLinkSearchResult): Fixed regexp for - proper search. - -2007-08-19 Alex Schroeder - - * Makefile ($(VERSION).tar.gz): Added correct dependencies. - (update-translations): Fetch new stuff from the wiki only when - running upload-translations. - (update/%-utf8.pl): Instead of %-utf8.pl; the update prefix is - used to distinguish dependencies from the command to download from - the wiki. - (upload): Use scp instead of ftp. - - * wikiput (wikiput): Bypass questionasker's default config. - - * Makefile (%-utf8.pl): Take advantage of caching when - downloading. - - * modules/translations/german-utf8.pl: Update. - - * t/static-copy.t: Add /m to regular expression matching. - - * Makefile (test): Use prove instead of a direct perl call. - - * t/atom-test.t: Fixed URL. Renamed to atom.t. - * t/atom.t: Renamed from atom-test.t. - -2007-08-17 Alex Schroeder - - * modules/toc.pl (TocRule): Add explanation. Renamed $key to - $id_required. - (TocHeadings): Use $TocPage as the template for the TOC. - - * wiki.pl (DoSearch): No longer HtmlQuote the search and replace - strings in order to avoid double-encoding. - - * modules/questionasker.pl: Allow seven lives for cats. - - * modules/toc.pl (TocInit): Moved some init code here. - - * wiki.pl (DoSearch): Bugfix: Print headers if raw=1 and context=0. - - * modules/search-freetext.pl (NewSearchFreeTextTitleAndBody): Do - not limit the number of items returned when producing raw output. - -2007-08-16 Alex Schroeder - - * modules/tables-long.pl (TablesLongRow): Localize - $PortraitSupportColorDiv to prevent closing divs to appear inside - table cells. - - * modules/enclosure.pl (EnclosureRule): Removed unused $result. - -2007-08-13 Alex Schroeder - - * modules/toc.pl (TocHeadings): Major overhaul using a call to - PageHtml() to generate the HTML of the page without table of - contents, extracting the generated HTML headings, producing the - table of contents, and finish generating the real HTML of the - page. - -2007-08-12 Alex Schroeder - - * modules/static-copy.pl (StaticFilesNewDoPost, - StaticFilesNewSave): Replace one by the other. We now hook into - Save() instead of DoPost() because this will make sure that static - files are recreated when a rollback from a text to an uploaded - file happens. - -2007-08-11 Alex Schroeder - - * modules/searchtags.pl (SearchTagRule): Fix handling of spaces. - Fix XHTML. - -2007-08-06 Alexander Uvizhev - - * modules/linktagmap.pl: "tag" parameter renamed to "linktag". - (GenerateSearchResult): Renamed to GenerateLinkSearchResult because of - conflict with the same named subroutine in tagmap module. - -2007-08-05 Alex Schroeder - - * wiki.pl (InitLinkPatterns): Added feed to $UrlProtocols. - -2007-08-04 Alex Schroeder - - * wiki.pl (GetRcRss, RssItem): Rearrange code, move the RssItem generation - out to a new function. Required for module/enclosure.pl. - - * modules/today.pl (Today): New. - -2007-07-20 Alex Schroeder - - * wiki.pl (GetSearchForm): Add delete checkbox. - (PrintSearchResult): Call PrintPage if the context parameter is - set. - (Replace): Return the list of pages changed. - (DoSearch): Handle delete checkbox. Ignore context parameter here - and call PrintSearchResult always. Use Unicode right arrow instead - of ->. Use the list of changed pages returned from Replace() to - print the result for replacements. - - * t/search.t: Added three more tests to test for replacements with - the empty string. - - * modules/creole.pl (CreoleRule): Be more tolerant with whitespace - following $FullUrlPattern. - -2007-07-10 Alex Schroeder - - * modules/creole.pl (CreoleRule): Fix {{{{bar}}}}. - - * wiki.pl (GetCss): Another fix to a bug introduced in revision - 1.784. - -2007-07-04 Alex Schroeder - - * modules/archive.pl (NewArchiveGetHeader): Provide different - results depending on whether calendar.pl is installed or not. Add - paragraph and span with "Archive". Reverse order, add number of - articles in brackets. - - * wiki.pl (RcTextItem): Don't get confused by revision 0. - -2007-07-03 Alex Schroeder - - * wiki.pl (GetCss): Make sure the css parameter replaces the - StyleSheetPage instead of adding to it. This fixes a bug - introduced in revision 1.784. - - * modules/image.pl (ImageSupportRule): Handle extra whitespace in - some positions. - -2007-07-02 Alex Schroeder - - * wiki.pl (GetRcText, RcTextRevision): Moved code out of GetRcText - into a separate sub. - (DoHistory): Support raw=1 and use RcTextRevision to print raw - history items. - (GetLanguages): Got rid of useless $count. - -2007-07-01 Alex Schroeder - - * wiki.pl (GetRcRss): Use NormalToFree on the RCName in the title. - -2007-06-30 Alex Schroeder - - Implement follow-up functionality for RecentChanges; make RSS - feeds explicit by linking to the RSS feed of the current - RecentChanges. - - * wiki.pl (RcHeader): Added RSS links and handle followup parameter. - (GetFilterForm): Make sure the form fields are shown in the - correct order every time instead of being random. Add followup field. - (GetRc): Handle followup. - - Start working on tighter integration of functionality and - interface. Disabling functionality should disable that part of the - interface, if possible. - - * wiki.pl (GetFooterLinks): Only print history, contrib, and admin - links if the action is still defined. - -2007-06-26 Alex Schroeder - - * modules/aggregate.pl (AggregateRule): Prevent infinite loops - when searching. - -2007-06-21 Alex Schroeder - - * wiki.pl (GetCommentForm): Add $EditNote to comments, too. - -2007-06-20 Alex Schroeder - - * wiki.pl (GetRcLines): Fix test in for loop as reported by - Radomir Dopieralski. - -2007-06-15 Alexander Uvizhev - - * modules/linktagmap.pl: New action 'linktagsearch'. - ($TagXML): Now used everywhere as private variable. - (LinkTagRule): Tags now link to '?action=linktagsearch'. - (GenerateLinkTagMap): Renamed from CreateLinkTagMap. - (DoLinkTagSearch, GenerateSearchResult): New. - ($LinkTagSearchTitle): New option. - * modules/translations/russian-utf8.pl: Slightly updated - -2007-06-11 Alex Schroeder - - * wiki.pl (GetHttpHeader): Use the second parameter as a - timestamp, if defined and not 'nocache'. This allows us to set a - last-modified date whenever we have one. - - * modules/despam.pl (DespamMenu): Add "List spammed pages". - (InitDespamRules): New, moved @DespamRules init here. - (DoDespam): Add despam CSS class. Get rid of @pages. Use - InitDespamRules. - (DoSpam): New. - (@DespamStrangeRules): New. - (DespamRule): Moved rule extraction here. - (InitDespamRules, DespamBannedContent): Use StrangeBannedContent, - if available. - (DoDespam, DoSpam): Skip $StrangeBannedContent when despamming. - -2007-06-10 Alex Schroeder - - * wiki.pl ($LockExpiration, %LockExpires): New options. - (RequestLockDir): Use them. - -2007-06-07 Alex Schroeder - - * wiki.pl (DoWikiRequest): Provide login link if banned. - (UserIsBanned): The password page is always visible. - -2007-05-31 Alex Schroeder - - * wiki.pl (GetCss): Fix bug introduced by latest change that broke - the use of StyleSheetPage. - -2007-05-30 Alex Schroeder - - * wiki.pl ($UseQuestionmark): New option. - (LinkRules): Fix $bracket for [WikiWord text]. - (GetPageOrEditLink, GetDownloadLink): Changed display of edit - links and implement !$UseQuestionmark code. - (GetDownloadLink): No longer translate the image: prefix. - - * modules/namespaces.pl (NewNamespaceScriptLink): Make the rule - that hacks the namespace prefix more generic, and adapt it to - NewNamespaceUrlEncode which already removes %2f from the URL. - -2007-05-29 Alex Schroeder - - * wiki.pl (GetCss): Rewritten more tersely and allow it to return - the first URL only. - (ReportError): Rewrite GetHtmlHeader and using a div with the - error class to allow styling. - - Some changes suggested by Radomir Dopieralski . - - * wiki.pl (ReportError): Add two newlines at the end and exit with - an error code because of the call to exit(). - (GetHttpHeader): Print two newlines at the end if only a HEAD - request was sent because of the call to exit(). - (GetId): Return HomePage if path_info is just a slash (/). - -2007-04-27 Alex Schroeder - - * wiki.pl (PrintAllPages): Print link to comment pages even if - these cannot be edited, as suggested by Marcin Borkowski. - -2007-04-23 Alex Schroeder - - * wiki.pl (Save): We need to reset %IndexHash and @IndexList when - a page is created to force systems running FCGI to recreate the - pageidx file. This is necessary to communicate between processes. - -2007-04-22 Alex Schroeder - - * modules/creole.pl (CreoleRule): Require space after dash and - don't allow nesting of dashes used for bullet lists. - -2007-04-20 Alex Schroeder - - * wiki.pl (DoContributors): Rewrite to avoid garbage entries. - (MergeRevisions): Put the texts in double quotes in order to - support translations containing spaces. - -2007-04-18 Alexander Uvizhev - - * modules/linktagmap.pl: Many changes. This module now works - properly with all external link patterns. - -2007-04-14 Alex Schroeder - - * modules/creole.pl (CreoleRule): Fix bug with double dirty - blocks. - -2007-04-10 Alexander Uvizhev - - * modules/translations/russian-utf8.pl: New translations and some - correction. - -2007-04-09 Alex Schroeder - - * wiki.pl (BrowsePage): Use the page timestamp as the Etag for raw - page browsing. - -2007-04-05 Alex Schroeder - - * modules/creole.pl (CreoleRule): Support hyphen for bullet list - items. - -2007-04-04 Alex Schroeder - - * modules/creole.pl (CreoleRule): New Table code. - Make image within links regexp non-greedy. - -2007-04-03 Alex Schroeder - - * modules/creole.pl (CreoleRule): Implement Creole 0.5 table - headers. - (CreoleRule): Remove leading space if used to "quote" closing - preformatting sequence. - -2007-04-03 Alex Schroeder - - * wiki.pl (ApplyRules, RSS): Add error class to error messages. - Put the error messages on the surrounding p element, and add one, - if it does not already exist. - -2007-04-02 Alex Schroeder - - * wiki.pl (GetSummary): Fix double HTML quoting for default texts. - -2007-04-02 Alex Schroeder - - * modules/namespaces.pl ($NamespaceSlashing): New variable. - (NewNamespaceDoRc): Set it. - (NewNamespaceUrlEncode): Wrapper around UrlEncode() that uses it. - -2007-03-24 Alex Schroeder - - * modules/live-templates.pl (LiveTemplateRule): Save $_, use - Clean(). This should fix the clean + dirty block mess. - -2007-02-22 Alex Schroeder - - * modules/sistersites.pl (DoSisterPages): Url encode the page id. - -2007-02-20 Alex Schroeder - - * modules/journal-rss.pl (DoJournalRss): Protect call to - GetKeptRevision using eval for cases where the old revision is no - longer available. - -2007-02-20 Alex Schroeder - - * modules/weblog-4.pl (DoCategories): Use tabindex=1 for the title - field, tabindex=2 for the tags field, and tabindex=3 for the - submit button. - -2007-02-19 Alex Schroeder - - * wiki.pl (BannedContent): Ignore malformed regular expressions in - on the page. - -2007-02-15 Alex Schroeder - - * modules/toc.pl (TocRule, TocHeadings): Accept classes for - tag. - -2007-02-14 Alex Schroeder - - * modules/index.pl (DoPrintableIndex): Added a content div around - it all. - -2007-02-13 Alex Schroeder - - * modules/creole.pl (CreoleRule, $CreoleLineBreaks): New. - (CreoleRule): Support \\. - (CreoleHeadingRule): Support = for h1. - -2007-02-12 Alex Schroeder - - * modules/index.pl (PrintableIndexPages): Simplify, get rid of - extra initialization, sort. - -2007-02-09 Alex Schroeder - - * modules/toc.pl (TocInit): New. - (TocRule, TocHeadings): Simplify the code so that id attributes - are only generated for the "main" page (the one returned by - GetId). - - * modules/sidebar.pl (NewSideBarGetHeader): Get rid of - $SideBarOpenPageName. - - * modules/image.pl (ImageSupportRule): Add a - CloseHtmlEnvironments() call if the image has a caption. - -2007-02-01 Alex Schroeder - - * modules/bbcode.pl (bbCodeRule): Support for h1-h6. - -2007-01-31 Alex Schroeder - - * modules/bbcode.pl (bbCodeRule): Added support for url, img, - quote, code, and smiley fallback. - - * Wiki.pl (InitCookie, PrintWikiToHTML, PrintAllPages) - (BrowseResolvedPage, GetRcLines, GetRc, GetRcRss) - (DoContributors, DoRollback, GetFooterLinks, GetCommentForm) - (OpenPage, UserCanEdit, BannedContent, PrintSearchResult) - (DoPost, GetSummary, GetCluster, DoMaintain, ReadRecentVisitors): - Add /o to m//, s///, grep, and split calls where appropriate. - -2007-01-30 Alex Schroeder - - * wiki.pl (GetHeader): Put all the content into a div.wrapper. - (PrintFooter): Put a div.close at the end of the content, and - close div.wrapper. - (PrintFooter): Cannot minimize div. - - * modules/bbcode.pl: New file. - -2007-01-26 Alex Schroeder - - * wiki.pl (DoContributors): Add div. - -2007-01-20 Alex Schroeder - - * wiki.pl (GetTextAtTime): Make sure we note any major revision - between now and the target timestamp. - (DoPost): Ignore second return value of GetTextAtTime. - (GetTextAtTime): Don't take major revisions into account if they - are older than the timestamp. - -2007-01-15 Alex Schroeder - - * wiki.pl (DoEdit): Add an extra closing div. - -2007-01-14 Alex Schroeder - - * modules/strange-spam.pl (StrangeNewBannedContent): Fix - whitespace-handling in regexp parsing. - - * wiki.pl (BannedContent, DoPost): Move message "See ... for more - information" from DoPost to BannedContent, so that strange-spam.pl - can provide a different link target. - (BannedContent): Fix whitespace-handling in regexp parsing. - - * modules/strange-spam.pl (StrangeNewBannedContent): Extract - strange banned content comment and display it, if possible. - - * modules/creole.pl: Add CreoleHeadingRule to MyRules. - - * wiki.pl (BannedContent): Extract banned content comment and - display it, if possible. - -2007-01-12 Alex Schroeder - - * modules/creole.pl (CreoleHeadingRule, CreoleRule): Moved - headings into separate rule with a very different priority so that - the rule from toc.pl can override it. - - * modules/toc.pl (TocRule): Make it compatible with creole.pl. - -2007-01-12 Alex Schroeder - - * modules/creole.pl (CreoleRule): Added simple tables. - (CreoleRule): New. - - * wiki.pl (GetRcLines, GetRc, GetRcHtml, GetRcText, GetRcRss): - Changed $pagename to $id and $timestamp to $ts. - (GetOldPageLink, GetRcRss): Pass $last to GetPageParameters. - (GetPageParameters): Don't add revision parameter if $last. - (GetRcRss, GetRcText, GetRcHtml): Accept $last for printRCLine sub. - -2007-01-11 Alex Schroeder - - * wiki.pl (BrowseRc): Pass $RCName along. - (GetRcLines): Fix off-by one error. Count down from $#fullrc - instead of @fullrc. - (GetRc): No longer pass an undefined revision to &$printRCLine; - instead, pass the changetime as an additional $last parameter. - (GetRcHtml): Add logic using $rollback_was_possible and - $rollback_is_possible to add a last rollback link to the entry - after the last one within the timewindow. In calls to - GetOldPageLink and ScriptLinkDiff, make the test by comparing - $last to $timestamp when $all is set. - (RollbackPossible): If $ts is $LastUpdate, no rollback is possible - -- these are the last changes. - -2007-01-04 Alex Schroeder - - * modules/questionasker.pl (NewQuestionaskerDoPost): Added 'Use - the back button to return the previous page and try again.' - -2006-12-31 Alex Schroeder - - * modules/search-freetext.pl (SearchFreeTextIndex): Use temporary - files while building the index, and use rename at the end to - replace the current files with the new files. - -2006-12-27 Alex Schroeder - - * modules/toc.pl ($TocAutomatic): Reset the default to 1, so that - all the relevant tests don't fail. - -2006-12-22 Alex Schroeder - - * modules/forms.pl (FormsRule): Remove
rule an extra - grouping from regexp. - - * wiki.pl (PrintRc): Changed RCName printing to avoid "All changes - for RecentChanges". - - * t/test.pl (update_page): Pass $rest to the output command as - well, because of the ns parameter when testing namespaces. - - * modules/namespaces.pl: Get rid of $NamespacesInit. - (NamespacesInitVariables): Get rid of various Init() calls because - they are all handled in ReInit(). Reset @IndexList so that - AllPagesList will actually do something. - - * modules/referrer-tracking.pl (PrintAllReferers): Add div.page - around each page entry. - (GetReferers): Removed HR. - -2006-12-21 Alex Schroeder - - * modules/journal-rss.pl (DoJournalRss): Undo last change where - the date is retrieved from the date in the header. Instead, the - date of the last major edit is used. - - * wiki.pl (GetHistoryLink): Pass anchor=0 along to the history - page if necessary. - -2006-12-14 Alex Schroeder - - * modules/calendar.pl (CalendarRule): Move - Clean(CloseHtmlEnvironments()) in front of the call to Dirty() so - that the closing p tag belongs to the clean block. - -2006-12-12 Alex Schroeder - - * modules/journal-rss.pl (DoJournalRss): In the default case, use - the date extracted from the page title to compute the pubDate we - will report. This makes more sense when the wiki feed is - incorporated into a planet, where all pages are sorted by pubDate. - Last edit date will look strange. You can still override it using - ts=1. - -2006-11-27 Alex Schroeder - - * modules/creole.pl (CreoleRule): Improved heuristics allowing - bold words at the beginning of paragraphs. - -2006-11-26 Alex Schroeder - - * modules/creole.pl (CreoleRule): Support {{mu|text}}, ie. Creole - 0.2. - -2006-10-29 Alex Schroeder - - * modules/forms.pl (FormsRule): Allow blocks. - -2006-10-21 Alex Schroeder - - * Makefile: Added rule to build package and disk-image for Mac OSX - releases. - - * wiki.pl (ReportError): Write lock before releasing the locks and - define $q if it is not defined so we can report errors before - InitRequest, as suggested by Péter Szabó. - - * modules/throttle.pl (RemovePidFile): Removed error message if - the pid file can no longer be found. - -2006-10-15 Alex Schroeder - - * Makefile: Added rules to make .pkg and .dmg, changed some rules - to refer to $@. - (PACKAGEMAKER): New. - (PWD): New. - (upload): Add .dmg and .dmg.sig. - -2006-10-11 Alex Schroeder - - * wiki.pl (DoJournal): Pass search parameter along to - PrintJournal. - (PrintJournal): Pass search parameter along to "More..." link. - -2006-10-10 Alex Schroeder - - * modules/load-lang.pl (LoadLanguage): Change controlling - parameter from 'lang' to 'interface' because the interface - language should be independent from the filter language for search - and recent changes. - - * wiki.pl (InitVariables, ReInit): Reorganized initialization. - Functions get called in ReInit, and the various $*Init variables - were removed. - (RssInterwikiTranslateInit, NearInit, InterInit, AllPagesList): - Get rid of $*Init variables. - (AllPagesList): Move the reading of all existing pages inside the - lock to prevent race conditions. - (Save): Make sure to use the same timestamp for all variables. - (GetPermanentAnchor): Reread the file inside the lock to prevent - race conditions. - - * t/test.pl (update_page): Fix reinitialization. - -2006-10-09 Alex Schroeder - - * modules/load-lang.pl (LoadLanguage): Load language-specific - config file if it exists. - (LoadLanguage): Consider en the default language (no translation - file and no extra config file to be loaded), use lang paramater if - available (already stored in the cookie). - -2006-10-08 Alex Schroeder - - * wiki.pl (DelayRequired): Simplified. - (GetLanguages): Simplified. - (ParseData): Hand-written to optimize for speed. By getting rid of - some regular expressions used for parsing, the code is now more - than 10x faster. This is important for default searching, and for - indexed search using double-quotes. - (RSS): Eliminate unused variable $counter. - -2006-10-07 Alex Schroeder - - * wiki.pl (ApplyRules, PrintJournal): Add past and future - keywords. - (PrintJournal): Removed comment with journal metadata because the - attempt to write an AJAX "more" implementation for journals using - journal.js has been abandoned. - ($Today): New option. - (JournalSort): Add one-liner explicitly so that we don't need to - test using defined later. - (GetSummary): Fix code that added " . . . " to summaries that are - being cut off. - (AddRecentVisitor): Simplified. - -2006-10-06 Alex Schroeder - - * t/test.pl (test_page_negative, xpath_do): Print a "not" prefix - for negative tests. - - * wiki.pl (%Action): Added more. - (DoJournal): New, calls PrintJournal. - (PrintJournal): Addd "More..." link if appropriate. No longer - print horizontal lines before pages. - -2006-10-04 Alex Schroeder - - * modules/calendar.pl (Cal): Allow the $id substring anywhere in - the pagename, not just right after the date. This also handles - hours and minutes between the date and $id. - -2006-10-01 Alex Schroeder - - * wiki.pl (DoPost): Rearranged tests such that MIME type is tested - even when uploading a file via text posting. - (DoPost): Only check mime type when one was provided. - -2006-09-30 Alex Schroeder - - * wiki.pl (DoCss): Report missing LWP::UserAgent or wrong URL. - (GetCommentForm): Pass comment parameter to UserCanEdit(); - (UserCanEdit): New comment parameter, enable $EditAllowed = 3. - -2006-09-28 Alex Schroeder - - * modules/drafts.pl (DoDraft): Added status code to error. - (DraftNewGetEditForm): New. - (DraftCleanup): Use mtime instead of ctime when deleting files. - -2006-09-27 Alex Schroeder - - * wiki.pl (DoEdit, GetEditForm): Moved code from DoEdit into the - new GetEditForm, which returns a string that can be modified by - wrapper code. - -2006-09-23 Alex Schroeder - - * wiki.pl (GetSummary): Fix aftertext modifies summary. - -2006-09-21 Alex Schroeder - - * t/test.pl (update_page): Add quotes around the arguments. - - * wiki.pl (QuoteHtml): Replace control characters with space. - (PageHtml): Print diff if possible, even if the page itself is too - large. - (GetRcRss): Conditionalize some prints to avoid empty elements. - (TimeToRFC822): Rewrote to not use sprintf such as to avoid - localized names. - -2006-09-20 Alex Schroeder - - * wiki.pl (GetCommentForm): Don't show comment form when the - comment page is locked. - (PageHtml): At least return the diff if small enough. - -2006-09-19 Alex Schroeder - - * modules/atom.pl (GetRcAtom): Add link element. - - * wiki.pl (GetRcRss): Use cc for the creative commons namespace. - (ReportError): Don't return non-zero so that FCGI does not warn - about abnormal exit. - - * t/test.pl (test_page, test_page_negative): Use name() for the - test name. - (xpath_do, xpath_test, negative_xpath_test): Move the common stuff - in both tests into a third sub. - (get_text_via_xpath): Replaced with xpath_test. - (xpath_run_tests, run_tests): Run tests in order. - - * t/default-markup.t: Don't reset $NetworkFile = 0 at the end, as - each *.t file runs in a separate process. - - * Makefile (test): Replace call to test.pl with a Test::Harness - call. - (oldtest): Keep the old tests until migrated. - -2006-09-18 Alex Schroeder - - * modules/atom.pl (DoAtom): Use /atom/info for the info document. - Both /atom and /atom/feed should return the feed. /atom/full - should return the feed including page content. - -2006-09-14 Alex Schroeder - - * modules/tex.pl: Fix regular expression. - -2006-09-12 Alex Schroeder - - * modules/webdav.pl (body): Comment warning. - - * modules/creole.pl (CreoleRule): Fix hr rule. - -2006-09-11 Alex Schroeder - - * wiki.pl (PrintPageHtml): Allow skipping using page=0. - (GetRcRss): Cosmetics. - (InitVariables): Add $RsExclude to %AdminPages. - (PrintPageDiff): Print hr only if pages will follow. - -2006-09-08 Alex Schroeder - - * modules/creole.pl (CreoleRule): No markup within headings. No - space required after list item character. - -2006-09-07 Alex Schroeder - - * modules/delete-all.pl ($DeleteAge): New option. - - * modules/throttle.pl (DoInstanceThrottle): Longer message do go - along with the "Too many instances" error. - - * modules/creole.pl (CreoleRule): Eat more list characters. - (CreoleRule): Use code for inline unprocessed. - -2006-09-06 Alex Schroeder - - * modules/creole.pl (CreoleRule): Allow leading whitespace for - lists. - (CreoleRule): Support H2-H6. - * modules/usemod.pl (UsemodRule): Changed an if into an elsif. - -2006-09-05 Alex Schroeder - - * modules/creole.pl (CreoleRule): Support [[link|{{url}}]]. Allow - leading whitespace for lists. - - * modules/fckeditor.pl ($FCKdiff, NewFckGetDiff): New stuff which - got deleted again the same day because hacking ImproveDiff was the - better solution. - (NewFckImproveDiff): New. - (WysiwygScript): Add a little default CSS that will hide preview - buttons. - - * modules/creole.pl (CreoleRule): Support [[url]] pattern, add /o. - -2006-09-04 Alex Schroeder - - * modules/creole.pl: New file. - (CreoleRule): Fix linebreak ending a heading. - (CreoleRule): Added lots of image rules. - (CreoleRule): Fix list items. - (CreoleRule): Remove alternative hr markup. - -2006-09-02 Alex Schroeder - - * modules/image.pl (ImageSupportRule, ImageGetExternalUrl): Allow - interlinks and directories as well. - (ImageUrlEncode): New. - - * wiki.pl (GetInterSiteUrl): Don't quote slashes. - -2006-08-31 Alex Schroeder - - * Makefile (upload): Upload oddmuse-inkscape tarball, too. - ($(UPLOADVERSION).tar.gz): Build oddmuse-inkscape tarball. - (UPLOADVERSION, INKSCAPE): New file lists. - - * wiki.pl (GetId): If no id parameter was given, use the title - parameter. - (DoBrowseRequest): If a title parameter was given, but the Cancel - button was used, don't call DoPost(). - (DoEdit): Add a Cancel button. - - * inkscape/svg2oddmuse.sh: No longer use width, height, - etc. Use --export-area-drawing instead. Print errors to stderr, so - that Inkscape will show them. - - * modules/markup.pl: Add newline after {{{ for preformatted block. - -2006-08-30 Alex Schroeder - - * wiki.pl (BrowsePage): Moved some code into PrintRc. - (BrowseRc): Use PrintRc as well. - (PrintRc): New. - (RcHeader, GetFilterForm, GetRc): Revert previous unplanned - change: Use match instead of rcmatch. - - (PrintAllPages, GetPageOrEditLink, GetPageLink) - (GetEditLink, GetDownloadLink, GetRcText, GetRcRss, ) - (DoAdminPage, GetOldPageLink, GetSearchLink, GetAuthorLink) - (GetHeader, DoEdit, PrintPage, SearchTitleAndBody) - (SearchNearPages, PrintSearchResultEntry, GetPermanentAnchor): Use - NormalToFree instead of s/_/ /g. - (NormalToFree): New. - - (UserIsEditor, UserIsAdmin): Simplify. - (UserIsEditorOrError): Use ReportError. - - (DoRollback): Require a username (because of bots disregarding - robot instructions). - (DoHistory, GetHistoryLine): Make sure that you need either a - password or a username to see rollback links. - -2006-08-24 Alex Schroeder - - * modules/namespaces.pl (NamespaceRcLines): Implement rollback - skipping, too. - -2006-08-21 Alex Schroeder - - * wiki.pl (BrowsePage, PrintRc): Moved RC printing to new sub - PrintRc. When using "View all changes" on a page, the title will - show the id of the page instead of "RecentChanges" (based on the - rcidonly parameter). - (BrowseRc): Call PrintRc instead of BrowsePage. - (UserIsEditorOrError): Use ReportError. - (UserIsAdmin, UserIsEditor): Simplified. - -2006-08-19 Alex Schroeder - - * modules/markup.pl (%MarkupForcedPairs): Use pre for {{{ ... }}} - instead of faking it with code. Define a hash telling us which - useful subset of HTML elements are block elements. - (MarkupTag): Close HTML environment and restart paragraph if a - block element. - (MarkupRule): Match trailing whitespace on a line if a block - element. - -2006-08-18 Alex Schroeder - - * wiki.pl ($Counter): New variable for Fast::CGI info. - (InitVariables): Add counter if the script is being called - multiple times. - (RcHeader): Add view-rollback link. - (PrintAllPages, ValidIdOrDie, DoRandom): Simplified. - (DoRc, GetRcLines): Moved stripping of rollbacks from DoRc to - GetRcLines. Add parameter to GetRcLines. - (DoRollback): Add parameter to GetRcLines call in order to not - strip rollbacks. Fix bug which caused message printing at all - times. Check UserCanEdit before saving. - (RcHeader, GetRc): Use rcmatch instead of match parameter. - (GetHistoryLink, GetRCLink): Use FreeToNormal. - (UserCanEdit): Added test for sample undefined page. - (DoPost): Removed unnecessary tests, as these are caught by - UserCanEdit. - (GetSummary): Don't truncate the real summary! - -2006-08-17 Alex Schroeder - - * modules/search-freetext.pl (NewSearchFreePrintFooter): Small - translation issue, remove trailing whitespace from a key. - - * wiki.pl (PrintHtmlDiff): Translate diff fragments such as - added/changed/deleted. - (ImproveDiff): No longer translate diff fragments here. - - * modules/wanted.pl (PrintWantedData): Use Ts() instead of - T(sprintf()). - - * wiki.pl (PrintHtmlDiff): Recompute the new text if requesting a - diff with disabled caching. - - * upgrade-files.pl (basic_data): No longer set oldmajor. - - * wiki.pl (DoRc): Allow rollback=1 to see rollbacks. - (DoRollback): Rollback to empty pages is allowed. Print message - when only one page is to be rolled back and the two revisions are - the same. - (PrintHtmlDiff): Change messages used when displaying the diff. - Get rid of oldmajor. Show link to later minor edits when showing - last major edit diff. - (GetDiff): Changed s///g to s///ge. - (ExpireKeepFiles): Get rid of oldmajor. - (Save): Pass old diff on to UpdateDiffs. Get rid of oldmajor. Only - call UpdateDiffs if UseCache > 1. - (UpdateDiffs): Simplify. Get rid of oldmajor. - -2006-08-15 Alex Schroeder - - * wiki.pl (UpdateDiffs): Fix minor/major edit diffs. - - * modules/strange-spam.pl (StrangeBannedContentInit): Make it a - plain text page, too. - (StrangeNewBannedContent): Quote HTML in regexp. - - * wiki.pl (DoContributors): Fix bug, allow no page id at all. - (DoRollback): Only admins can do mass rollback, but every user can - do single rollbacks. Link to pages in the listing. Only leave - marker when doing mass rollback. If an id is provided, don't check - the time window: Just roll back as far as possible. - (DoRc): Splice [[rollback]] marker, too. Fix another off-by-one - error when skipping rollbacks. - (GetTextAtTime): Return a timestamp if no perfect match is found. - -2006-08-14 Alex Schroeder - - * wiki.pl: New contrib action. - (DoContributors): New. - (GetFooterLinks): Added appropriate link to contrib action. - (DoContributors): List unique usernames only. - - * modules/search-freetext.pl (SearchFreeTextCloud): Fix start div. - Don't skip tags containing numbers or a colon. - - * wiki.pl (DoCss): No need to URL encode the URLs in @CssList. - - * modules/static-copy.pl (StaticScriptLink): Remove unnecessary - call to AllPagesList. - (StaticGetDownloadLink): Strip underlines from alt texts, return - URL only when requested (matches changes in wiki.pl's - GetDownloadLink. - (GetDownloadLink): Ditto. - - * wiki.pl (GetDownloadLink): Allow to retrieve download URL only. - (GetHeader): Renamed variable for alt text. Use pagename as - $LogoUrl if possible. - - (DeletePage): Use ValidIdOrDie to check $id. - -2006-08-13 Alex Schroeder - - * wiki.pl (DoRc): Fix test for existing changes. - (GetHistoryLine): Report missing other revisions instead of - showing the fake "revision 0" entry. Add whitespace. - (PageDeletable, DoMaintain, DoEdit, ExpireKeepFiles, DoRollback) - (RollbackPossible): Replaced 24*60*60 with 86400 and 60*60 with - 3600. - (DoRc): Fix off-by-one error, again. - (GetRcLines, DoRollback): Fix off-by-one error as well. - (DoRollback): Reorder error messages. Fix test for ids. - (DoHistory): Offer page delete link only if a revision exists to - be deleted. - (DoHistory): Pass timestamp reference to GetHistoryLine. - (GetHistoryLine): Use timestamp reference to group entries by day. - -2006-08-12 Alex Schroeder - - * wiki.pl (GetSummary): Fixed summary post-processing so that [URL - text] really does get replaced by text. - (GetRc): Fix clusters in recent changes. - (DoRc): Remove rc lines of rolled back changes. - (DoRollback): Leave marker for DoRc. - - (DoRc): Moved RC file reading into new function called GetRcLines. - (GetRcLines): New. No longer generate warnings when reading empty - rc files (as is usual when creating a new wiki). - (DoRollback): Optimize by calling GetRcLines and parsing the - result instead of checking all pages. Allow rollback of single - pages. - (DoHistory): Pass new parameter to GetHistoryLine. Add link to - delete current page at the bottom. - (GetHistoryLine): Accept new parameter, and add rollback links - when appropriate. - - (GetRcHtml): Simplify translation handling. - (DoEdit): Changed text of the file/text replacement link at the - bottom. Did this for all translation files, too! - - (DoPost, PageDeletable): Don't treat $DeletedPage like a regular - expression. - -2006-08-11 Alex Schroeder - - * modules/static-copy.pl (DoStatic, StaticFileName): Don't set - %StaticMimeTypes in DoStatic, as this has no effect here when - GetDownloadLink is called. StaticFileName is the right place. - -2006-08-10 Alex Schroeder - - * wiki.pl (InitConfig): Don't test for existing config file if it - was already loaded. - (InitRequest): Only get a new CGI object if we don't have one - already. Does this break mod_perl? - (PrintFooter): No longer protect the call to PrintMyContent. - Instead, test whether it is defined before calling it. - -2006-08-09 Alex Schroeder - - * modules/config.pl (DoConfig): Add URL, compare with original at - http://www.emacswiki.org/scripts/current to figure out the default - values. - (ConfigStr, ConfigListEqual, ConfigHashEqual): New. - - * modules/static-copy.pl: Fix typo in init code. - - * wiki.pl (DiffMarkWords, DiffHtmlMarkWords): Changed how - highlighting works. Should be much robuster now, and no longer - suffer from strange off-by-one errors. - -2006-08-07 Alex Schroeder - - * wiki.pl (SmileyReplace): HTML Unquote alt text of smilies. - - * modules/sidebar.pl ($SideBarOpenPageName): New. - (NewSideBarGetHeader): Set it. - - * modules/toc.pl (TocHeadings): Use $SideBarOpenPageName if set; - set $key. - (TocHeadings): Use $key. - - -2006-08-06 Alex Schroeder - - * wiki.pl (GetUrl): Typo. - - * modules/search-freetext.pl (SearchFreeTextCloud): Catch when - every tag appears exactly once, ie. $min == $max == 1. - - * modules/weblog-4.pl (BlogMenu): Add class to menu entry. - - * modules/wanted.pl (WantedAction): Add class to menu entry. - - * modules/search-freetext.pl (SearchFreeTextMenu): Add class to - menu entries. - - * modules/referrer-tracking.pl (RefererMenu): Add class to menu - entry. - - * modules/publish.pl (PublishMenu): Add class to menu entry. - - * modules/login.pl (LoginAdminRule): Add class to menu entries. - - * modules/despam.pl (DespamMenu): Add class to menu entry. - - * modules/clustermap.pl (ClusterMapAdminRule): Add class to menu - entries. - - * modules/big-brother.pl (BigBrotherVisitors): Add class to menu - entry. - - * modules/admin.pl (AdminPower): Add class to menu entries and add - label for input field. - - * wiki.pl (GetUrl): Add URL protocol as class. - (GetPageLink): Add class parameter. - (DoAdminPage): Add class to all menu entries. - (GetFooterLinks): Add class to the links. - -2006-07-31 Alex Schroeder - - * modules/irc.pl (IrcRule): Fix regular expression as suggested by - Jonah on the website. Also, strip a single space after the nick. - -2006-07-16 Alex Schroeder - - * modules/strange-spam.pl ($StrangeBannedContent): New option. - (StrangeNewBannedContent): Read regular expressions from a page. - (StrangeBannedContentInit): New. - - * wiki.pl (InitVariables, UserCanEdit, DoPost, Save): Replaced - @LockOnCreation with %LockOnCreation. - (InitVariables, DoAdminPage): Replaced @AdminPages with - %AdminPages. - - * modules/sidebar.pl (SidebarInit): Replaced @AdminPages with - %AdminPages. - - * modules/referrer-tracking.pl (RefererInit): Replaced @AdminPages - with %AdminPages. - - * modules/questionasker.pl (QuestionaskerInit): Replaced - @AdminPages with %AdminPages. - - * modules/page-type.pl (PageTypeInit): Replaced @AdminPages with - %AdminPages. - - * modules/localnames.pl (LocalNamesInit): Replaced @AdminPages - with %AdminPages. - - * modules/gotobar.pl (GotobarInit): Replaced @AdminPages with - %AdminPages. - -2006-07-14 Alex Schroeder - - * modules/headers.pl: Set the rule order to 95. - - * modules/toc.pl (TocHeadings): Transform headers.pl headers into - usemod.pl headers so that the TOC can be generated correctly. - -2006-07-13 Alex Schroeder - - * modules/toc.pl (TocRule): Support headers markup headers if - headers.pl is loaded. Only support usemod markup headers if - usemod.pl is loaded. - - * modules/irc.pl (IrcRule): Add more variants. - -2006-07-10 Alexander Dulaunoy - - * wikiappend (PostRaw, append, main): Add username and password. - -2006-07-03 Alex Schroeder - - * modules/localnames.pl (DoLocalNames): New. - -2006-07-02 Alex Schroeder - - * modules/localnames.pl ($LnDir, $LnCacheHours, GetLnFile, - LnMaintenance, LocalNamesRule): New. - (LocalNamesInit): Handle LN references. - (LocalNamesInit): Remove code duplication. - (LocalNamesInit): Accept [[ln:url]] without text. - (LocalNamesInit): Handle mixed DOS/Unix EOL. - (LocalNamesInit): Fix regular expression. - - * wiki.pl (DoMaintain): Fix freshness check for RSS files. - -2006-06-23 Alex Schroeder - - * wiki.pl (PermanentAnchorsInit): Initialize %PermanentAnchors, - too. - -2006-06-15 Alex Schroeder - - * wiki.pl (DoClearCache): Reidentify languages. - ($JournalLimit): New option. - (PrintAllPages): Use it. - -2006-06-13 Alex Schroeder - - * modules/search-freetext.pl (NewSearchFreeTextTitleAndBody): Only - print top and bottom page counters if a function was provided (and - thus output is (probably) printed. - - * modules/calendar.pl (Cal): Pass %5e (^) at the beginning of - match explicitly. - (DoCollect): No longer automatically assume that match starts with - ^ and add handling of search parameter. - - * wiki.pl (ApplyRules): Allow "0" as page text. - (ApplyRules): Make search pattern in less greedy. - - * modules/age.pl ($AgeParameter): New. - (NewAgeGetHeader): Use it. - -2006-06-12 Alex Schroeder - - * wiki.pl (UrlEncode): Simplify using a hash instead of a list to - avoid grepping through the same list repeatedly. - (GetRc): Simplify use of rcfilteronly parameter and rcclusteronly - using a hash as above. - (GetRcRss): Simplify excluding of pages using a hash as above. - (DoDownload, DoPost): Simplify test for allowed MIME types using a - hash as above. - (SearchNearPages): Simplify using a hash as above. - - * modules/search-freetext.pl (NewSearchFreeTextTitleAndBody): Do - not apply limit when building a journal using search, or when - filtering recent changes or rss feed. - -2006-06-11 Alex Schroeder - - * modules/search-freetext.pl (SearchFreeDoTag): Retagging is a - minor change. - - * modules/weblog-4.pl (BlogMenu): New. - (BlogNewOpenPage): Use tag search to build journal. - - * modules/search-freetext.pl (SearchFreeTextIndex): Index MIME - type of uploaded files, too. - - * wiki.pl (SearchTitleAndBody): Search MIME type of uploaded - files, too. - - * modules/search-freetext.pl (SearchFreeTextIndex): No longer skip - files, but index only the page name for the word index, and index - everything after the encoded part for the tag index, since there - may be tags there. - (NewSearchFreePrintFooter): Print tags below uploaded file if tagged, - allow retagging of images when editing an uploaded file. - (SearchFreeDoTag): New action for retagging of uploaded files. - - * wiki.pl (DoClearCache): Touch index file after clearing the - cache. - (SearchTitleAndBody): Allow searching of page titles for uploaded - files. - (PrintSearchResult): If an uploaded file is part of the result, - print it. Do away with the ^#FILE speciality. - -2006-06-10 Alex Schroeder - - * wiki.pl (ApplyRules, PrintJournal): Extend journal tag with - search. - -2006-06-09 Alex Schroeder - - * modules/sync.pl (SyncNewSave): Pass password along. - - * wiki.pl (DoClearCache): Changed GetHttpHeader to GetHeader, - thanks to Ingo Belka for spotting it. - - * modules/search-freetext.pl (process): Lowercase new words. - (SearchFreeTextIndex): UrlEncode keys because internal data - structure uses commas, so page names with commas get corrupted. - (SearchFreeTextCloud): UrlDecode keys. - (SearchFreeTextGet): No longer quotemata phrases (since backlinks - have quoted regular expressions automatically. Concatenate display - title and body before checking for phrases. UrlDecode keys. - (SearchFreeTextGet): QuoteRegexp search terms unless they appear - to be quoted already. - (SearchFreeTextCloud): Fix URL encoding stuff. - - * wiki.pl (SearchTitleAndBody): Concatenate title and body and - call SearchString once instead of once for each. - -2006-06-08 Alex Schroeder - - * wiki.pl (DoClearCache): Add real HTML output instead of - plain/text. - (SearchString): Get rid of 'and' and 'or', instead use double - quotes to check for phrases. - (DoSearch, DoMaintain, DoShowVersion, DoSurgeProtection): Trim - some space. - (GetSearchLink): Add double-quotes around title so that titles - with spaces in them will be searched correctly. - - * modules/publish.pl (DoPublish): Send password along. - - * wiki.pl ($Monolithic, DoPrintAllPages): Removed all action. - (ScriptLink): Got rid of $Monolithic. - (DoClearCache): Added clear action. - (DoAdminPage): Added clear action to menu. - (QuoteRegexp): New. - (GetSearchLink): Use it. - (DoSearch, DoEditLock, DoPageLock): Print error before printing - the header. - -2006-06-07 Alex Schroeder - - * modules/search-list.pl (SearchListRule): Initialize %hash - correctly. - - * modules/search-freetext.pl (SearchFreeTextGet): Add parameter to - search for phrases as tags. - (NewSearchFreeTextTitleAndBody): Pass new parameter to - SearchFreeTextGet. - -2006-06-06 Alex Schroeder - - * modules/search-list.pl (SearchListRule): Use GetPageLink. - - * wiki.pl ($BracketWiki): Default to 1. - -2006-06-05 Alex Schroeder - - * modules/no-question-mark.pl (GetDownloadLink): New. - - * modules/questionasker.pl (NewQuestionaskerDoPost): No more - logging of Q&A. - ($QuestionaskerRememberAnswer): New option. - (QuestionaskerInit): Add question parameter to cookie. - (NewQuestionaskerDoPost): Set question parameter in cookie if - answered correctly. - (NewQuestionaskerDoPost, NewQuestionaskerGetFormStart): Use new - option and parameter from cookie. - - * modules/search-list.pl (SearchListRule): Use . - - * wiki.pl (GetOldPageLink, GetSearchLink, GetHistoryLink) - (GetRCLink): Removed test for $FreeLinks before translating space - to underline. - (ApplyRules): no longer requires double quotes. - - * modules/search-freetext.pl ($SearchFreeTextNewForm): Removed. - (SearchFreeTextIndex): Plain text response. - (SearchFreeTextNewDoSearch): Removed. - (SearchFreeTextNewGetRc): Removed. - (NewSearchFreeTextTitleAndBody): Renamed from - SearchFreeTextTitleAndBody, call OldSearchFreeTextTitleAndBody if - the old parameter is set. - (NewSearchFreeTextNewHighlightRegex): Renamed from - SearchFreeTextNewHighlightRegex, call - OldSearchFreeTextNewHighlightRegex if the old parameter is set. - - * modules/search-list.pl (SearchListRule): Sort if requested. Use - PageSort() if defined. - - * modules/aggregate.pl (AggregateRule, DoAggregate): Allow search - expressions as well. - -2006-06-02 Alex Schroeder - - * wikicopy: Extended doc string. - (main, copy, PostRaw): Add support for -u and -p. - (RequestAgent): Private specialization of LWP::UserAgent using the - -w option. - (GetRaw, PostRaw): Use it. - (main): Add -w option. - -2006-05-30 Alex Schroeder - - * modules/questionasker.pl (NewQuestionaskerDoPost): No answer - required for previews. Log all questions and answers. Print - footer. - (@QuestionaskerQuestions): Make default questions harder to answer - such that pasting spam into the answer field does not have a high - chance of answering the question. - -2006-05-29 Alex Schroeder - - * modules/questionasker.pl: Simplified code. - (NewQuestionaskerDoPost): Extract id from the title parameter. - (%QuestionaskerProtectedForms): New option. - (NewQuestionaskerGetFormStart): Use it. - (QuestionaskerGetQuestion): Use CGI.pm functions to create HTML. - Make valid HTML. - (QuestionaskerInit): New sub to add $QuestionaskerRequiredList to - @AdminPages. - -2006-05-28 Alex Schroeder - - * wikiadd (usage): Doc string. - -2006-05-27 Alex Schroeder - - * modules/questionasker.pl ($QuestionaskerBypass): Undocumented - option removed. - (NewQuestionaskerDoPost): Removed bypass. - (@QuestionaskerQuestions): Uncommented some questions, removed - some others. - (QuestionaskerException): New. - (NewQuestionaskerGetFormStart): No questions asked for admins. - Check for exceptions. - -2006-05-26 Alex Schroeder - - * modules/toc.pl (TocHeadings): Fix usemod escaping rules, add - markup module escaping rules. - -2006-05-25 Markus Lude - - * wiki.pl (InitModules): module names may contain a further dot - -2006-05-24 Alex Schroeder - - * wiki.pl (ApplyRules): Localize $OpenPageName and %Page before - calling SearchTitleAndBody. - - * modules/today.pl (DoNew): Move to date_time_topic format. - -2006-05-21 Alex Schroeder - - * wiki.pl (ApplyRules): Make it so that only works - at the beginning of the line. - -2006-05-20 Alex Schroeder - - * wiki.pl (ApplyRules): Save $_ while processing search and add -

after the search. - - * modules/today.pl (DoNew): Add hour parameter. - -2006-05-17 Alex Schroeder - - * wiki.pl (GetRcRss): Removed two unnecessary QuoteHtml calls. - (GetInterLink): Add the site to the class. - -2006-05-16 Victor Osadci - - * modules/translations/romanian-utf8.pl: Add back the strings that - were accidentally removed with the previous commit. - -2006-05-10 Alex Schroeder - - * modules/calendar.pl ($CalStartMonday): New option. - (draw_month): Use it. - (Cal): Accept a new parameter, id. - (CalendarRule): New pattern, [[month:+n foo bar]], and pass new - parameter to Cal. - -2006-04-30 Alex Schroeder - - * modules/toc-headers.pl: New. - -2006-04-29 Alex Schroeder - - * wikiput (usage): Document -p parameter. - - * modules/today.pl (DoNew): Fix bug when used together with - namespaces.pl. - -2006-04-20 Alex Schroeder - - * modules/namespaces.pl (NamespacesInitVariables): Set $StaticDir - and $StaticUrl, too. - -2006-04-17 Alex Schroeder - - * modules/gotobar.pl (GotobarInit): No longer use - @UserGotoBarPages because that confuses the order of links. - -2006-04-15 Alex Schroeder - - * wiki.pl (PrintJournal): Fix problem with missing last post if - less than ten pages were available. - -2006-04-07 Alex Schroeder - - * modules/gotobar.pl (GotobarInit): Recognize more links: [[foo - bar|blarg blarg]] and [Foo:Moo blarg argh]. - -2006-04-02 Alex Schroeder - - * wiki.pl (DoMaintain): Don't fetch files from near sites if the - files are less than 12h old. - - * modules/referrer-tracking.pl (GetReferers): Only decode the - title if the referrer charset is the same as the local charset. - (UpdateReferers): Store charset. - (GetReferers): Extract valid URL using $FullUrlPattern just to be - safe. - (UpdateReferers): Extract charset from the content-type. - -2006-04-02 Markus Lude - - * modules/translations/german-utf8.pl: Fixed some messages - -2006-03-31 Alex Schroeder - - * modules/namespaces.pl (NamespacesInitVariables): Check namespace - parameter for validity and complain if it is not valid. We can't - do that with path_info, but this is good enough, because it allows - us to verify namespaces typed into forms (eg. from - Oddwiki:Startup). - -2006-03-29 Alex Schroeder - - * wiki.pl (GetRcHtml): Two more CSS classes. - -2006-03-26 Alex Schroeder - - * wiki.pl (DoPost): Check summary for banned content, too. - - As suggested by Ryan Liu: - (ScriptLink): Don't URL-encode the name attribute. - (GetRcRss): Use $HttpCharset instead of UTF-8. - (GetHeader): URL-encode the homepage target. - - * modules/calendar.pl (Cal): Replace \w+ by \S+ because Oddmuse - cannot rely on locale information being correct. - -2006-03-24 Alex Schroeder - - * modules/calendar.pl (Cal): No double translation. - (month_name): Translate here instead of in Cal, because this - allows us to extract the English month names and put them into the - translation files. - -2006-03-22 Alex Schroeder - - * modules/calendar.pl (Cal): Use default year if no month is - given. - (month_name): Don't translate month names here, they are - translated in Cal. - - * wiki.pl (%Includes): New variable. - (ApplyRules): Use it to prevent loops when including local pages. - (DoEditLock, DoPageLock): Save some whitespace. - - * modules/calendar.pl ($CalendarUseCal): Removed. - ($CalAsTable): New option. - (Cal, CalendarRule, PrintYearCalendar, draw_month): Rearrange the - printing of divs, use $CalAsTable. - (draw_month): All months have the same number of lines inside - their pre tag. - - * wiki.pl ($ReadMe): New option. - (InitDirConfig): Initialize it. - (OpenPage): Use it. - -2006-03-21 Alex Schroeder - - * modules/gotobar.pl (GotobarInit): Set $HomePage to the first - link and $RCName to the second link. Call FreeToNormal for all - pages. - -2006-03-19 Alex Schroeder - - * wiki.pl (GetDownloadLink): Convert underlines to spaces in the alt-text. - (PageIsUploadedFile): Make sure files are in fact skipped. - -2006-03-18 Alex Schroeder - - * Makefile (test): Add beep at the end. - - * modules/localnames.pl (LocalNamesNewSave): Sort list of defined - names to facilitate testing. - - * modules/portrait-support.pl (PortraitSupportRule): Allow - indentation of [new] tags. - - * wiki.pl (GetRcRss): Use GetPageParameters if all or a change in - the cluster, just as in GetRcHtml. - -2006-03-17 Alex Schroeder - - * modules/localnames.pl (LocalNamesNewSave): Bugfix. - -2006-03-16 Alex Schroeder - - * wiki.pl (GetRcRss): Use title parameter to title the RSS feed if - provided. - -2006-03-16 Perry Nguyen - - * modules/toc.pl (TocRule): Skip the a element inside headings. - -2006-03-14 Alex Schroeder - - * wiki.pl (PrintJournal): Handle offset parameter and comment. - - * modules/aggregate.pl (DoAggregate): Add frontpage title to - channel title. Add page id to links. - -2006-03-11 Alex Schroeder - - * modules/markup.pl (MarkupRule): Test for space before the quote - before checking for punctuation after the quote. - -2006-03-06 Alex Schroeder - - * modules/image.pl (ImageSupportRule): Handle spaces in external - names. - (ImageSupportRule): Don't generate an alt text if none was - specified, since the rule forces you to pick an alt text if you're - going to provide a target. - - * modules/markup.pl (MarkupRule): Handle quotes. - ($MarkupQuotes): New. - ($MarkupQuoteTable): New. - (MarkupRule): Use them. - -2006-03-05 Alex Schroeder - - * modules/image.pl (ImageGetExternalUrl): New. - (ImageSupportRule): Use it. Handle caption and reference. - Simplified use of "external". - - * modules/search-freetext.pl (process): Use limited set of bytes - to recognize words. - -2006-03-04 Alex Schroeder - - * modules/search-freetext.pl (SearchFreeTextNop): Override - SearchResultCount. - (SearchFreeTextDB): Don't make the special tokenizer optional. By - default Oddmuse will not do stemming, stop lists, etc. - - * wiki.pl (SearchResultCount): New. - (DoSearch): Use it. - - * modules/search-freetext.pl (OddMuse::Tokenize): New class for - tokenization of tags. - (SearchFreeTextDB): New. - (SearchFreeTextIndex, SearchFreeTextCloud) - (SearchFreeTextTitleAndBody): Use it. - (SearchFreeTextGet): Receive database as a parameter instead of a - file. - - * test.pl (clear_pages): New image tests. - -2006-03-03 Alex Schroeder - - * modules/image.pl (ImageSupportRule): Unquote HTML for external - links. - - * modules/throttle.pl (CreatePidFile): Print all parameters except - for the pwd parameter into the pidfile. - -2006-03-02 Alex Schroeder - - * modules/throttle.pl (CreatePidFile): Put action and id into the - pid file. - - * modules/search-freetext.pl (SearchFreeTextCloud): Sort keys, - separate by ellipsis. - (SearchFreeTextIndex): No longer lock the wiki while indexing. - Indexing takes way too long! - - * wiki.pl (RequestLockDir): Fix message for existing locks. - (DeletePage): Remove keep directory, too. - - * modules/search-freetext.pl (SearchFreeTextMenu): Add tag cloud - menu item. - (SearchFreeTextCloud): New. - -2006-02-28 Alex Schroeder - - * wiki.pl (RequestLockDir): Fix computation of time period for - CalcTimeSince. Use ctime instead of mtime. - -2006-02-26 Alex Schroeder - - * modules/image.pl (ImageSupportRule): Allow multiple CSS classes. - - * wikiupload (wikiput): Use binary mode. - - * modules/lang.pl (NewLangGetNearLinksUsed): Don't use - GetFormStart, because that resulted in invalid HTML with CGI.pm - 3.10 on communitywiki.org. - -2006-02-25 Alex Schroeder - - * wiki.pl (GetRaw): Only return content if the response is a - success. - -2006-02-22 Alex Schroeder - - * modules/today.pl (DoNew): Allow the addition of an id parameter. - -2006-02-22 Matthias Dietrich - - * modules/hiddenpages.pl ($HideEditorPages $HideAdminPages) - ($HideRegExEditor $HideRegExAdmin): New. - ($HiddenPages): Deleted. - (NewOpenPage): Change to use the new variables. - -2006-02-21 Alex Schroeder - - * wiki.pl: Don't load whole page when the page contains an - uploaded file that should be skipped anyway. This opens ordinary - pages twice, but that's ok. Based on a patch by Hawson. - (PageIsUploadedFile): New, with specialized file open. - (SearchTitleAndBody): Use it to skip files unless requested. - -2006-02-15 Alex Schroeder - - * modules/grep.pl (GrepRule): No longer use OpenPage, since that - corrupts the HTML cache of the last page when rendering it for the - first time. No longer take page language into account. - -2006-02-12 Alex Schroeder - - * modules/calendar.pl (CalendarRule): The start div for the - calendar is part of the dirty rule and should not be added to the - clean block. (This resulted in a doubling of the div start tag.) - (Cal): Don't allow year 0. - -2006-02-11 Victor Osadci - - * modules/translations/romanian-utf8.pl: New translations for - error and help messages. - -2006-02-11 Ingo Belka - - * modules/calendar.pl (Cal): Removed limit on years. - (draw_month): Handle 1582-10-04. - (zeller): Handle 1582 and years smaller than 1582. - -2006-01-25 Alex Schroeder - - * wiki.pl (GetValidatorLink): Use referrer links for validation. - -2006-01-21 Alex Schroeder - - * modules/translations/german-utf8.pl: Many new translations. - - * modules/calendar.pl: Based on a patch by Ingo Belka - . - ($CalendarUseCal): Removed. - (Cal): Use draw_month instead of cal or a Perl module. - (draw_month, zeller, leap_year, month_days, month_name): New. - (draw_month, month_name): Translate weekdays and month names. - -2006-01-14 Alex Schroeder - - * modules/search-freetext.pl (SearchFreeTextNewGetRc): New. - -2006-01-03 Markus Lude - - * wiki.pl (InitModules): simplified pattern. - (DoEdit): Add default value to GetParam call. Result is now - defined and avoids a warning in the comparison. - -2006-01-02 Alex Schroeder - - * modules/hiddenpages.pl: Various changes by Guido Jäkel without - ChangeLog entries. ;) - - * modules/weblog-3.pl (CategoryInit): Use the first link of the - list, not the last one. Use $FreeLinkPattern instead of .* to - match. - -2005-12-30 Alex Schroeder - - * modules/search-freetext.pl (SearchFreeTextIndex): Remove - underscores before adding pagename to the indexed content. - -2005-12-29 Alex Schroeder - - * wiki.pl (RequestLockDir): Print how long since the lock was - created. - -2005-12-28 Alex Schroeder - - * modules/toc.pl (TocRule): Prevent H1. - - * test.pl: More local names tests, fixed all usemod markup rules - that used to result in H1 headers. - - * modules/usemod.pl (UsemodRule, WikiHeading): Prevent H1. - -2005-12-27 Alex Schroeder - - * wiki.pl (BannedContent): Fix parsing of rules. - - * modules/despam.pl (DoDespam): Fix caching of rules. - (DespamBannedContent): Correctly implement the rules. - -2005-12-26 Alex Schroeder - - * modules/tags.pl: No more indexing, since this is now handled by - the indexed search. - (TagsSearchIndex, TagsNewGetSearchForm, TagsSearch) - (TagsSearchTitleAndBody, TagsSearchNewHighlightRegex) - (TagsSearchMenu): Deleted. - - * modules/search-freetext.pl: Add separate indexing of tags, an a - new formatting rule for tags. - ($SearchFreeTextTagUrl): New option. - (SearchFreeTextTagsRule): New Rule. - (SearchFreeTextIndex): Index tags in a separate index. - (SearchFreeTextTitleAndBody): Correct handling of raw parameter, - handle searching for tags, use SearchFreeTextGet helper. - (SearchFreeTextGet): New. - -2005-12-25 Alex Schroeder - - * modules/tags.pl (TagsSearch): Removed warning. - (TagsSearch): Replaced code with a modified copy of DoSearch to - avoid too much hackery around conflicts with search-freetext.txt. - -2005-12-24 Alex Schroeder - - * raw.pl: Timestamp files after writing them. - - * wikiput (main): Print target URL in message when empty. - -2005-12-23 Alex Schroeder - - * modules/localnames.pl ($LocalNamesCollectMaxWords) - (LocalNamesNewSave): New option, use it. - -2005-12-22 Alex Schroeder - - * modules/localnames.pl (LocalNamesNewSave): Note what local names - have been added in the summary for the LocalNames page. - -2005-12-22 Markus Lude - - * wiki.pl (ResolveId): Return defined values. - (RSS, EncodePage): Initialize $date and $result to avoid warnings. - -2005-12-20 Alex Schroeder - - * modules/localnames.pl (LocalNamesNewSave): New, to automatically - add all named external links to LocalNames. - ($LocalNamesCollect): New option. - - * modules/aggregate.pl (AggregateRule): Add RSS feed. - -2005-12-19 Alex Schroeder - - * wiki.pl (GetFilterForm, GetCommentForm, GetSearchForm, DoEdit) - (DoIndex): Add labels. - - * modules/tags.pl ($TagsSearch): New option. - (TagsSearchMenu): New, added to @MyAdminCode. - (TagsSearchIndex): New, added to %Action. - (TagsNewGetSearchForm): New, replaces GetSearchForm. - (TagsSearch): New, added to %Action. - (TagsSearchTitleAndBody, TagsSearchNewHighlightRegex): New, - modelled on search-freetext.pl. - -2005-12-18 Alex Schroeder - - * modules/page-type.pl (NewPageTypeDoPost): Unquote HTML when - stuffing the text back into the text parameter. - - * wiki.pl (BannedContent, UserIsBanned): Changed parsing in order - to use http://www.usemod.com/cgi-bin/mb.pl?SharedAntiSpam. - (%PlainTextPages, InitVariables): New option. - (ApplyRules): Instead of hardcoding StyleSheetPage and ConfigPage, - use the new option to return the page as preformatted. - (UserIsBanned, BannedContent): Fix regular expressions. - (InitVariables): Make sure there's no empty string as a key for - %PlainTextPages. This happens if $ConfigPage is not set, for - example. - (ApplyRules): Safety check: Make sure $OpenPageName is set before - using %PlainTextPages. - (Init, InitModules, InitConfig): Moved some code from Init to the - new functions. - (InitRequest): Moved binmode call here. - (InitConfig): Hand coded GetPageContent, because this early $q is - not yet available. - (ApplyRules): Fix XHTML output. - -2005-12-17 Alex Schroeder - - * wiki.pl (BannedContent): Only check the URLs of the - page (ie. filter for $FullUrlPattern first). - -2005-12-13 Alex Schroeder - - * modules/tables-long.pl (TablesLongRule): Fix problem with extra - hr element or missing last cell if the table was the last thing on - the page. - (TablesLongRule, TablesLongRow): Implement rowspan. - -2005-12-11 Alex Schroeder - - * wiki.pl (ValidId): Return when $id is undefined before doing a - replacement in order to not get a warning. - -2005-12-08 Alex Schroeder - - * modules/toc.pl (TocRule): Only set $TocShown if $TocAutomatic is - true, and therefore a table of contents has in fact been shown. - This solves the problem of only working before the first - heading (and requiring no headings in the sidebar). - (TocRule, TocHeadings): Change how anchor names are determined to - rule out conflicts with included pages such as the sidebar. - -2005-12-07 Alex Schroeder - - * wiki.pl (DoPageLock): No longer print a separate error if the id - parameter is missing. Rely on ValidIdOrDie instead. - (DoPost, ValidId): Refactor. - -2005-12-06 Alex Schroeder - - * wiki.pl (InitVariables): Set $LastUpdate on every request and - reinitialize some variables in case the server runs several - mod_perl processes. - -2005-11-07 Alex Schroeder - - * modules/namespaces.pl (NewNamespaceScriptLink): Do not mangle - actions matching $FullUrlPattern, as that breaks localnames.pl. - Since $action is already URL-encoded, however, we do the same test - as in ScriptLink: $UrlProtocols followed by the URL-encoded colon: - %3a. - - * modules/usemod.pl (UsemodRule): Allow attributes in HTML tags as - proposed by Peter Gervai. - -2005-10-29 Alex Schroeder - - * wiki.pl (GetFooterTimestamp): Don't show diff link for new pages - as suggested by Aaron Hawley. - -2005-10-28 Alex Schroeder - - * wiki.pl (PageDeletable): Empty pages should be deleted, but - usually they contain exactly one newline. All pages consisting of - whitespace only shall now be deletable. - - * modules/namespaces.pl (NewNamespaceScriptLink): Do not mangle - actions matching $FullUrlPattern, as that breaks localnames.pl. - - * modules/localnames.pl (NewLocalNamesReInit): New. - - * modules/namespaces.pl: Call NamespacesInitVariables as early as - possible. - - * wiki.pl (ReInit): Reset $PermanentAnchorsInit if forced. - -2005-10-27 Alex Schroeder - - * wiki.pl (ReInit): New. - (Save): Use it. - (DeletePage): Use it, and fix IndexHash and IndexList. - - * modules/namespaces.pl (NamespacesInitVariables): Rewrite after - the changes to the main script regarding initialization. Always - force a reinit (in a mod_perl context we cannot reuse the info). - - * plinks.js (addpLinks): Only mark up the first div.content in the - document. - -2005-10-26 Alex Schroeder - - * wiki.pl (GetCommentForm, DoEdit): Added p hotkey for preview at Perry - Nguyen's suggestion. - -2005-10-22 Alex Schroeder - - * wiki.pl (PrintHtmlDiff): Don't use $revNew-1 as the default for - the old revision if no new revision was specified, as suggested by - Markus Lude on the wiki. - (DoSearch): When replacing, quote metacharacters in the - replacement text before searching for the replacement. - (Replace): Rewrote replacement such as to solve quoting issues. - - * modules/localnames.pl (LocalNamesInit, LocalNamesNewNearInit): - Merged LocalNamesNewNearInit with LocalNamesInit. - -2005-10-21 Alex Schroeder - - * wiki.pl (BrowseResolvedPage): Visiting non-existing comment - pages is ok, even if $NotFoundPg is set. - -2005-10-15 Alex Schroeder - - * wiki.pl (GetFormStart): Use start_multipart_form instead of - start_form, because CGI.pm 3.04 does not default to the correct - encoding for forms. - -2005-10-15 Victor Osadci - - * modules/translations/romanian-utf8.pl: Translate more strings, - mostly error handling. - -2005-10-14 Alex Schroeder - - * modules/markup.pl (MarkupRule): Prevent forced markup from - spanning empty lines when start and end tag are the same. This is - specially tricky when // is used on a file path, for example. - - * wiki.pl (ApplyRules): Add HTML entities to the default rules. - (QuoteHtml): No longer unescape HTML entities. - (GetSummary): Strip [URL text] from default summaries. - (GetSummary): Only limit to default length after stripping URLs. - -2005-10-11 Alex Schroeder - - * wiki.pl (PageDeletable): Reverse order of statements such that - empty pages can be deleted. - (QuoteHtml): Make regexp stricter such as not to break the - markdown module. - -2005-10-10 Alex Schroeder - - * wikiput (wikiput): Status code 200 is no error. - - * wiki.pl (InitVariables): Reorder calls so that $InterMap gets - translated before it is read. - -2005-10-09 Alex Schroeder - - * wiki.pl (ApplyRules): Test for $OpenPageName before comparing it - with $StyleSheetPage or $ConfigPage. - (Cookie): Just encode $FS since both keys and values are already - encoded in CookieData. - - * modules/markup.pl (MarkupRule): Fix regexp for forced pairs, - because it used to crash if no matching end was found for - thousands of characters. - (MarkupRule): Make sure empty elements are not created, eg ____ - stays ____ and does not turn into an empty (and thus invisible) - element. - - * modules/tables-long.pl: - * modules/sidebar.pl: - * modules/referrer-tracking.pl: - * modules/portrait-support.pl: - * modules/page-trail.pl: Removed $DefaultStyleSheet. - - * modules/linebreaks.pl (LineBreakRule): Fixed the same typo we - had in the main script many ages ago with a s* instead of \s*. - -2005-10-08 Alex Schroeder - - * modules/calendar: - * modules/crumbs: - * modules/dynamic-comments: - * modules/irc: Removed $DefaultStyleSheet. - - * modules/edit-cluster: Removed $DefaultStyleSheet and tons of - changes I do not understand anymore. I don't even know what this - module is for. I should delete it. - - * OddMuse.pm: Require instead of do wiki.pl. - - * wiki.pl (ApplyRules): Close HTML environments before printing - anything on pages containing files. - -2005-10-07 Alex Schroeder - - * wiki.pl (handler): Removed mod_perl handling code. - - * modules/big-brother.pl (DoBigBrother): Make sure only unique - targets are listed. - - * wiki.pl ($SummaryDefaultLength): New option as suggested by "ch" - on the wiki, default to 150 instead of hard-coding 100. - (GetSummary): Use it. - - (GetFormStart): No longer support the first parameter, encoding. - Use the default provided by CGI.pm always. Providing an encoding - used to confuse newer versions of CGI.pm, resulting in invalid - XHTML. - (GetSearchForm, DoEdit): Fix call to GetFormStart. - -2005-10-05 Alex Schroeder - - * wiki.pl ($InterSiteInit): Renamed to $InterInit. - ($NearSiteInit): Renamed to NearInit. - - (InitVariables): No longer initialize $InterSiteInit, %InterSite, - $NearSiteInit, %NearSite, %NearSearch, %NearSource, $IndexInit, - $RssInterwikiTranslateInit, %PagePermanentAnchors, - %RssInterwikiTranslate. Instead, call AllPagesList, NearInit, - PermanentAnchorsInit, and move CreateDir before the call to - AllPagesList. - (RSS): Don't test for $RssInterwikiTranslateInit before calling - RssInterwikiTranslateInit. - (RssInterwikiTranslateInit, NearInit): Return if already - initialized. Do the reset of global variables here. - (InterInit, PermanentAnchorsInit): Ditto. - (GetDownloadLink, ResolveId, OpenPage): Don't call AllPagesList. - (GetPageContent): Ditto. - (ResolveId, DoIndex, DeletePermanentAnchors): Don't call - ReadPermanentAnchors. - (ResolveId, GetSisterSites, DoIndex): Don't call NearInit. - (DoSearch, SearchNearPages, $RssInterwikiTranslateInit): Ditto. - (DoShowVersion): Ditto. - (Save): Reset $IndexInit, $NearInit, $InterInit, and - $RssInterwikiTranslateInit. - - ($StyleSheetPage): Default value 'css'. - (@CssList): New. - (DoCss): New. - (%Action): Added css action. - (GetCss): Use the mime-type parameter and separate action if - StyleSheetPage exists instead of inlining. - (DoAdminPage): Add css action. - - (GetHeader): Add logo class to link. - - (ApplyRules): Don't call NearInit. Print $StyleSheetPage and - $ConfigPage in a pre tag. - - Switch to Apache2 and mod_perl2 support! - (handler): Don't call Apache->request($r). Use - Apache2::Const::OK. - -2005-10-02 Alex Schroeder - - * modules/weblog-3.pl (DoCategories): Go to the edit page when - submitting the form. - -2005-10-01 Alex Schroeder - - * wiki.pl (GetHeader): Add logo class to the logo link. - -2005-09-30 Alex Schroeder - - * wiki.pl: Get rid of $DefaultStyleSheet. - (GetCss): Don't use $DefaultStyleSheet; use - http://www.oddmuse.org/oddmuse.css instead. - - (ReportError): Support arbitrary HTML fragments as an explanation. - (DoEdit, DoPost): Use ReportError to report Edit Denied errors. - Don't use the form "Editing Denied". - -2005-09-28 Alex Schroeder - - * wiki.pl (BrowsePage): When the page consists of one clean block - only, $Page{flags} is '0', so testing for it yields false. This - caused pages consisting of a single clean block to not be cached. - At the same time, there should always be flags when $Page{blocks} - is arround, so the test was simply removed. - (Init): Call InitCookie before calling InitVariables. - -2005-09-26 Alex Schroeder - - * wiki.pl (GetSummary): UnquoteHtml. - (GetHttpHeader): Introduced mime-type parameter. - (DoEdit): UnquoteHtml for the summary. - (GetRcHtml): Correctly initialize variables. - -2005-09-25 Alex Schroeder - - * wiki.pl (DoPost): Creating empty pages still results in a 400 - Bad Request error, but saving no changes will result in a 200 Ok. - (%RulesOrder): Initialize correctly. - (ReportError): QuoteHmlt (maybe not necessary?) - (Init): Copy $lib in order to untaint. - (GetParam): HtmlQuote all parameters! <-- major change. - (QuoteHtml, UnquoteHtml): Return immediately if $html is empty. - (BrowseResolvedPage): Test for undefined $class before comparing. - (RcHeader): Initialize $action. - (GetRc): No revision for the lastet revision shown for all=1. - (GetRcHtml): Inizialize $html and $inlist. Also make sure other - variables are set to the empty string instead of being - uninitialized. - (GetRcRss): Remove extra my $username. - (GetParam): Quote HTML after determining the default value. - (QuoteHtml, UnquoteHtml): Do not shortcut. - (DoPost): Unquote text and aftertext parameters. - - * modules/markup.pl (MarkupRule): Fix multiline problem. - -2005-09-24 Alex Schroeder - - * modules/search-freetext.pl (SearchFreeTextTitleAndBody): Added - result list at the bottom of the search. Added p.top and p.bottom - to the result pages p. - - * wiki.pl (DoSearch): Added p.result and p.links for div.search. - - * modules/despam.pl (DespamMenu): Added entry to the - administration page. - -2005-09-18 Alex Schroeder - - * modules/webdav.pl (lock, unlock): Fake them. - (%implemented): List lock. - (options): Use DAV: 1 header. - - * modules/referrer-tracking.pl (RefererTrack): No refererrers - unless there is a page id they belong to. - -2005-09-14 Alex Schroeder - - * modules/toc.pl (TocRule): Try to avoid empty element shorthand - for anchor id when $UseModMarkupInTitles is set. - -2005-09-10 Alex Schroeder - - * modules/markup.pl (MarkupInit): Simplified code by making it - less tight. - (MarkupForcedPairs): Removed. - -2005-09-09 Alex Schroeder - - * modules/weblog-3.pl (NewGetGotoBar): Append $UserGotoBar. - -2005-09-07 Alex Schroeder - - * modules/weblog-3.pl (CategoriesNewOpenPage): Handle extra tag - parameter. - (NewGetGotoBar): Add extra tag parameter where necessary. - (CategoryInit): Use FreeToNormal on menu entries. - -2005-09-05 Alex Schroeder - - * modules/weblog-3.pl (NewGetGotoBar): Link to current page as - well. Don't use pipe as separator. - (GotoBarInit): First link, not last link is what matters. - - * upgrade-files.pl (rewrite): Added my %page. - (read_file): Removed my %page. - - * modules/weblog-3.pl (DoCategories): Use GetEditLink instead of - GetPageLink. - (NewGetGotoBar): Add Categories to GotoBar. - (CategoriesNewOpenPage): Bugfix. - (NewGetGotoBar): Chnange Order. - (CategoriesNewOpenPage): Fix journal regex. - -2005-09-04 Alex Schroeder - - * wiki.pl (InitLinkPatterns): Small change to $InterLinkPattern as - suggested by Markus Lude. - - * modules/toc.pl (TocRule): Revers order of match and InElement - check as suggested by Markus Lude. Without this patch, single - equal signs are eaten when $UseModMarkupInTitles is true. - - * modules/usemod.pl (UsemodRule): Revers order of match and - InElement check as suggested by Markus Lude. Without this patch, - single equal signs are eaten when $UseModMarkupInTitles is true. - -2005-09-02 Alex Schroeder - - * modules/markup.pl (%MarkupForcedPairs): Changed definition for - triple braces. - (@markup_forced_pairs_re): Replaces $markup_forced_pairs_re as - internal variable. - (MarkupForcedPairs): New. - (MarkupInit): Use it to set @markup_forced_pairs_re. - - * wiki.pl (UrlDecode): New. - (InitCookie): Decode cookie. - (PageEtag, Cookie): Encode cookie. - - * modules/static-copy.pl (StaticFileName): Use UrlDecode. - (StaticUrlDecode): Removed. - -2005-08-31 Alex Schroeder - - * info-ref (ShowForm): Add CVS keyword. - - * wiki.pl (InitLinkPatterns): Quote $, %, and @ in - $InterLinkPattern and $FreeInterLinkPattern. - - * info-ref (ShowForm): Added form. - (ShowForm): Fix input. - (Initialize): Don't strip last segment of path. - (Initialize): Report successful completion. - (Initialize): Patches to process old elisp HTML from 2002. - -2005-08-30 Alex Schroeder - - * modules/webdav.pl ($WebDavCache): New option. - (propfind_data): Use cached data if appropriate. - (propfind): Add support for displayname and getetag properties. - Use propfind_data() to cache data. Add etag to the response even - though the RFC says PROPFIND should not be cached. No longer use - libraries for decoding and escaping. - (DavNewOpenPage): Add 'created' property to all pages. - (propfind): Handle UTF-8 correctly because the displayname is not - URL encoded. - -2005-08-29 Alex Schroeder - - * modules/webdav.pl (options): Don't send DAV header, since we're - not even a class 1 server. - (put): Handle image/jpeg files using magic bytes. - (no_content): New. - (put): Add support for image/png. - -2005-08-28 Alex Schroeder - - * modules/webdav.pl (get): Removed cookie code. - - * modules/toc.pl (TocRule): Added rule. Fixed some markup - bugs such that the toc div will now come after the closing of the - portrait div instead of nested within. - (TocHeadings): Protected pos in order to make this sub usable in - TocRule without the pos remembering workaround. - ($TocAutomatic): New option to control whether the table of - contents is inserted automatically. - -2005-08-26 Alex Schroeder - - * wiki.pl (GetRcRss): Allow XSL stylesheets for the RSS feed, too. - -2005-08-25 Alex Schroeder - - * modules/toc.pl (TocRule): Move TOC to just before the first - header. - (NewTocGetHeader): Deleted. - (TocHeadings): No longer take an argument. - -2005-08-23 Alex Schroeder - - * wiki.pl ($RssStyleSheet, GetRcRss): New option, use it. - (GetHtmlHeader, GetCss): Moved CSS determining code out into - separate function. - (TextIsFile): Don't use /m for the match (an uploaded file MUST - start with #FILE and the MIME type). - (GetRcRss): Allow multiple licenses using an array ref for - $RssLicense. - (TextIsFile): Fix bug. - - * modules/markup.pl (MarkupForcedPairs): New. - (MarkupRule, MarkupInit): Handle new option. - (MarkupRule): Fix %MarkupLines handling. - - * wiki.pl (DoHistory): Use GET instead of POST for history links. - (GetFormStart): Fix class for forms. - (GetKeptDiff): Handle identical revisions. - -2005-08-22 Alex Schroeder - - * modules/usemod.pl (ISBN): Small fix declaring $len. - -2005-08-07 Alex Schroeder - - * modules/edit-cluster.pl (GetRc): Handle ordinary changes. - (EditClusterNewRcHeader): Display checkbox for ordinary changes. - (GetRc): Exclude clustered changes if no parameter is given. - (EditClusterNewRcHeader): Bugfix. - -2005-07-29 Alex Schroeder - - * wiki.pl (EncodePage): Don't modify the data in place; make a - copy first. - -2005-07-27 Alex Schroeder - - * modules/big-brother.pl ($US): New separator variable. - ($VisitorTime): Moved here from the main script. - (BigBrotherVisitors): New sub to create the appropriate admin menu - item in @MyAdminCode. - (AddRecentVisitor): Store both pagename and url in the log. - (DoBigBrother): Extrac both pagename and url from the log. - -2005-07-26 Alex Schroeder - - * wiki.pl (RcHeader, GetFilterForm, GetRc): Add page title filter - using the match parameter. Make the form GET instead of POST. - - (DoIndex): Changed pattern parameter to match, so that - it matches the parameter used in the calendar extension. - ($Visitors, $VisitorTime): Removed. - (%Action): Removed visitors action. - (DoAdminPage): Removed recent visitors item. - (DoSurgeProtection, WriteRecentVisitors): Simplified: No longer - take $Visitors into account. - (DoShowVisitors): Removed. - - (RSS, GetRcHtml): Replaced – with – for XML conformance. - (PageHtml): Accept size limit and error message; return error - message instead of HTML if the raw text of the page is too big. - (GetRcRss): Pass a limit and a message to PageHtml. - -2005-07-25 Alex Schroeder - - * wiki.pl (DoUnlock): Don't cache. - (DoIndex): Add pattern parameter. - (DoIndex): Added pattern form. - -2005-07-24 Alex Schroeder - - * modules/big-brother.pl (IsDownload): Removed. - (DelayRequired): Fix array reference. - (WriteRecentVisitors): Fix truncation. - (DoBigBrother): Don't show names with dots in them -- ie. IP - numbers and host names. - (DoBigBrother): Reverse sort order. - -2005-07-22 Alex Schroeder - - * wiki.pl (PageFresh, FileFresh): New, use entity tags instead of - if-modified-since. - (PageEtag): New, produce entity tag based on LastUpdate and CookieData. - (DoDownload): Use FileFresh. - (BrowsePage): Cache using code moved to DoBrowseRequest. - (DoBrowseRequest): Use PageFresh and return cashed pages for all - actions if possible. - (GetHttpHeader): Generate entity tag (ETag) for caching instead of - last-modified header. - (CookieData): New, used by PageEtag. - (Cookie): Moved some code to CookieData. - - (GetHeader): Pass the third parameter on to GetGttpHeader. - (ReportError): Make clear that we don't want to cache this - response in our call to GetHeader using the third parameter in the - call to GetHeader. - (DoHistory): Refactoring; remove third parameter in call to - GetHeader since it was always the empty string. - (DoRollback, DoAdminPage): Ditto. - (DoUnlock, DoEdit, DoPassword, DoIndex, DoSearch): Ditto. - (DoSearch, DoPrintAllPages, DoMaintain, DoEditLock): Ditto. - (DoPageLock, DoShowVersion, DoShowVisitors): Ditto. - - * modules/usemod.pl (ISBN): Changed B&N ISBN search URL. - - * wiki.pl (@MyMaintenance): New option. - (DoMaintain): Call each sub on @MyMaintenance. - -2005-07-21 Alex Schroeder - - * wiki.pl (GetRcRss): A test for $limit eq 'all' got lost in the - transition to RSS 2.0 so I added it back. - ($DefaultStyleSheet): Add div.search. - (ApplyRules): Add new rule for - -2005-07-20 Alex Schroeder - - * modules/journal-rss.pl (DoJournalRss): Switch MIME type to - application/xml now that we produce RSS 2.0. - -2005-07-19 Alex Schroeder - - * wiki.pl (GetRcRss): Fixed some URL encoding issues. - - * modules/tags.pl (TagsRule): Remove Clean() call around returned - text. - -2005-07-17 Alex Schroeder - - See http://www.emacswiki.org/cw-de/WikiModule. - - * wiki.pl (RSS): Accept RSS 2.0 wiki module authorship. - (GetRcRss): Use RSS 2.0 with wiki module code. - (DoRss): Changed MIME type to application/xml because we're no - longer using RDF. - (TimeToRFC822): New sub using the POSIX module (which comes - bundled with Perl). - ($RssContributor, $RssPublisher): Removed as they make little - sense on a wiki. - ($RssImageUrl): Default to $LogoUrl. - -2005-07-15 Alex Schroeder - - * wiki.pl (DoDownload): Fix download caching. - - * modules/usemod.pl (ISBN): ISBN numbers can be 10-14 digits, in - preparation of 2007-01-01 and beyond. - http://www.isbn-international.org/en/download/implementation-guidelines-04.pdf - -2005-07-14 Alex Schroeder - - * wiki.pl (ScriptLink): Use $UrlProtocols for check for URLs. - - * modules/dynamic-comments.pl (DynamicCommentsNewGetPageLink): - Make sure p and div elements are correctly nested. - - * wiki.pl (ScriptLink): Not only url-encoded "http:" starts a - valid URL; any combo of letters followed by a colon (protocol) or - any string starting with a slash (relative path) are treated as - URL. This assumes no colons and slashes in page names. - -2005-07-13 Alex Schroeder - - * modules/dynamic-comments.pl (DynamicCommentsNewGetPageLink): - Offer direct link if no comments exist. - -2005-07-11 Alex Schroeder - - * wiki.pl (GetTextArea): Add id to textarea. - ($RssDir, $RssCacheHours): New options. - (RSS): Use GetRss. - (GetRss, GetRssFile): New. - (DoMaintain): Clean files in $RssDir. - -2005-07-07 Alex Schroeder - - * modules/fckeditor.pl (WysiwygScript): Change $FCKeditorRows to - $FCKeditorHeight. - -2005-07-06 Alex Schroeder - - * modules/fckeditor.pl (WysiwygScript): Use an option for the - height. - (WysiwygRule): Don't allow script tags. - -2005-07-04 Alex Schroeder - - * wiki.pl (GetHtmlHeader): Don't allow double quotes in the css - parameter because it allows javascript injection as described by - Pierre Gaston -- he added "> - - * wiki.pl (TimeToW3): Bugfix. - -2005-06-29 Alex Schroeder - - * modules/commentcount.pl (NewCommentcountScriptLink): Undo - urlencode for the first parameter when using it to get the page - content. - - * modules/namespaces.pl (NamespaceRcLines): Fix handling of - cluster and other attributes. - -2005-06-22 Alex Schroeder - - * wiki.pl (GetPageOrEditLink): No longer handle near links - specially. - (ScriptLink): Handle resolved URLs specially, eg. from near links. - (PrintSearchResultEntry): Just pass it on to ScriptLink. Don't - test $action for %2f -- I wonder what this was supposed to do? - -2005-06-21 Alex Schroeder - - * wiki.pl (Init): Maintain %MyInc separate from %INC for mod_perl - compatibility. - (%MyInc): New variable. - -2005-06-15 Alex Schroeder - - * wiki.pl ($SummaryHours): New option. - (DoEdit): Use it. - -2005-06-12 Alex Schroeder - - * modules/sitemap.pl: New file. - -2005-06-02 Alex Schroeder - - * modules/namespaces.pl (NamespaceRcLines): Remove trailing - newline when reading rc.log file. This removes an incompatibility - between the module and page clusters (otherwise all pages end up - in the "\n" cluster). - - * wiki.pl (DoPost): Don't create empty pages. - -2005-05-18 Alex Schroeder - - * wiki.pl (DeletePage): Delete page-lock file, too. - (DoEditLock, DoPageLock): Saved a line in each by removing the my - declaration at the very beginning. - -2005-05-08 Alex Schroeder - - * wiki.pl (ScriptLink): Add another parameter to generate - rel="nofollow" links. - (RcHeader): Use nofollow links because RecentChanges is FOLLOW by - default. This might help cut bandwidth. - - * modules/search-freetext.pl (SearchFreeTextMenu): New, added to - @MyAdminCode. - (SearchFreeTextIndex): Catch error if module is missing. - ($SearchFreeTextNum, $SearchFreeTextMax): Reintroduced these - variables, but not as options (not configurable). - (SearchFreeTextTitleAndBody): Add paging. - (SearchFreeTextIndex): Don't allow to rebuild the index more than - once every 12h. - -2005-05-06 Alex Schroeder - - * wiki.pl (GetSummary): For new pages, use the beginning of the - text if no summary was provided. - (GetFooterTimestamp): Default to diff=2 in the footer, since that - matches author name and timestamp visible. - -2005-05-01 Alex Schroeder - - * wiki.pl (GetCommentForm): Don't provide summary in the form. - (DoPost): Get summary from GetSummary. - (GetSummary): New function that takes a substring from aftertext - if available. - - * modules/sidebar.pl (NewSideBarGetHeader): Set $OpenPageName to - $SidebarName while rendering the sidebar. This should enable the - form extension on the sidebar. - - * wiki.pl (DoEdit): Use $KeepDays instead of 24h for "summary - expiration". - ($SummaryLines): Remove option again and replace with hard-coded - two lines. - -2005-04-30 Alex Schroeder - - Implementation of DigestedChanges, as inspired by discussion on - Meatball. - - * wiki.pl ($SummaryLines): New option. - (DoEdit): If the last edit was less than 24h ago, use its summary - as the default. - (GetTextArea): Optional parameter for the number of rows added. - Default is still 25. - -2005-04-29 Ingo Belka - - * modules/headlines.pl (HeadlinesRule): Accept optional number of - headlines. - (HeadlinesPrint): Use dl instead of span+br to print the list. - -2005-04-26 Alex Schroeder - - * modules/namespaces.pl (NewNamespaceDoRc): Added header back. - Correcly sort lines. - (NamespaceRcLines): Split into all fields and add namespace to - username, too. - (NamespaceValidId): New dummy to disable the test. - (NewNamespaceDoRc): Add parameter local to restrict main RC to the - local namespace only. Fixed bug in condition that led to the - printing of an HTML fragment when requesting RSS. - - * wiki.pl (ApplyRules): Removed the final oldpos hack required - because now $bol no longer uses regexp matching. - -2005-04-25 Alex Schroeder - - * modules/namespaces.pl (NewNamespaceDoRc): Expanded a lot, now - parsing all the log files recursively instead of doing the RSS - thing. - (NamespaceBrowseRc, NamespaceInternalRc): Deleted. - (NamespaceRcLines): New. Splices namespace into the rc lines. - (NewNamespaceScriptLink): New. Splices namespace out of the link - into the script name. - -2005-04-24 Alex Schroeder - - * modules/moin.pl (MoinRule): Added alternative whiespace - handling, numbered lists, and indented text. - -2005-04-23 Alex Schroeder - - * wiki.pl (PageDeletable): Delete empty pages, too. - (ApplyRules): Changed the way $bol is computed to a substring - comparison instead of a regular expression match. - - * modules/moin.pl (MoinRule): Fix moin list rule. - -2005-04-16 Alex Schroeder - - * modules/tags.pl: New. - - * modules/tables-long.pl (TablesLongRule): Fix bug that prevented - second table from not showing up if its labels were different. - Also fix bug with empty p element. Also fix bug with unnecessary - colspan="2" in the last column. - -2005-04-15 Alex Schroeder - - * modules/tables-long.pl (TablesLongRule): Handle newlines - correctly: avoid duplicating them. - (TablesLongRow): Get the label-count right, avoid colspan=2 for - the last column. - -2005-04-13 Alex Schroeder - - * Makefile (fix): New convenience target. - - * wiki.pl (LinkRules): Make sure named entities such as < > and & - are handled correctly at the end of an URL. - (TimeToW3): New. - (GetRcText): Use TimeToW3 instead of CalcDay. - (GetRcRss): Use TimeToW3 instead of doing it manually. - (ExpireKeepFiles): Handle lastmajor like oldmajor. - (DoShowVersion): Report mod_perl. - -2005-04-11 Flavio Poletti - - * wiki.pl (ApplyRules, GetDiff, DoEdit, DoDownload) - (SearchTitleAndBody, PrintSearchResult, Save): Concentrated #FILE - tests all over the script inside new function TextIsFile. - (TextIsFile): New. - - -2005-04-06 Alex Schroeder - - * wiki.pl (GetKeptDiff): Use GetTextRevision instead of - duplicating code. - (Save): Fix handling of oldmajor by introducing a new key, - lastmajor. - (UpdateDiffs): Changed argument list, changed to also handle new - oldmajor. - -2005-04-05 Alex Schroeder - - * wiki.pl (Save): Fix handling of oldmajor. - -2005-04-03 Alex Schroeder - - * wiki.pl (GetCurrentRequest): Deleted. - (GetCurrentPageName): Deleted. - (GetId): New, returns the id as set in the request, like - GetCurrentRequest used to do, but don't return a "dirty_id" and - "error". Split info_path and set all parameters with these names - to 1. This is more generic than specialcasing "raw". - (DoBrowseRequest): Call GetId. - -2005-03-31 Alex Schroeder - - * modules/anchors.pl (AnchorsRule): Allow [[#foo|bar]] as - suggested by Manni. - -2005-03-28 Alex Schroeder - - * modules/crumbs.pl (CrumbsRule): Independent of GetCluster and - therefore no longer requires $PageCluster to be set. Call - FreeToNormal on all clusters. - -2005-03-27 Alex Schroeder - - * wiki.pl (RSS): Use LWP::Parallel::UserAgent if available. - -2005-03-25 Flavio Poletti - - * wiki.pl (DoDiff): New function with code from GetDiff. This is - the place where diff is actually called. - (GetDiff): Moved functionality to DoDiff. Call it. - (DiffMarkWords): Call DoDiff. - (DoShowVersion): Only print diff info if $UseDiff == 1; this - allows modules overriding DoDiff to set UseDiff to higher values - and void invocation of programs while still setting DoDiff to a - true value. - - * wiki.pl (DoBrowseRequest): Move functionality to determine page - id to GetCurrentRequest. - (GetCurrentRequest, GetCurrentPageName): New sub. - -2005-03-24 Alex Schroeder - - * modules/namespaces.pl (NamespacesInitVariables): Set - $InterWikiMoniker. - -2005-03-18 Alex Schroeder - - * wiki.pl: Removed the global $first variable, since it made no - sense when ApplyRules was called for cached HTML fragments. - (ApplyRules): Removed $first, moved link rules to new sub, call - RunMyRules with $locallinks, $withanchors parameters. - (LinkRules): Moved all link rules to new sub. - (@MyRules): Initialize with LinkRules. - (RunMyRules): Call the various rules with $locallinks and - $withanchors parameters. - -2005-03-16 Flavio Poletti - - * wiki.pl (PrintHtmlDiff): Use $old_is_image instead of - $old_is_file when calling GetDownloadLink. - -2005-03-12 Alex Schroeder - - * wiki.pl (DoPageLock): Add link back to the page. - -2005-03-08 Sebastian Blatt - - * modules/static-copy.pl (StaticWriteFile): added "chmod 0644" to - uploaded static images. - -2005-03-06 Alex Schroeder - - * wiki.pl (ApplyRules): Removed debug warnings that got checked - in... - -2005-03-01 Sebastian Blatt - - * modules/image.pl (ImageGetInternalUrl): Modified to support - overriding of relevant parts from within Static Copy Extension. - - * modules/static-copy.pl (ImageGetInternalUrl): Added Image - Extension support. - -2005-02-03 Alex Schroeder - - * wikicopy: Updated usage. - (GetRaw): Always print status. - (copy): Handle replacement text. - (main): Accept replacement text. - -2005-02-02 Alex Schroeder - - * wiki.pl (DoBrowseRequest): Added CGI error message suggested by - Tim Jenness. - -2005-02-02 Alex Schroeder - - * wikicopy (GetRaw): Warning if GET fails. - (PostRaw): Print status code when POST fails. - (copy): Don't encode id when posting. - - * wiki.pl (BrowsePage): Report 404 for non-existing pages even - when using raw=1. - -2005-02-01 Alex Schroeder - - * wiki.pl (ApplyRules): Fix typo found by Flavio Poletti. - -2005-01-26 Johan Adler - - * modules/translations/swedish-utf8.pl (translation): Corrected - typo in Swedish translation. - -2005-01-25 Alex Schroeder - - * modules/live-templates.pl (LiveTemplateRule): Quote HTML before - passing it to ApplyRules. - -2005-01-24 Alex Schroeder - - * wiki.pl (CreateDir): Add error if mkdir fails. - -2005-01-24 Alex Schroeder - - * modules/admin.pl (AdminPowerRename): Add more tests because - ReportError will remove locks before exiting, unlink index file at - the beginning. - -2005-01-20 Alex Schroeder - - * modules/search-freetext.pl (SearchFreeTextTitleAndBody): Handle - double-quoted phrases. - (SearchFreeTextNewHighlightRegex): Strip double-quotes from terms - before highlighting. - -2005-01-20 Tilmann Holst - - * wiki.pl (ReportError): Added missing "start_html" - -2005-01-19 Alex Schroeder - - * wiki.pl (RSS): Fix rfc 822 date parsing regular expression. - -2005-01-10 Alex Schroeder - - * localnames-server.pl: New. - (debug): New. - (html): Use CSS to layout. - -2005-01-08 Alex Schroeder - - * wiki.pl (handler): Added no strict "refs" pragma after a report - by Ross Thomas. - -2005-01-07 Alex Schroeder - - * wikicopy (GetRaw, PostRaw): Simplified LWP::UserAgent call. - (copy): Get encoding right, test for data. - - * wiki.pl (handler): Typo: Use my. - -2005-01-07 Alex Schroeder - - * changelog-to-rss (output): Add span.chunk around chunks. - - * wiki.pl (handler): Set all sort of variables from environment - variables. - - * modules/referrer-tracking.pl: Moved from wiki.pl. - (RefererNewPrintFooter): Removed $RefererTracking. - - * changelog-to-rss (output): Handle parentheses on their own. - - * wiki.pl: Moved referrer tracking into a module. Removed - appropriate values from several variables. - (InitVariables, BrowsePage): Related changes. - (DoAdminPage, DoMaintain, DeletePage): Ditto. - (GetRefererFile, ReadReferers, ExpireReferers, GetReferers) - (UpdateReferers, WriteReferers, RefererTrack) - (DoPrintAllReferers, PrintAllReferers): Removed. - - * modules/page-type.pl (PageTypeInit): Test @AdminPages before - pushing something onto the list because of mod_perl. - - * modules/localnames.pl (LocalNamesInit): Test @AdminPages before - pushing something onto the list because of mod_perl. - - * wiki.pl: mod_perl stuff, suggested by Ross Thomas. - (InitDirConfig): New, set all directories here. - (Init): Call it. - (handler): New. - -2005-01-06 Alex Schroeder - - * modules/calendar.pl: Improve $DefaultStyleSheet. - (CalendarRule): Return new open p tag instead of using Clean. - - * test.pl: Updated calendar.pl tests. - - * modules/calendar.pl (CalendarRule): Use Clean instead of print - for the p element that opens after the dirty blocks. - - * changelog-to-rss: Fix regular expression for filenames. - (output): Strip leading br. - (output): Only (foo) followed directly by ':' deserves a newline. - (to_date): Days start at 1, not 0. - - * wiki.pl (ApplyRules): Use Clean instead of print for the p - element that opens after include, rss, and journal tags. - (RSS): Use div instead of strong for descriptions containing HTML. - - * changelog-to-rss (output): Remove leading tabs from log entries. - (output): Highlight parentheses. - -2005-01-06 Alex Schroeder - - * wiki.pl (GetHttpHeader): Added handling of HEAD requests. - -2005-01-05 Alex Schroeder - - * wiki.pl (RSS, GetRcHtml): Use ndash to separate summary from the - rest of the item. The dash is in a new span. - - * changelog-to-rss (quote_html): New. - (output): Use it. - (to_date): Fix RFC 822 format. - Use the right MIME type. - (output): Use link pattern, conditionalize all elements. - - * wiki.pl (RSS): Take dash out of the strong element with the description. - - * changelog-to-rss.pl: New. - - * wiki.pl (@MyAdminCode): New option. - (@AdminBlocks): Removed option. - (DoAdminPage): Rewritten to take advantage of the new @MyAdminCode. - - * modules/admin.pl (AdminPowerDelete): Fix log message, unlink - $IndexFile. - (AdminPowerRename): Call FreeToNormal on both parameters, don't - test the new filename using ValidIdOrDie. - (NewAdminPowerGetAdminBar): Deleted. - (AdminPower): New, using @MyAdminCode. - -2005-01-04 Alex Schroeder - - * modules/localnames.pl (LocalNamesInit): Add $SidebarName to - @AdminPages. - - * modules/weblog-2.pl: Use @MyInitVariables. - - * modules/weblog-1.pl: Use @MyInitVariables. - - * modules/smiley-dir.pl: Use @MyInitVariables. - - * modules/namespaces.pl: Use @MyInitVariables. - - * test.pl (clear_pages): Removed references to - OldUsemodInitVariables. - - * modules/usemod.pl: Use @MyInitVariables. - - * modules/markup.pl: Use @MyInitVariables. - - * modules/sidebar.pl: Add $SidebarName to @AdminPages. - - * wiki.pl (@AdminPages, @AdminBlocks): New options. - (%Action): Register admin action. - (InitVariables): Set @AdminPages. - (DoAdminPage): New. - (PrintFooter): No longer print admin bar. - (GetAdminBar): Deleted. - (GetFooterLinks): Link to admin page. - (DoIndex): Add menu for the various parameters. - (DoEditLock, DoPageLock): Touch index file (invalidate the cache). - (DoAdminPage): Use edit links for non-existing important pages. - (DoAdminPage): Add more actions. - (DoUnlock, DoMaintain): Changed title. - (DoAdminPage): Treat space. - (@MyInitVariables): New option. - (InitVariables): Use it. - (DoAdminPage): Bugfix. - (GetFooterLinks): Add class. - -2005-01-02 Alex Schroeder - - * wiki.pl (InitLinkPatterns): Remove "" delimiter from - $FreeLinkPattern and $FreeInterLinkPattern. - (ApplyRules): Unquote URLs in include and rss rules. - - * modules/tables-long.pl (TablesLongRule): Allow multiple CSS - directives. - -2005-01-01 Alex Schroeder - - * modules/tables-long.pl (TablesLongRule, TablesLongRow): Added - CSS and table headers. - ($DefaultStyleSheet): Added some simple text-align, font-weight, - and mark stuff. - (TablesLongRow): Close th elements. - (TablesLongRow): Close environments at the end of a cell. - -2004-12-29 Alex Schroeder - - * modules/static-copy.pl (StaticWriteFile): Add support for html=0 - parameter. - -2004-12-27 Alex Schroeder - - * modules/search-freetext.pl (SearchFreeTextIndex): Take HTML tags - out of the text. - -2004-12-27 Alex Schroeder - - * wiki.pl (RSS): Add RFC 822 Parsing for RSS 2.0. - (DoDownload): Fix regexp for #FILE. - (DoShowVisitors, DoPrintAllReferers): Add content div. - -2004-12-26 Alex Schroeder - - * modules/markup.pl (MarkupRule): More checks to prevent bugs when - one of the hashes is empty. - - * modules/static-copy.pl (StaticFileName, StaticWriteFile): Regexp fix. - (StaticFilesNewDoPost, StaticNewDeletePage, StaticDeleteFile): New. - ($StaticUrl): New. - (StaticDeleteFile): New. - (GetDownloadLink): New, override the one from wiki.pl. - (GetDownloadLink): Use StaticFileName. - -2004-12-25 Alex Schroeder - - * test.pl: Calendar tests. - - * modules/search-freetext.pl (SearchFreeTextNewDoSearch): Added - $SearchFreeTextNewForm back. - -2004-12-25 Alex Schroeder - - * modules/search-freetext.pl (SearchFreeTextIndex): Bugfix. - (SearchFreeTextNewDoSearch): Call old DoSearch, but maybe locally - bind SearchTitleAndBody and HighlightRegex. - (SearchFreeTextTitleAndBody): SearchTitleAndBody replacement. - (SearchFreeTextNewHighlightRegex): HighlightRegex replacement. - - Eventually, a lot of stuff was deleted: - ($Action{search}): No longer define the search action. - (SearchFreeTextNewForm): Deleted. - (SearchFreeTextNewGetSearchLink): Replacement for GetSearchLink. - (SearchFreeTextNewGetSearchLink): Deleted. - (SearchFreeText): No longer take $SearchFreeTextNum and - $SearchFreeTextMax into accout. Instead, hook into the existing - search facilities by redefining SearchTitleAndBody and calling - DoSearch. - (SearchFreeText): Deleted. - -2004-12-22 Alex Schroeder - - * wiki.pl (DoPost): Only determine new authors if there is an old - revision that is being changed. - -2004-12-21 Alex Schroeder - - * modules/search-freetext.pl (SearchFreeTextIndex): The page title - should be part of the document. - - * modules/namespaces.pl ($NamespacesSelf): New variable. - (NewNamespacesInitVariables): Set it. - (NewNamespacesInitVariables): Make "Self" forbidden, too. - -2004-12-20 Alex Schroeder - - * modules/namespaces.pl (NamespaceInternalRc): "No items foundin - foo" removed. - - * modules/calendar.pl (DoCollect): Use content class. - (CalendarRule): Print calendar in a div. - (PrintYearCalendar): Don't print div here. - (DoYearCalendar): Print div here. - - * modules/namespaces.pl (NewNamespacesInitVariables): Set - $NamespaceCurrent; don't change $Action{rc}. - (NewNamespacesInitVariables): Don't print header and footer. - (NewNamespaceDoRc): New replacement for DoRc. - -2004-12-20 Alex Schroeder - - * modules/namespaces.pl (NamespaceBrowseRc, NamespaceInternalRc, - NewNamespacesInitVariables): Support for recent changes for all - namespaces. - -2004-12-19 Alex Schroeder - - * wiki.pl (Save): Moved automatic lock creation back to after the - SavePage call in order to make sure the directory exists. - (ApplyRules): Locally set $OpenPageName when including local - pages. - - * modules/calendar.pl (CalendarRule, PrintYearCalendar): Close - HTML environments before printing and open new p after printing. - - * wiki.pl (PrintPageHtml, BrowsePage): Don't print cache if using - $UseCache=-1. - (PrintHtmlDiff): Take cache=0 and cache=-1 into account when - serving diffs. - (DiffMarkWords): Append trailing newlines. - (InitVariables): Removed handling of $HtmlHeaders. - (GetHtmlHeader): Add site RSS and page RSS if $HtmlHeaders is not - set. - -2004-12-18 Alex Schroeder - - * Makefile (upload-translations): Fix bug. - - * modules/search-freetext.pl (SearchFreeTextNewForm): Only use new - form if $SearchFreeTextNewForm is set. - ($SearchFreeTextNewForm): New option. - - * wiki.pl (PrintFooter): Changed 'time' parameter to 'timing' to - avoid collision with Timezone Extension. - -2004-12-16 Alex Schroeder - - * wiki.pl (AddComment): Prefix http:// if necessary. - (Save): Moved some variable settings up. - -2004-12-15 Alex Schroeder - - * modules/search-freetext.pl (SearchFreeText): Added much improved - user interface. - -2004-12-14 Alex Schroeder - - * wiki.pl (Save): Handle existing index file that cannot be - unlinked. - -2004-12-12 Alex Schroeder - - * wikiput (wikiput): Better error reporting. - - * wiki.pl (ApplyRules): Fix bug that prevented pages containing a - file from displaying correctly. - -2004-12-10 Alex Schroeder - - * modules/search-freetext.pl (SearchFreeText): New form. - -2004-12-05 Alex Schroeder - - * wiki.pl (InitVariables): Use the link to the RSS feed as the - default for $HtmlHeaders. - (GetHtmlHeader): Don't add RSS feed. It should be part of - $HtmlHeaders. - (Clean, Dirty, ApplyRules): Print clean blocks in Dirty() instead - of Clean(). Remove empty p elements. - (ApplyRules): Exchanged order of print and Dirty for one of the - rules. - - * modules/usemod.pl (UsemodRule): Used /o for one of the rules. - Fixed a bug that added paragraphs in titles if - $UseModMarkupInTitles was set. - - * Makefile (test): Changed test script to test.pl. - - * modules/setext.pl (SeTextRule): Fix bug with h3 headers. - - * modules/usemod.pl (UsemodRule): AddHtmlEnvironment('p') - - * modules/toc.pl (TocRule): AddHtmlEnvironment('p') - - * modules/tables.pl (TablesRule): AddHtmlEnvironment('p') - - * modules/setext.pl (SeTextRule): AddHtmlEnvironment('p') - - * modules/portrait-support.pl (PortraitSupportRule): AddHtmlEnvironment('p') - - * modules/partial-journal.pl (PartialCutRule): AddHtmlEnvironment('p') - - * modules/live-templates.pl (LiveTemplateRule): AddHtmlEnvironment('p') - - * modules/headlines.pl (HeadlinesRule): AddHtmlEnvironment('p') - - * modules/headers.pl (HeadersRule): AddHtmlEnvironment('p') - - * modules/forms.pl (FormsRule): AddHtmlEnvironment('p') - - * modules/compilation.pl (CompilationRule): AddHtmlEnvironment('p') - - * modules/beautify.pl (BeautificationRule): AddHtmlEnvironment('p') - - * wiki.pl (ApplyRules): Add print AddHtmlEnvironment('p') in - various places where CloseHtmlEnvironments() is called -- after - includes, journals, rss feeds, and conflicts. - -2004-12-03 Alex Schroeder - - * modules/usemod.pl (UsemodRule): Fix hr handling. - - * modules/headers.pl (HeadersRule): Fix hr handling. - - * modules/usemod.pl (UsemodRule): Reset $PortraitSupportColor - after headers and hr. - - * modules/toc.pl (TocRule): Reset $PortraitSupportColor after - headers. - - * modules/portrait-support.pl ($MyColor, $PortraitSupportColor): - $PortraitSupportColor replaces $MyColor. - (PortraitSupportRule): Reset color after hr, handle closing div, - use $PortraitSupportColor. - - * modules/headers.pl (HeadersRule): Reset $PortraitSupportColor - after the header. - - * modules/commentcount.pl (NewCommentcountAddComment): Handle - comments and comment. - (NewCommentcountScriptLink): Adapt to changes in edit bar. Add - code for configurable plural handling (if num == 1). - - * Makefile (*-utf8.pl): Interface with CVS and wiki. - -2004-11-30 Alex Schroeder - - * wiki.pl (PrintWikiToHTML): Fix typo. - -2004-11-28 Alex Schroeder - - * wikiput (main): Add force option. Disallow posting of empty - pages unless set. - (usage): Document it. - - * wiki.pl (PrintWikiToHTML): Don't save revision 0 files. These - can appear if showing the full RSS for deleted pages. - -2004-11-27 Alex Schroeder - - * modules/irc.pl ($IrcRegexp): Renamed to $IrcNickRegexp. - (IrcRule): Fixed output, defined default CSS. - - * modules/setext.pl (SeTextRule): Applied changes from headers.pl. - - * modules/usemod.pl (UsemodRule): Added PortraitSupportColorDiv support. - - * modules/toc.pl (TocRule): Added PortraitSupportColorDiv support. - - * modules/headers.pl (HeadersRule): Set $PortraitSupportColorDiv = 0. - - * modules/portrait-support.pl ($MyColorDiv): Renamed to - $PortraitSupportColorDiv. - - * modules/headers.pl (HeadersRule): Added PortraitSupportColorDiv - support. - - * modules/portrait-support.pl ($MyColorDiv): Export variable. - (PortraitSupportRule): Removed handling for headings. This should - be handled by all the other packages that do headings (toc, - portrait-support, markup). - - * wiki.pl (ReportError): Use $q->Dump. - -2004-11-27 Alex Schroeder - - * modules/toc.pl ($TocCounter): New variable. - (TocRule): Use it to provide an ID to the toc entry. - (TocWikiHeading): Deleted. - (TocHeadings): Use ID instead of encoded text. - - * wiki.pl (GetTextAtTime): Check whether all changes from now to - then are minor or not. Use GetKeepRevisions. - (DoRollback): Save rollbacks as minor or major changes using this - info. - (DoPost): Take change in GetTextAtTime into account, but do - nothing with the new info. - (GetKeepRevisions): New. - (DoHistory, ExpireKeepFiles): Use GetKeepRevisions. - -2004-11-26 Alex Schroeder - - * modules/despam.pl (DespamPages): Only check files mentioned in - rc.log. - (DoDespam): Added list parameter. - (DespamPages): Added days parameter. - (DespamPage): Added debug parameter. - -2004-11-25 Alex Schroeder - - * modules/toc.pl (TocHeadings, TocWikiHeading): Use FreeToNormal - on the anchor name. - (TocWikiHeading): Don't UrlEncode the anchor name. - - * wiki.pl (DoShowVersion): Link to dependencies=1 and links=1. - -2004-11-23 Alex Schroeder - - * modules/html-template.pl (HtmlTemplateRc): Added wrapper - function so that action=rc works. - -2004-11-23 Alex Schroeder - - * modules/html-template.pl: New package prototype. Browsing and - editing works. - - * wiki.pl (GetFooterLinks): Move the "Back to %s" link to the - front of the bar. Put the entire text into the link. Change - "Comments on this page" to "Comments on %s". - -2004-11-20 Alex Schroeder - - * modules/commentcount.pl (NewCommentcountAddComment) - (NewCommentcountScriptLink): Use \d+ as suggested by Fletcher - Penney. - (NewCommentcountScriptLink): Handle access key as suggested by - Fletcher Penney. - -2004-11-15 Alex Schroeder - - * wiki.pl (GetAdminBar, GetFooterLinks, GetGotoBar): Add bar - class. - (BrowsePage): Remove extra end_div(). - (DoIndex): Add extra end_div(). - (GetReferers): Put hr() from RefererTrack inside the div(). - (RefererTrack): Remove the hr() here and move it to GetReferers. - (BrowsePage): Removed content class from the rc div. - - * modules/weblog-1.pl (NewWeblog1InitVariables): Removed vertical - bar. - - * modules/link-all.pl (NewLinkAllGetGotoBar): Removed vertical - bar. - - * wiki.pl (PrintJournal, BrowsePage, GetHeader, PrintFooter, - PrintAllPages): Use start_div() and end_div() instead of strings. - (DoHistory, DoRollback, DoEdit, DoPassword, DoIndex, DoSearch, - DoMaintain, DoShowVersion): Use div. - (GetGotoBar): Added $UserGotoBar back. - -2004-11-14 Alex Schroeder - - * wiki.pl (RcHeader): Removed vertical bars. - (PrintFooter): Classes are added in the respective subroutines. - (GetNearLinksUsed, GetFooterTimestamp): Don't join the result of a - map operation; instead pass it as a list to the CGI module. - (GetAdminBar): Removed vertical bars. - (GetFooterLinks, GetGotoBar, DoaboutSearch): Removed vertical bars. - -2004-11-12 Alex Schroeder - - * wiki.pl (GetFormStart): Fix syntax error. (?) - (GetKeptDiff): Pass old revision to GetDiff. - (GetDiff): Handle situation where old or new revision is a file. - -2004-11-11 Alex Schroeder - - * wiki.pl (ReportError): Add a third parameter to request logging - of the error. - (SavePage): Request logging when trying to save bogus pages. - (PrintWikiToHTML): Only save the page if the cache actually - changes. - (GetFormStart, DoHistory, GetCommentForm, GetFilterForm) - (GetSearchForm, DoEdit, DoPassword): Add form class. - -2004-11-01 Alex Schroeder - - * wiki.pl: Use q{...} instead of here-documents in some places. - (%CookieParameters): Add homepage parameter. - (GetCommentForm): Add homepage input field. - (AddComment): Take homepage parameter into account. - (ApplyRules): Add rule for merge conflicts. - (DoPost): Don't put pre tags around merge conflicts. - -2004-10-31 Alex Schroeder - - * modules/toc.pl (TocRule): Call TocWikiHeading instead of - WikiHeading. - (TocHeadings): If the first subtitle is a H1, assume that this is - the "start". - -2004-10-31 Alex Schroeder - - * wiki.pl (ApplyRules): Save pos when determining $bol to fix a - bug. - (SmileyReplace): Simplified. - -2004-10-28 Alex Schroeder - - * modules/despam.pl: New. - -2004-10-26 Alex Schroeder - - * wiki.pl (DoSearch): Accesskey 'f'. - -2004-10-23 Alex Schroeder - - * modules/compilation.pl (PrintCompilation): Return the pages printed. - (DoCompilation): Print how many pages got printed. - -2004-10-22 Alex Schroeder - - * wiki.pl (PageDeletable): Never delete pages if $KeepDays is set - to 0. - -2004-10-20 Alex Schroeder - - * modules/headers.pl (HeadersRule): Relax requirements for headers - -- just require === or --- at the beginning of a line. - -2004-10-19 Alex Schroeder - - * wiki.pl (GetDownloadLink): Change look of download link if the - page does not exist. - -2004-10-17 Alex Schroeder - - * wiki.pl (ApplyRules): Require space after * all list items, not - just the first. - (GetRaw): Simplify. - (PrintAllPages): Page titles with spaces. - - * modules/usemod.pl ($UseModMarkupInTitles): New option. - (UsemodRule): Use it. - -2004-10-16 Alex Schroeder - - * modules/headers.pl (HeadersRule): Add code for horizontal rules. - -2004-10-16 Alex Schroeder - - * modules/usemod.pl ($UseModSpaceRequired, UsemodRule): Added a - copy of the unnumbered list rule and a new option. If this option - is set to 0, the space after *, #, :, and ; is also no longer - required. - -2004-10-15 Alex Schroeder - - * modules/download.pl (DownloadSupportRule): Allow alternate - title. - - * wiki.pl (InitVariables): Bugfix -- handle '_' at the endo of - $CommentsPrefix as well. - (RSS): Warning if feed contains no item (even if no parsing - error...). - (RSS): Don't add closing ul unless an opening one was added. - -2004-10-13 Alex Schroeder - - * modules/tables.pl (TablesRule): Fix search'n'replace bug. - - * wiki.pl: No provide $DefaultCSS for tables. - (InitVariables): Handle $CommentsPrefix. - (GetHeader): Simplified. - (AddComment): Added extra newlines. - - * modules/usemod.pl: Add $DefaultCSS for tables. - - * modules/tables.pl: Add $DefaultCSS for tables. - - * modules/static-copy.pl (StaticFileName): Add
. - (StaticHtml): Add h1 title, limited goto-bar, and footer. - (StaticScriptLink): Don't link to non-existing pages. - (StaticHtml): Handle comment pages. - -2004-10-13 Alex Schroeder - - * Makefile (upload): Fix upload target. - -2004-10-13 Alex Schroeder - - * wikiupload (main, usage, wikiput): Add password support. - - * modules/headlines.pl (HeadlinesRule): Clean close HTML - environments. - - * modules/calendar.pl (NewCalendarGetHeader): Skip monthly - calendar on the yearly calendar and on edit pages. - -2004-10-12 Alex Schroeder - - * modules/calendar.pl (NewCalendarGetHeader): Show calendar only - for browse action. - - * modules/sidebar.pl: $DefaultStyleSheet change to hide sidebar - @media print. - - * wiki.pl: $DefaultStyleSheet change for textarea. - - * modules/sidebar.pl: Set $DefaultStyleSheet. - -2004-10-10 Alex Schroeder - - * modules/journal-rss.pl (DoJournalRss): Handle rsslimit=all and - default showedit=1. - - * modules/paragraph-link.pl: Resolve conflict with - portrait-support.pl - - * modules/portrait-support.pl: Set $DefaultStyleSheet. - (PortraitSupportRule): All rules work only at the beginning of a - line ($bol). - - * modules/journal-rss.pl (DoJournalRss): Use rsslimit instead of - num and match instead of regexp, and reverse=1 instead of - type=reverse. - - * modules/atom.pl (GetRcAtom): Use $CollectingJournal to - avoid infinite loops when including the full RSS. - - * wiki.pl (RSS): Use $CollectingJournal as well. - (PrintJournal): Cosmetic. - - * modules/journal-rss.pl (DoJournalRss): Use $CollectingJournal to - avoid infinite loops when including the full RSS. - (DoJournalRss): Cosmetic. - - * wiki.pl (DoPost): remove "DeletePage" when a comment is added. - (PageDeletable): Simplify. - -2004-10-08 Alex Schroeder - - * modules/static-copy.pl (StaticFileName): Don't die on unreadable - files. - (StaticFile): Use binmode. - (StaticHtml): Take $LogoUrl and $SidabarName into account. - - * modules/forms.pl (FormsRule): Close HTML environments before - starting the form. - -2004-10-07 Alex Schroeder - - * modules/static-copy.pl: Rewrite to correctly extract and link - uploaded files. - (StaticFileName): Fix encoding issue. When called from - StaticScriptLink, the $id is already UrlEncoded, so we have to - decode it again to get the filename. - (StaticUrlDecode): New. - -2004-10-06 Alex Schroeder - - * wiki.pl (RSS): Handle list start tag for feeds without dates. - (DoSurgeProtection): Verbose error message if the first visitor - lock cannot be created. - -2004-10-04 Alex Schroeder - - * modules/tables.pl: Renamed UsemodTableAttributes to TableAttributes - - * modules/headers.pl: New. - - * modules/page-trail.pl (UpdatePageTrail): Eliminate duplicates. - -2004-10-02 Sebastian Blatt - - * modules/dynlogo.pl: Fixed configuration and added example. - -2004-09-30 Alex Schroeder - - * wiki.pl (GetAdminBar): Moved GetGotoBar($id) out of this sub and - renamed $revisions to $html. - (PrintFooter): Moved GetGotoBar($id) here. - (ApplyRules): Accept @tags parameter to put the first paragraph in - a p element. Pass along p to ApplyRules calls. - (PrintWikiToHTML): Pass along p to ApplyRules calls. - (PrintAllPages): Put pages into a separate div. - -2004-09-29 Alex Schroeder - - * modules/latex.pl (LatexRule): Don't require newlines when using - the $$ and $ rules. - -2004-09-27 Alex Schroeder - - * modules/markup.pl (%MarkupLines): New option. - (%MarkupSingles): Unquote HTML. - (NewMarkupInitVariables): Use %MarkupLines. - (MarkupTag): New, factored out of MarkupRule. - (MarkupRule): Use MarkupTag and support %MarkupLines. - (MarkupRule): Remove stray call to warn. - -2004-09-21 Alex Schroeder - - * modules/admin.pl (AdminPowerRename): Use FreeToNormal and - ValidOrDie to make sure no invalid filename can be used. - -2004-09-19 Alex Schroeder - - * wiki.pl (PrintPage): Print title instead of id. - (BannedContent): Return text matched in the original page. - (DoPost): Changed text printed when BannedContent returns text. - -2004-09-17 Alex Schroeder - - * wiki.pl (ApplyRules): New local variable $first. - -2004-09-16 Alex Schroeder - - * modules/image.pl (ImageSupportRule): Support full urls for the - image. - -2004-09-15 Alex Schroeder - - * wiki.pl: Fixed default CSS. - -2004-09-09 Alex Schroeder - - * modules/calendar.pl (Cal): Highlight current day in the yearly - calendar as well. No longer accept $mday as a parameter. - (PrintYearCalendar): No longer pass $mday parameter. - -2004-09-06 Alex Schroeder - - * wiki.pl (RSS): Remove guid handling. - (RSS): Fix pubDate bug, handle feeds mith titles, description, - and/or link. - -2004-09-05 Alex Schroeder - - * modules/image.pl (ImageSupportRule): Local images don't get the - "local" class, because they already have the "image" class, and - the default rule in wiki.pl doesn't add the local class, either. - They are always local. We just add the "outside" class when an - external URL was given. - - * wiki.pl (ApplyRules): Disallow | in the alternate text of - the [[image:page|text]] rule. It - prevented [[image:page|text|page]] from reaching image.pl. - (GetDownloadLink): Use - - * modules/image.pl (ImageSupportRule): Changed regular expression - a bit. - - * modules/usemod.pl (UsemodRule): Better matching of indented pre. - -2004-09-04 Alex Schroeder - - * modules/calendar.pl: Add to $DefaultStyleSheet. - (Cal): Translate month names. - (Cal): Translate weekdays. - - * wiki.pl ($DefaultStyleSheet): New option. - (GetHtmlHeader): Use it. - -2004-09-02 Alex Schroeder - - * modules/markup.pl (%MarkupPairs): No longer use the u element. - Use em with a style attribute instead. - (MarkupRule): Handle arrays in %MarkupPairs. - - * wiki.pl (GetUpload): Don't return a p element. - - * modules/setext.pl (SeTextRule): No longer use the u element. - Use em with a style attribute instead. - -2004-09-01 Alex Schroeder - - * modules/usemod.pl (UsemodTableAttributes): New. - (UsemodRule): Use it. - -2004-08-31 Alex Schroeder - - * modules/static-copy.pl (DoStatic): Produce valid XHTML. - -2004-08-22 Alex Schroeder - - * modules/templates.pl ($TemplatePattern): New option. - (TemplateList): Translate _ to space when printing links. - -2004-08-19 Alex Schroeder - - * wiki.pl (GetRcText): Bugfix for action=rc;raw=1;all=1. - (GetRcRss): Use $ScriptName instead of $FullUrl. Take - $UsePathInfo into account. When the all parameter is not set, - don't add revision to the URL. - (GetAuthorLink): Remove _ from author names. - -2004-08-17 Alex Schroeder - - * modules/anchors.pl (AnchorsRule): Allow free link pattern for - anchor names. - -2004-08-16 Alex Schroeder - - * modules/atom.pl (AtomTime): Fix format. - (AtomTag): Add escaped parameter. - (GetRcAtom): Fix person entities, don't call AtomPage anymore. - (AtomPage): Deleted. - (GetRcAtom): Take $RssExclude into account, UrlEncode pagenames. - (GetRcAtom): Only print content when full=1. - - * modules/footnotes.pl (NewFootnotePrintFooter): Use a

for - each footnote item, instead of separating them via
. - -2004-08-15 Alex Schroeder - - * wiki.pl (PrintPageDiff): New. - (PageHtml): Call it. - (BrowsePage, PrintHtmlDiff): Remove $id from parameters to PrintHtmlDiff. - (GetRcRss): UrlEncode $RCName. - -2004-08-13 Alex Schroeder - - * wiki.pl (DoHistory): XHTML conformance. - - * Makefile (package-upload): Fix curl command. - - * modules/usemod.pl (UsemodRule): XHTML conformance, use - InElement. - - * modules/lang.pl (NewLangGetNearLinksUsed): XHTML conformance. - - * modules/portrait-support.pl (PortraitSupportRule): Bugfix. - - * wiki.pl (ApplyRules): Close all HTML environments before - include, rss and journal. - (AddHtmlEnvironment): Bugfix. - (GetFilterForm, ImproveDiff, DiffAddPrefix): XHTML conformance. - - * modules/portrait-support.pl (PortraitSupportRule): Bugfixes and - XHTML support. - - * wiki.pl (InElement): New. - (ApplyRules): Use it. Try to use environments for paragraphs, - too. - (CloseHtmlEnvironmentUntil): New. - (AddHtmlEnvironment, Ts, ValidId, FreeToNormal): Eliminate - warning. - (GetRcHtml, GetRcText, GetRcRss, DoEdit): Eliminate case in - variable name. - (GetAuthorLink): Simplify. - (GetFilterForm, DoHistory, GetHtmlHeader, GetCommentForm, - GetSearchForm, DoEdit, DoPassword): XHTML conformance. - (ApplyRules): Remove trailing emptry lines from the content. - -2004-08-12 Alex Schroeder - - * wiki.pl ($RssExclude): New option. - (InitVariables): Apply FreeToNormal to \$RssExclude. - (GetRcRss): Take $RssExclude into account. - (PrintPageHtml): New. - (PageHtml, PrintAllPages): Moved code to PrintPageHtml. - -2004-08-11 Alex Schroeder - - * wiki.pl (ApplyRules): Eliminate a warning. - (GetRcRss): Support full parameter for RSS feeds. - (DoRss): Use application/rss+xml instead of text/plain. - (PageHtml): New. - - * modules/atom.pl (GetRcAtom): Fix entry link. - -2004-08-09 Alex Schroeder - - * modules/paragraph-link.pl (ParagraphLinkRule): "anchor first - defined here" uses print instead of return. - -2004-08-07 Alex Schroeder - - * modules/anchors.pl (AnchorsRule): Add support for named anchors - in free links. - -2004-08-06 Alex Schroeder - - * modules/anchors.pl (AnchorsRule): Added invisible anchor - definition. - - * modules/portrait-support.pl (PortraitSupportRule): Duplicate the - horizontal rule and the heading stuff from usemod.pl, but only - enable them if usemod.pl is loaded (when UsemodRule is defined). - (NewPortraitSupportWikiHeading): Deleted. - - * wiki.pl (GetHttpHeader): Fix typo related to last_modified - header, thanks to Andrés Martinelli. - - * modules/toc.pl (TocHeadings): Quote text in TOC, as noted by - Ronnie Bashra. - - * modules/beautify.pl (Beautify): Use UnquoteHtml, as suggested by - an anonymous user on the wiki. - -2004-07-16 Sebastian Blatt - - * modules/admin.pl (AdminPowerDelete): added missing parenthesis - - * modules/throttle.pl: Added. Module to limit the number of - parallel Oddmuse instances by keeping track of the script's - process ids. - -2004-07-14 Alex Schroeder - - * modules/link-all.pl: Set %RuleOrder. - - * wiki.pl (%RuleOrder): New variable. - (RunMyRules): Moved the adding of \&MyRules to @MyRules to InitVariables. - (InitVariables): Code from RunMyRules, and use %RuleOrder to order rules. - -2004-07-09 Alex Schroeder - - * merge-list (Main): Don't filter empty lines. - -2004-07-08 Alex Schroeder - - * wiki.pl (InitVariables): Set @LockOnCreation here, after - translating spaces to underscores, and after reading the config - file. - (ParseData): Accept a space as the first character as well. - -2004-07-06 Alex Schroeder - - * modules/usemod.pl (UsemodRule): New regexp for the whitespace - prefix rule. - - * wikiput (main): Added user and password option. - (parse_wiki_location): Added support for path info. - -2004-07-05 Alex Schroeder - - * modules/usemod.pl (NewUsemodInitVariables): Bugfix -- call - OldUsemodInitVariables(). - -2004-07-05 Nikolay A. Fetisov - - * wiki.pl (InitVariables, ApplyRules, PrintJournal, OpenPage): - Initialize some variables. - (Save): Reset $IndexInit. - -2004-06-29 Alex Schroeder - - * modules/calendar.pl (Cal): The year can be part of the link for - the month, or link to the year calendar. - (PrintYearCalendar): When printing the year calendar, the year - should not link to the same page. - - * modules/usemod.pl: New. - - * wiki.pl (RFC, ISBN, WikiHeading): Moved to modules/usemod.pl. - (PrintSearchResult): No longer strip common HTML tags (since those - are now defined in modules/usemod.pl). - (ApplyRules): Moved many rules to modules/usemod.pl. - (InitLinkPatterns): No longer set $RFCPattern and $ISBNPattern. - (InitVariables): No longer set @HtmlTags - ($RFCPattern, $ISBNPattern, @HtmlTags, $HtmlTags, $HtmlLinks) - ($RawHtml): Moved to modules/usemod.pl. - - * modules/setext.pl: Unshift rule to the front. - -2004-06-28 Alex Schroeder - - * wiki.pl (ApplyRules): Don't allow empty headers. - (DoDownload): Use unquoted type for messages. - (DoPost): Save unquoted type, use unquoted type for messages. - -2004-06-28 Alex Schroeder - - * wiki.pl ($bol): New global variable. - (ApplyRules): Use local $bol instead of my $bol, so that - extensions can use it as well. - - * modules/setext.pl (SeTextRule): Use the local $bol variable. - -2004-06-26 Alex Schroeder - - * test-markup.pl: New markup module tests. - - * modules/markup.pl (MarkupRule): Added zero-width look-ahead - assertion. Fix ~/elisp/ and /usr/bin/ example. - - * wiki.pl (ApplyRules): Require a space after list items (after - *, #, :, ;). - - * modules/not-found-handler.pl (WriteLinkDb): Removed lock. - (DoLinkDb): Added Lock. - (RefreshLinkDb): Rewrite. It was full of bugs. - (NewNotFoundHandlerSave): Rewrite. - (NotFoundHandlerCacheUpdate): Rewrite. - - * wiki.pl (ApplyRules): Require a space after bullet points (after - and #). - - Don't override $ModuleDir if it is already set (since this is used - before $ConfigFile is run). - -2004-06-23 Alex Schroeder - - * modules/markup.pl: A sequence of words may not start with a - number in order to prevent "6/22/2004" -> "6222004" instead - of "6/22/2004". - -2004-06-22 Alex Schroeder - - * wiki.pl (DoPost, DoDownload): Call quotemeta on the MIME type to - allow image/svg+xml. - -2004-06-21 Alex Schroeder - - * wiki.pl (GetRc): Experimenting with revision clusters: By - starting the summary with a page link, you can cluster one - revision only. - -2004-06-21 Alex Schroeder - - * wiki.pl (ApplyRules): New regepx → allow a bit more skipping of - words. - -2004-06-20 Alex Schroeder - - * wiki.pl: Removed link action. - (DoLinks, PrintLinkList, GetFullLinkList, GetLinkList): Gone. - (ApplyRules): Small cleanup: Moved #FILE rule up, made words - optimization less greedy by requiring a trailing space. - - * modules/markup.pl (MarkupRule): Use en dash and em dash, changed - patterns slightly. - - * test-markup.pl: Added tests for the markup module. - - * modules/links.pl: Moved DoLinks from the main script into a - module. - - * modules/markup.pl (MarkupRule): Numbers are allowed in words. - -2004-06-19 Alex Schroeder - - * modules/image.pl (ImageSupportRule): Support external images as - well. - ($ImageUrlPath): New option. - (ImageSupportRule): Use alt text as title attribute as well. - - * modules/markup.pl (MarkupRule): Don't use characters directly; - use numerical character references instead. Else this corrupts - UTF-8 data!! - (MarkupRule): Fix em dash rule. - - * wiki.pl (ApplyRules): Special case ''''' to render correctly. - (RunMyRules): Only call MyRules if it is defined. - (ApplyRules): Optimize smiley rule. - (RunMyRules): Bugfix -- don't add \&MyRules a gazillion times. - Optimize -- No eval to catch errors. - (ApplyRules): Another optimization -- this one will disable all - rules that start with lowercase ascii letters! - -2004-06-18 Alex Schroeder - - * wiki.pl (RunMyRules): Only run MyRules if it is actually - defined. - -2004-06-17 Alex Schroeder - - * anchors.pl - * calendar.pl - * download.pl - * faq.pl - * footnotes.pl - * forms.pl - * headlines.pl - * image.pl - * lang.pl - * latex.pl - * link-all.pl - * portrait-support.pl - * signature.pl - * thread.pl - * translations.pl: Adapted to the bugfix in the RunMyRules sub. - - * wiki.pl (Clean, SmileyReplace, RunMyRules): Important change in - handling rules: Rules are expected to return undef when they did - not match, and the empty string if a dirty block was produced. - (QuoteHtml, UnquoteHtml): Cosmetic. - (ApplyRules): Several changes: 1. Use /o for more pattern matches. - 2. Don't call MyRules() here, add in RunMyRules instead. - 3. Removed some superfluous /i and /s options. 4. Fixed handling - of ''''' by splitting the '' rule into two separate blocks. - -2004-06-15 Alex Schroeder - - * modules/calendar.pl (Cal): Accept year and month as parameters. - Link month names. - (PrintYearCalendar): Use Cal instead of near-duplication of code. - (DoYearCalendar): New action 'calendar' used to print yearly - calendar. - (Cal): The year now links to an overview of the entire year. - (CalendarRule): New rule for month:2004-06. - (CalendarRule): New rule for month:+1 or month:-1. - (PrintYearCalendar): Add div.year. - -2004-06-15 Alex Schroeder - - * modules/calendar.pl (Cal): Support for Date::Calc and Date::Pcalc. - ($CalendarUseCal): New option. - -2004-06-13 Alex Schroeder - - * wiki.pl (DoLinks): Pass parameters onto GetFullLinkList. - (GetFullLinkList): Accept parameters instead of using GetParam. - Move most of the code to GetLinkList. - (GetLinkList): New, extract links from one page only. - (ReadPermanentAnchors): Simplified, accept both $FS and space as - separator. - (WritePermanentAnchors): Use spaces instead of $FS to write the - file. - - * modules/not-found-handler.pl ($LinkFile, %LinkDb): New variables. - (ReadLinkDb, WriteLinkDb, RefreshLinkDb): New. - (DoClearCache, DoLinkDb): New. - (NewNotFoundHandlerDoMaintain): Deleted. - (NewNotFoundHandlerSave): Use the new functionality. - Major rewrite using a link database! - - * wiki.pl (RSS): Handle encoding of 'diff' and 'history' texts. - (DeletePage): Bugfix. - (RSS): No longer print square brackets around links to feeds - without interwiki moniker. This can be added using CSS. - -2004-06-12 Alex Schroeder - - * modules/not-found-handler.pl (NewNotFoundHandlerDeletePage): New - function to delete cached copies of pages that are deleted. - (NewNotFoundHandlerDeletePage, NewNotFoundHandlerSave): Delete - both the page, and the page with language extension due to content - negotiation, ie. PageName.en, PageName.de, etc. - (NewNotFoundHandlerDeletePage): Deleted again. - (NewNotFoundHandlerDoMaintain): New function. - - * modules/admin.pl (AdminPowerDelete): Only write rc log when - delete was successful. Depends on the change to DeletePage in - wiki.pl. - - * wiki.pl (ApplyRules): Bugfix, lone *, #, and : in the middle of - lines caused the creation of list items. - (GetRcHtml): Show '(new)' instead of '(diff)' when revision == 1. - (DoMaintain): Handle error reporting from DeletePage here. - (DeletePage): Simplified. Return error string or empty string on - success. - -2004-06-10 Alex Schroeder - - * wiki.pl (ApplyRules): Lists separated by whitespace are - joined (affects *, #, and : at the beginning of a line). - -2004-06-05 Alex Schroeder - - * wiki.pl (GetRedirectPage): Use $ScriptName instead of $FullUrl. - -2004-06-04 Alex Schroeder - - * wiki.pl (PrintPage): Use GetPageOrEditLink to print pages. - -2004-06-03 Alex Schroeder - - * modules/calendar.pl (CalendarRule): The CalendarRule is a dirty - rule. - (PrintYearCalendar): Handle spacing differently, provide an - additional span for CSS. - -2004-06-02 Alex Schroeder - - * wiki.pl (ResolveId): Do not link achors that are on the same - page as the their own name. - -2004-05-31 Alex Schroeder - - * wiki.pl (PrintFooter, GetFooterLinks): Moved hr from inside - span.edit to div.footer. - -2004-05-31 Alex Schroeder - - * modules/image.pl (ImageSupportRule): [[image/class:page name|alt - text|target]] support as discussed on the oddmuse wiki - - * simplify.pl: Added use encoding 'utf8'; no idea what it does to - non-UTF-8 scripts. - (munge_rss): different presentation suggested by Björn Lindström. - -2004-05-30 Alex Schroeder - - * wiki.pl (GetFullLinkList): Use alternate text for interlinks if - provided, use FreeToNormal only when printing raw links. - -2004-05-29 Alex Schroeder - - * modules/admin.pl (AdminPowerRename): Bugfix. - -2004-05-29 Alex Schroeder - - * wiki.pl: Removed -w again because it is hell to 'make test'. - (GetParam): Simplified (tried to remove -w warning but failed). - (UrlEncode): Do not encode '#' as it is forbidden in page names - and allows us to return anchors from ResolveId. - (ResolveId): UrlEncode resolved for anchors ('alias'), and link to - near pages directly ('near'). - (BrowseResolvedPage): Take changes in ResolveId into account. - (ReBrowsePage): No longer accept third argument. - (RcHeader): days parameter only added to the menu actions, not to - all actions. - (GetHttpHeader, GetRemoteHost): Reorganized to remove -w warning. - (GetPermanentAnchor): Handle different info from ResolveId. - (GetPageOrEditLink): Don't use the urls returned for nearlinks as - scriptlinks. - -2004-05-26 Alex Schroeder - - * wiki.pl (PrintFooter): Pass $id and $rev to GetAdminBar. - (GetFooterLinks): Remove pagelock action from here. - (GetAdminBar): Put pagelock action here. - -2004-05-24 Alex Schroeder - - * wiki.pl (PrintFooter): More spans. - (DoSurgeProtection): Report $SurgeProtectionViews and - $SurgeProtectionTime when surge protection is triggered. - (RcHeader): Fixed text bug. - -2004-05-21 Alex Schroeder - - * wiki.pl: Run with -w. - (GetPageOrEditLink): Reworked usage of ResolveId. - (BrowseResolvedPage): Reworked usage of ResolveId. - (DoEdit): Copy newText to oldText earlier when previewing so that - preview works even when the old version is a file. - (PrintPage): Reworked usage of ResolveId. - (PrintSearchResultEntry): Reworked usage of ResolveId. - -2004-05-18 Alex Schroeder - - * wiki.pl (DoPrintAllPages): Admin-only. - (RcHeader): Make all, showedit, and days explicit, so that they - can be set and unset even if they are added to %CookieParameters. - -2004-05-11 Alex Schroeder - - * modules/portrait-support.pl (PortraitSupportRule): Better - support for text browsers. - -2004-05-10 Alex Schroeder - - * latin-1.pl (translate): Do not rely on automatic encoding to - latin-1. - - * wiki.pl ($BannedContent): New option. - Add it to @LockOnCreation, apply FreeToNormal. - (BannedContent): New sub. - (DoPost): Call it, unless user is an editor. - (DoWikiRequest): Editors can edit even when banned. - -2004-05-09 Alex Schroeder - - * upgrade-files.pl (basic_data): Extract summary from text instead - from section. - -2004-05-08 Alex Schroeder - - * latin-1.pl (translate): Added '?', ';', '&' to the "safe" chars, - ie. not encoded chars. - - * modules/lang.pl (NewLangInitCookie): Remember old theme - parameters, taking care to separate normal values from language - values (exactly two letters). - (NewLangGetNearLinksUsed): New hidden parameter so that we know - when no languages are set. - -2004-04-28 Alex Schroeder - - * modules/portrait-support.pl (NewPortraitSupportWikiHeading) - (NewPortraitSupportApplyRules): Toggle $MyColor when adding a - closing div tag. - (PortraitSupportRule): Use CSS to alternate background colors. - -2004-04-27 Alex Schroeder - - * wiki.pl (GetUrl): Test for image extension is case-insensitive. - (GetHttpHeader): Allow $UseCache = -1. - -2004-04-25 Alex Schroeder - - * wiki.pl (DoMaintain): Don't sort the output of AllPagesList(), - since that did not work for at least one user. - -2004-04-23 Alex Schroeder - - * wiki.pl (DoMaintain): Print error message only when $data is empty. - -2004-04-22 Alex Schroeder - - * wiki.pl (DoShowVersion): Added LWP::UserAgent::VERSION printout. - -2004-04-18 Alex Schroeder - - * wiki.pl ($FullUrlPattern): New. - (InitLinkPatterns): Set it. - (ApplyRules): Use it. - (GetFullLinkList): Fix the links action. - -2004-04-17 Alex Schroeder - - * wiki.pl (AllPagesList): Find dotfiles, too. - (GetRaw): Return nothing if LWP::UserAgent is not available. - (RSS): Handle missing LWP::UserAgent and parser errors gracefully. - Fix HTML output bug. - (SearchNearPages): Use GetRaw instead of duplicating LWP code. - (DoMaintain): Dito. - (ApplyRules, GetDownloadLink): Allow image links with alternate text. - (InitLinkPatterns): Add "()'" to free interwiki links. - -2004-04-12 Alex Schroeder - - * wiki.pl (DoPost): Fix raw=2 bug. - (GetTextAtTime): Fix bug for rollback action where only the pages - were rolled back that were changed at the exact moment! - (ApplyRules, GetInterSiteUrl, GetInterLink): Don't always quote - interlink pages. - -2004-04-11 Alex Schroeder - - * wiki.pl (DoRollback): Fixed old bug: Rollback action has been - unusable for a very long time! - - * test-markup.pl: added tests for rollback action. - - * wiki.pl (GetDownloadLink): Don't use the upload class for 'a' - when linking to an inlined image. - - * modules/simple-rules.pl (NewSimpleRulesApplyRules): Added - download links to uploaded images. - (NewSimpleRulesApplyDirtyInlineRules): Added [[image:foo]] rule. - -2004-04-10 Alex Schroeder - - * wiki.pl ($FreeInterLinkPattern): New variable - (InitLinkPatterns): Set it. - (ApplyRules): Support new interlinks with spaces in the pagename. - (GetInterSiteUrl): Encode the page name. - -2004-04-09 Alex Schroeder - - * wiki.pl (ScriptLink, GetEditLink, GetFooterLinks): Add accesskey. - (GetCommentForm, DoEdit, DoPassword): Add accesskey. - -2004-04-07 Alex Schroeder - - * modules/namespaces.pl (NewNamespacesInitVariables): Add entries - to %InterSite even if we are not in a subwiki right now. - -2004-04-06 Alex Schroeder - - * wiki.pl (Save): Specify 'time' instead of relying on 'undef', as - one user reported that was a problem with his Perl build. - -2004-04-05 Alex Schroeder - - * wiki.pl (UpdateReferers): Replace $q->url() with $ScriptName, - since that's the default value. - (GetHtmlHeader): Replace $q->url() with $ScriptName in the default - body class (aka theme). - (DoBrowseRequest): New handling, so that modules/namespaces.pl - works. - -2004-04-04 Alex Schroeder - - * wiki.pl (AllPagesList): Produce an error if the pageidx file - exists and cannot be overwritten. - -2004-04-03 Alex Schroeder - - * wiki.pl (ResolveId): Fix bug when return existing link. - - * modules/toc.pl (TocHeadings): Return nothing if two headings or - less. - -2004-04-02 Alex Schroeder - - * modules/weblog-2.pl (NewWeblog2InitVariables): Switch from - gmtime to localtime. - - * modules/weblog-1.pl (NewWeblog1InitVariables): Switch from - gmtime to localtime. - - * modules/calendar.pl (Cal): Switch from gmtime to localtime. - - * wiki.pl (ApplyRules): [url] is a dirty rule. - -2004-03-31 Alex Schroeder - - * wiki.pl (ResolveId): Permanent anchors now take precedence over - existing pages. Allow override using anchor parameter. - (GetPermanentAnchor): Show warning when duplicating an existing - permanent anchor. Show link when duplicating an existing page. - (ResolveId): Return as a third list item whether the page exists - even if a permanent anchor is found. - (GetPermanentAnchor): Use it. - -2004-03-28 Alex Schroeder - - * modules/calendar.pl (Cal): Link to the date, not the day, when - there are no matches. - (PrintYearCalendar): Add div.year class. - (Cal): Add div.month class. - - * wiki.pl (InitLinkPatterns): add irc to $UrlProtocols. - - * modules/calendar.pl (Cal): Added support for multiple partial matches. - (DoCollect): Added collect action. - (CalendarRule): New rule. - (PrintYearCalendar): Code to do the work. - ($CalendarOnEveryPage): New option. - -2004-03-20 Alex Schroeder - - * wiki.pl (RunMyRules, PrintCache): Start with 0 again. - (GetInterLink, GetUrl, GetPageOrEditLink): Due to RunMyRules changes... - (PrintFooter): Split into several new functions. - (GetSisterSites, GetNearLinksUsed, GetFooterTimestamp) - (GetAdminBar, GetFooterLinks, GetCommentForm): New functions. - -2004-03-19 Alex Schroeder - - * wiki.pl (PrintWikiToHTML, PrintCache): Start with - $FootnoteNumber = 1. - (BracketLink): New. - (GetInterLink, GetUrl): Use it, and add "outside" class if - necessary. - (GetPageOrEditLink): Use it. - (GetHtmlHeader): Default CSS for a.outside. - (GetPageParameters, GetPageOrEditLink): Add UrlEncode thanks to wctang. - (ScriptLink, GetAuthorLink, GetDownloadLink): Dito. - (GetAuthorLink, PrintFooter, PrintPage, PrintSearchResultEntry): Dito. - -2004-03-15 Alex Schroeder - - * wiki.pl (InitVariables): Add $RssInterwikiTranslate. - (PrintFooter): Added admin bar inspired from UseMod 1.0. - (ReBrowsePage): Third parameter is the anchor, UrlEncode all parameters. - (DoPost): No longer encode id. - - (BrowseResolvedPage): Add third parameter to call to ReBrowsePage. - - (RSS): Use three-digit numbers to number items without a - timestamp, so that the number is not recognized as a valid - date (year-only) when printing the lines. - - Support for Chinese pages, thanks to Ray and wctang. - (GetDownloadLink, BrowseResolvedPage, DoEdit): UrlEncode the page - id in the action. - (GetSearchLink): UrlEncode the name. - (DoPost): UrlEncode the page when calling ReBrowsePage.. - -2004-03-13 Alex Schroeder - - * wiki.pl (RSS): Print "UTC" only when time was provided. - -2004-03-12 Alex Schroeder - - * wiki.pl (GetHtmlHeader): Some more default CSS tinkering; hide - form and div.refer when printing. - (DoEdit): Put preview at the top of the page. - (RSS): Parse more dates: Time, day, and month are optional. - -2004-03-10 Alex Schroeder - - * wiki.pl (GetHtmlHeader): Fixed default CSS. - -2004-03-09 Alex Schroeder - - * wiki.pl (GetInterLink, GetUrl, GetPageOrEditLink, GetEditLink) - (GetPageLink, GetRcHtml, GetOldPageLink, ScriptLinkDiff) - (GetHistoryLink, GetRCLink, PrintAllPages, GetInterLink, GetUrl): - Use more CSS classes. - (GetDownloadLink): Link to image page, if necessary. - -2004-03-08 Alex Schroeder - - * wiki.pl ($RssInterwikiTranslate): New. - (@LockOnCreation): Lock it upon creation. - (RssInterwikiTranslateInit): New. - (RSS): Call RssInterwikiTranslateInit if required. - (%RssInterwikiTranslate, $RssInterwikiTranslateInit): New - (InitVariables): Initialize the two. - (PrintFooter): Add lock and unlock links for admins. - (Upload, GetDownloadLink, ApplyRules): Renamed from Upload to - GetDownloadLink. Add edit link if image doesn't exist. - -2004-03-07 Alex Schroeder - - * wiki.pl (GetInterLink): Add more spans to interlinks. - (RSS): Use $RssInterwikiTranslate on the URL if no interwiki was specified. - (ApplyRules): RSS rule, fix whitespace splitting that breaks new RSS functionality. - (ApplyRules, GetPageOrEditLink): Take brackets correctly into account for free links. - (GetPageLink): Don't test for $FreeLinks before applying FreeToNormal. - (GetEditLink, BrowseResolvedPage, GetPageParameters): Ditto. - (DoPost, GetPermanentAnchor): Ditto. - (GetHttpHeader): Don't send last-modified header when $UseCache is less than 2. - (PrintFooter): Link to password action when a page is read-only. - (ApplyRules): Added image inlining. - (Upload): Use FreeToNormal on inlined images. - -2004-03-06 Alex Schroeder - - * wiki.pl (GetFormStart): Second parameter to choose GET instead of POST. - (GetSearchForm): Choose GET instead of POST. - -2004-02-28 Alex Schroeder - - * wiki.pl (DoDownload, DoPost): Only test for MIME type matches if - @UploadTypes is not empty. - (Upload): Use download/pagename links if possible. - -2004-02-24 Alex Schroeder - - * wiki.pl (GetReferers): Convert escapes back to bytes for the - title (at least if they use the same coding system it will look - good). - (ReportError, BrowsePage, GetHeader, GetHttpHeader): Add error status. - (DoWikiRequest, InitVariables, DoBrowseRequest, ValidIdOrDie) - (BrowseResolvedPage, DoRollback, SavePage, ReadFileOrDie) - (WriteStringToFile, AppendStringToFile, RequestLockDir) - (DoEdit, DoDownload, UserIsAdminOrError, DoPost) - (DoSurgeProtection): Added specific HTTP status codes. - -2004-02-23 Alex Schroeder - - * wiki.pl (%Action): New option. - (DoBrowseRequest): Use it. Major change in how actions are handled! - (BrowseResolvedPage): Special treatment for non-existing pages: 'new' status. - (BrowsePage, GetHeader): Pass 'new' status on. - (GetHttpHeader): Return 404 status code if 'new'. - -2004-02-22 Alex Schroeder - - * wiki.pl (GetAuthorLink): Use ScriptLink to link to author. - -2004-02-21 Alex Schroeder - - * wiki.pl ($HtmlHeaders): New option. - (GetHtmlHeader): Use it. - -2004-02-20 Alex Schroeder - - * wiki.pl (Init): Only load modules and config file if they - haven't been loaded already, so that sub redefinitions don't cause - havoc in a mod_perl environment. - -2004-02-11 Alex Schroeder - - * wiki.pl (@KnownLocks): New variable. - (DoUnlock): Use it. - -2004-02-09 Alex Schroeder - - * wiki.pl (DoShowVersion): Print diff and diff3 dependencies. - -2004-02-08 Alex Schroeder - - * wiki.pl (Init): Use binmode raw for STDOUT. - (ApplyRules): Use binmode utf8 for STDOUT if $HttpCharset is - 'UTF-8' (the default). Reset to raw immediately. - (RSS): Don't downgrade anymore. - -2004-02-06 Alex Schroeder - - * wiki.pl (Cookie): The cookie is considered to have changed under - the following condition: If the value was already set, and the new - value is not the same as the old value, or if there was no old - value, and the new value is not the default. - -2004-02-03 Alex Schroeder - - * wiki.pl (Cookie): Eliminate uninitialized variable warning. - (ValidId): Added a specific error text if the id is empty. - (DoBrowseRequest): Handle wiki/download/page and wiki/raw/page. - - * forms.pl (FormsRule): Add %this% rule. - -2004-02-01 Alex Schroeder - - * wiki.pl (SearchNearPages): Print "Near pages:" only when there - actually are any. - -2004-01-31 Alex Schroeder - - * wiki.pl (DoEdit): Bugfix with conditional declaration: my - $header = ... if $foo; If not $foo, $header will not be - initialized and in a mod_perl environment this caused Oddmuse to - keep showing the old header. - (CloseHtmlEnvironment): Similar suspicious code. - (InitCookie): Get rid of uninitialized variable warnigs. - (ApplyRules): Rewrite handling to avoid using m//m when matching - lines, local HtmlStack to get rid of uninitialized variable - warnigs. - (BrowsePage, ScriptLinkDiff): Get rid of uninitialized variable warnigs. - (Cookie, GetTextRevision, GetCluster): Ditto. - (DeletePermanentAnchors): Ditto, by removing relying on $_. - ($RunCGI): Can be set outside the script. - (Cookie): Fix again. - -2004-01-27 Alex Schroeder - - * wiki.pl ($ModulesDescription): New variable. - (InitVariables): Use it. - (@MyRules): New option. - (RunMyRules): New function. - (ApplyRules): Call it. - -2004-01-25 Alex Schroeder - - * wiki.pl (%InvisibleCookieParameters): New option. - (Cookie): Use it. - -2004-01-24 Alex Schroeder - - * wiki.pl (DoUnlock, PrintSearchResultEntry): Use extra - parenthesis around the qw() for Perl 5.005. - -2004-01-23 Alex Schroeder - - * weblog-tracking.pl (PingTracker): Added forking on each request. - - The entire weblog notification was moved into a separate module. - - * wiki.pl ($NotifyTracker, %NotifyJournalPage): Removed. - (DoBrowseRequest): Removed ping action. - (DoPost): Don't call PingTracker anymore. - (PingTracker): Moved. - (DoPingTracker): Moved. - - * weblog-tracking.pl (NewSave): Call OldSave instead of Save. - - * wiki.pl ($DataDir): Allow setting it via the environment - variable "WikiDataDir" (for mod_perl). - ($ModuleDir): New variable. - (Init): Load modules in $ModuleDir. - -2004-01-19 Alex Schroeder - - * wiki.pl (RSS): Print error message when parsing fails. - (PrintFooter): Comments are no longer minor edits. - (BrowsePage): Implement comment preview. - (PrintFooter): Implement comment preview. - (DoPost): Put comment munging into new sub AddComment, and call - either BrowsePage or Do Edit when previewing depending on whether - we are previewing a comment or an edit. - (AddComment): New. - -2004-01-11 Alex Schroeder - - * wiki.pl: No longer use bytes pragma, because after printing RSS - feeds Perl will be messed up and some texts such as Links and text - in the footer containing Umlauts will print as bytes instead of - UTF-8 strings. They are double-encoded. - (RSS): Use utf::downgrade to downgrade the data received from the - network. This is sad, since printing Latin-1 encoded RSS feeds in - a UTF-8 wiki no longer works, but protecting the rest of the page - from corruption when an UTF-8 feed is printed in a UTF-8 wiki is - more important. - -2004-01-08 Alex Schroeder - - * wiki.pl (DiffMarkWords): Use WriteStringToFile. - (ApplyRules): Remove no longer used variable. - (InitRequest): Don't call binmode on STDOUT. - - At the top: use bytes pragma added to disable all unicode features. - A byte is a byte and not potentially part of a multi-byte character. - -2004-01-06 Alex Schroeder - - * wiki.pl (GetPageOrEditLink): Add class to edit links. - (ApplyRules): Removed binmode call, since that led to weird errors - in perl 5.8.0 and 5.8.2 when printing large amounts of data (seen - when using action=all). - (InitRequest): Use binmode :utf8 for the entire session. - -2004-01-03 Alex Schroeder - - * wiki.pl ($PermanentAnchorsInit): New variable. - (ResolveId): Use it to ReadPermanentAnchors() only once per - session. - (ReadPermanentAnchors): Set it. - (DeletePermanentAnchors): Use it. - (UserIsEditor): Change parameters; permanentanchors=2 no longer - works, instead there is links=0 to disable ordinary links; near=1 - is new to include near links. - (GetFullLinkList): Change parameters; url=2 no longer works, - instead there is links=0 to disable ordinary links, and inter=1 - for interlinks. - (DoIndex): Rework how the subtitle is created. - (PrintFooter): Use "Back to X". - (PrintAllPages): Allow filtering by language. - (DoMaintain): Determine languages, too, if cache. - (PrintFooter): Text change. - (PrintAllPages): Refresh languages, too, when cache=0 is used. - (DoMaintain): No longer handle cache parameter. - -2004-01-02 Alex Schroeder - - * wiki.pl (PrintSearchResult): Bugfix. - (GetTextRevision): New function, factored out of BrowsePage. - (BrowsePage, DoEdit, DoDownload): Use it. - -2003-12-31 Alex Schroeder - - * wiki.pl (PrintSearchResult): Bugfix -- quote HTML only after all - the other stuff has been replaced. - -2003-12-30 Alex Schroeder - - * wiki.pl (RSS): Better error message when XML::RSS or - LWP::UserAgent are not available. - -2003-12-28 Alex Schroeder - - * wiki.pl (DoShowVersion): Print Perl version. - (RSS): Improved handling of feeds without dates by using a numeric - counter when necessary. - -2003-12-27 Alex Schroeder - - * wiki.pl (GetInterSiteUrl): Bugfix: Return nothing if the site is - not found on the intermap. - (PrintSearchResultEntry): More elaborate linking for wikis that use subpages. - -2003-12-26 Alex Schroeder - - * wiki.pl (HighlightRegex): New. - (DoSearch, SearchNearPages, PrintSearchResultEntry): Use it. - (PrintSearchResult): Extract HighlightRegex, SearchHighlight and - SearchExtract. - (SearchHighlight, SearchExtract): New. - -2003-12-24 Alex Schroeder - - * wiki.pl (GetRcText): Use link instead of uri. - (PrintFooter): Only print sister sites and edit near links when $id is set. - (DoUnlock): Removed surplus parenthesis. - (PrintPage): Only use minimal RSS 3.0 when searching. - (DoSearch): Add head item for raw output. - (SearchNearPages): Skip head item. Append search string to search url if no %s found. - (PrintSearchResultEntry): Use RcTextItem. - (DoSearch): Change default to near=1 and offer link to near=2. - (SearchNearPages): Change default to near=1. - (SearchNearPages): Switched order of near searches. - (PrintSearchResultEntry): Only print the info provided. - -2003-12-23 Alex Schroeder - - * wiki.pl (%NearSearch): New variable. - (InitVariables): Init it. - (NearInit): Read three fields instead of two from the near map. - (PrintFooter): Removed third argument to GetAuthorLink. - (PrintPage): If raw and context, use RSS 3.0 format. - (DoSearch): Call SearchNearPages, too. - (SearchString, SearchNearPages): New. - (SearchTitleAndBody): Use SearchString. - (PrintSearchResultEntry): New. - (PrintSearchResult): Use it. - -2003-12-22 Alex Schroeder - - * wiki.pl (NearInit): NearSource now uses a list as value. - (ResolveId): Resolve to the first source in the list. - (PrintFooter): Use list. - (BrowseResolvedPage): Use title attribute. - (DoShowVersion): More debugging of near links. - -2003-12-19 Alex Schroeder - - * wiki.pl ($SisterSiteLogoUrl): New variable. - (PrintFooter): Use it. - (GetHtmlHeader): More CSS for div.near and div.sister. - -2003-12-18 Alex Schroeder - - * wiki.pl ($NearSiteInit, %NearSite, %NearSource, %NearLinksUsed, - $NearDir, $NearMap): New variables. - (@LockOnCreation): Added $NearMap. - (InitVariables): Init $NearSiteInit, %NearSite, %NearSource, - %NearLinksUsed, $NearMap. - (NearInit): New. - (ApplyRules): Call NearInit. - (InterInit): New. - (GetSiteUrl): Moved some code to InterInit, moved rest to - GetInterSiteUrl. - (GetInterSiteUrl): New, replaces GetSiteUrl. - (GetInterLink): Use GetInterSiteUrl. - (ResolveId): Added near-link handling. - (PrintFooter): Added near-link handling. - (DoMaintain): Added near-link handling. - (GetHtmlHeader): Added a.near:link and a.near:visited to default - stylesheet. - (UserCanEdit): No edit when the page is in @LockOnCreation. - (DoIndex): Fix raw handling. - (DoShowVersion): Added debugging info for interlinks and - nearlinks. - -2003-12-07 Alex Schroeder - - * wiki.pl (BrowsePage): When a page cluster is self-contained, and - no rcclusteronly is provided, set the parameter to the page name. - (SetParam): New sub. - (InitCookie, BrowsePage, DoPost): Use SetParam instead of setting - $NewCookie directly. - -2003-12-06 Alex Schroeder - - * wiki.pl (DoPost): Fix raw handling. - (GetFullLinkList): Implement listing orphans only. - -2003-11-29 Alex Schroeder - - * wiki.pl (DoIndex): Print how many pages there are in this sub, - then call PrintPage on every item in the list instead of passing - the list to PrintPageList. - (PrintPageList): Removed. - (PrintPage): New, replaces PrintPageList. - (DoSearch): Print how many pages there are at the end of the list, - then call PrintSearchResult or PrintPage on every item in the list - instead of passing the list to PrintSearchResults. - (PrintSearchResults): Removed. - (PrintSearchResult): New, replaces PrintSearchResults. - (DoPost): Some refactoring, and making sure that no there is no - conflict warning when a comment is being appended. - -2003-11-27 Alex Schroeder - - * wiki.pl (SearchTitleAndBody, GetRc): Tweaking handling of "none". - (DoSearch): Only replace when lang is not given. - (PrintPageList): Handle raw parameter. - (DoBrowseRequest): Call DoIndex without raw parameter. - (DoIndex): Print header only when no raw parameter; retrieve it here. - (GetSearchForm, GetFilterForm): Use lang parameter as default. - (PrintPageList): Handle lang attribute. - (DoIndex): Add lang to the header. - (RcHeader, GetRc, SearchTitleAndBody): Rename $langFilter -> $lang; - (DoSearch, Replace): Replacement is language sensitive. - (GetRcRss): Some refactoring. - (PrintSearchResults): Elipsis no longer bold. - - (%CookieParameters): Added 'lang'. - (RcHeader, GetFilterForm, GetRc): Changed 'rclang' to 'lang'. - (GetSearchForm): Add language textfield. - (SearchTitleAndBody): Filter by languages. - - ($UseCache): New variable. - (BrowsePage): Check it before allowing the use of the cache. - (PrintAllPages): Check it before allowing the use of the cache. - - (GetRc): When a page has no languages, it will be - assigned the language 'none'. - (Save): Save languages as part of the page. - (GetLanguages): Return the languages in a string instead of a listref. - (WriteRcLog): Use the languages string directly. - -2003-11-20 Alex Schroeder - - * wiki.pl (DoShowVersion): Print server software as well. - -2003-11-16 Alex Schroeder - - * wiki.pl (Tss): @_[0] -> $_[0] - (PrintSearchResults): \1 -> $1 - (DoMaintain): Bugfix; the call to sort was borked. - (SaveKeepFile): Set keep-ts when moving a page to the keep file. - (ExpireKeepFiles): Use keep-ts to decide whether to expire or not. - -2003-11-15 Alex Schroeder - - * wiki.pl (DiffHtmlMarkWords): Be even more restrictive. If the - change extends past the first hundred words, don't mark it. - (OpenPage): No text if this a comment page. - -2003-11-12 Alex Schroeder - - * wiki.pl (%RssInterwikiTranslate): New variable. - (RSS): Use 'diff' instead of '(diff)' for translating; change - order of attributes per line; separate by days if supported, print - time if supported; use %RssInterwikiTranslate. - (GetRcHtml): Use 'diff' instead of '(diff)' for translating; - change order of attributes per line. - (GetHistoryLine): Change order of attributes per line. - (CalcTime): Use leading zero for hours. - -2003-11-11 Alex Schroeder - - * wiki.pl (DoIndex): Add new parameter permanentanchors. - (DoIndex): Sort pages. - (PrintPageList): Use ResolveId to get link class correct. - (AllPagesList): Don't sort list. - (DoMaintain): Sort pages. - -2003-11-10 Alex Schroeder - - * wiki.pl (InitVariables): Set $FullUrl to $ScriptName - if unset. - -2003-11-09 Alex Schroeder - - * wiki.pl (GetInterLink): Support %s in the interwiki link. - -2003-11-08 Alex Schroeder - - * wiki.pl (GetRcRss): Provide diff link only if the wiki can handle it. - (GetFilterForm): Use a table. - (RSS): Handle diff and history links. - (RSS): Simplified date handling a bit. - (Save): Only call UpdateDiffs when the new revision is > 1. - (PrintWikiToHTML): Not fatal if we can't get the main lock. - -2003-11-06 Alex Schroeder - - * wiki.pl (%NotifyJournalPage): New variable. - (PingTracker): Use it. - (RSS): Print interwiki link if provided and RSS feeds are being merged. - (RSS): RDF namespace taken into account. - (DoRc): Append filter form. - (RcHeader): Fix stickiness of showedit attribute, make days sticky. - (GetFilterForm): New. - -2003-11-05 Alex Schroeder - - * wiki.pl (WriteRcLog): Check whether $langref is empty before dereferencing. - -2003-11-03 Alex Schroeder - - * wiki.pl (PrintHtmlDiff): Call GetKeptDiff without lock - parameter. - (GetKeptDiff): No longer accept lock parameter. - (GetDiff): No longer accept lock parameter. Just use the diff - lock always. - (UpdateDiffs): No longer use lock parameter. - (Save): Make sure the old text is not encoded when it sent to the - diff. - (SmileyReplace): New class. Suggested by Björn Lindström. - (InitVariables): Set $FullUrl unless set by user. - (GetRcRss): No need to set $FullUrl anymore. - (GetFormStart): Use $FullUrl instead of $ScriptName. Suggested by - Björn Lindström to get URL rewriting to work. - (GetRedirectPage): No need to set $FullUrl anymore. Take - $UsePathInfo into account. Suggested by Björn Lindström. - (GetDiff): Removed debugging output. - (InitRequest): Use binmode on STDOUT for UTF-8 printing of RSS. - (RSS): No more encoding and decoding stuff. Rely on Perl 5.8 to - do this. - (DoShowVersion): Add more debugging information by using the - dependencies parameter. - (GetRedirectPage): Only use / when not using query syntax but - keyword syntax. - (ApplyRules): Use binmode to tell Perl that the RSS output can be - printed as UTF-8. Everywhere else we are just using raw bytes - ourselves. - (ReadFileOrDie): Use ReportError instead of die. - (WriteStringToFile): Dito. - (GetPermanentAnchor): Don't always write permanent anchors, and - don't double-encode page ids. - (DoRc): Remove timestamp. - (RcHeader): Remove computation of lastTs, and simplify the link to - "list later changes". - (ReportError): Don't cache errors. - (GetHeader): Use $Now if no caching specified. - (DoShowVisitors): Don't cache. - -2003-11-02 Alex Schroeder - - * wiki.pl (DoHistory): Extract revision numbers from the keep file - names. - (GetRefererFile): Changed name of referer files. - (ApplyRules): Permanent anchors are printed using a special span - element when $withanchors is not used (eg. when showing older - revisions of a page). - -2003-11-02 Alex Schroeder - - Major Rewrite! This version uses a completely new file format, - and it stores kept revisions in separate files instead of one big - keep file. Before upgrading to this revision or later, you MUST - run the upgrade-files.pl script. - -2003-10-28 Alex Schroeder - - * wiki.pl (Clean): Fix "eating of zero" bug. - (Dirty): Ditto. - (ApplyRules): Optimize regexp matches by working around /m, and - fix "eating of zero" bug. - (GetRcRss): Replace & with ; in URLs. - (ScriptLinkDiff): Ditto. - (DoPost): Optimize regexp matches by working around $'. - (Clean, ApplyRules, SmileyReplace): Fix the handling of '' and 0 - in Clean(). - -2003-10-27 Alex Schroeder - - * wiki.pl ($PageCluster): New variable. - (GetRc): Only cluster when $PageCluster is set. - (GetRcHtml): Only cluster when $PageCluster is set. - (GetCluster): Only cluster when $PageCluster is set. Main page - has to stand on its own on the first line. - -2003-10-25 Alex Schroeder - - * wiki.pl (RSS): Skip contributor if empty. - (RSS): Add ' -- ' between page link and summary. - (DoPost): Handle raw=2 edits again. - (GenerateAllPagesList): Don't sort intermediary list. - (ApplyRules): Use /o flag for many regular expressions that didn't - use it. - (GetPageLinks): Deleted. - (DoLinks): Allow raw output. - (PrintLinkList): exists=1 only works for raw output now, names - parameter removed, editlink param removed. - (GetFullLinkList): unique, inter, and sort param removed, these - settings are default, now. page and search param removed. exists - param handled in PrintLinkList for raw output only. empty param - removed, empty pages are not listed anymore. - -2003-10-24 Alex Schroeder - - * wiki.pl (Clean): Return nothing if empty block (due to - unsuccessful call to MyRules). - (RcHeader): Inherit rclang as well. - (GetRc): Inherit rclang as well. - (PrintFooter): Space after the username label. - (DoEdit): Space after the username label. - -2003-10-24 Alex Schroeder - - Major rewrite of rules -- if you use DirtyBlock in your config file, - then you will have to rewrite your code. - - * wiki.pl ($Fragment, @Blocks, @Flags): New globals used by ApplyRules. - (Clean): New. - (Dirty): New. - (ApplyRules): Major rewrite, use Clean and Dirty. - (DirtyBlock): Deleted. Any MyRules in config files must be rewritten. - -2003-10-21 Alex Schroeder - - * wiki.pl (InitLinkPatterns): $InterSitePattern may start with - non-ASCII letters as well. - -2003-10-20 Alex Schroeder - - * wiki.pl (NotModified): Protect use of Time::ParseDate with an - eval. - (InitVariables): Set $LastUpdate here, if it is not set already. - (BrowsePage): Move the remaining code from NotModified here. No - longer use Time::ParseDate. - (NotModified): Deleted. - (GetHttpHeader): Send $LastUpdate as Last-modified header. No - longer send an Expires header (no support for HTTP/1.0 caching). - -2003-10-19 Alex Schroeder - - * wiki.pl (InitVariables): Do not reset $IndexInit anymore. - (Upload): Don't test for $IndexInit before calling AllPagesList. - (BrowsePage): Return if NotModified(). - (NotModified): New. - ($LastUpdate): New. - (Save): Touch $IndexFile in any case, and set $LastUpdate. - (DoMaintain): Unset $IndexFile when cleaning the cache. - (DoMaintain): Redirect stdout only when required. - -2003-10-19 Alex Schroeder - - * wiki.pl (GetPageOrEditLink): ResolveId returns more data. - (ResolveId): Return more data. - (BrowseResolvedPage): Use it. - (GetHtmlHeader): Add CSS for a.alias. - - -2003-10-18 Alex Schroeder - - * wiki.pl (GetHtmlHeader): Added RSS autodiscovery. - (DoBrowseRequest): Renamed &MyAction to &MyActions. - (GetRcRss): Simplification. - (@MyMacros): New. - (DoPost): Apply macros. - -2003-10-17 Alex Schroeder - - * wiki.pl (ApplyRules): Add new ! rule. - (RcHeader): Add interface for all and showedit parameters to recent changes. - (RSS): Rewrote encoding handling (depends on Unicode::MapUTF8, now!). - Fixed keyhandling. - (WriteReferers): Unlink empty files. - -2003-10-16 Alex Schroeder - - * wiki.pl (RcHeader): Do not double rcclusteronly. - (DoBrowseRequest): Simplify call to DoPost. - (DoPost): Call FreeToNormal on the pagenamee, and check for validity here. - -2003-10-15 Alex Schroeder - - * wiki.pl (DoRc): Extract header printing into RcHeader. - (RcHeader): New. - (GetRc): Implement rcfilteronly parameter (ie. filtered recent - changes). - (DoSearch): Add link to filtered recent changes. - (RcHeader): Remember rc parameters when printing the header. - (BrowsePage): Fix detection of #REDIRECT bug. - (ScriptLink): Add title parameter. - (GetSearchLink): Add title parameter. - (GetHeader): Add title to header. - (GetPermanentAnchor): Add title to permanent anchor definition. - -2003-10-13 Alex Schroeder - - * wiki.pl (DoRc): Rewrite in a more compact call to map. - (GetRc): Rewrite in a more compact call to map. - (DoMaintain): Prune referrers. - (DeletePage): Rewrite in a more compact loop. - (ReadReferers): Call ExpireReferers. - (ExpireReferers): New function extracted from UpdateReferers. - (UpdateReferers): Don't expire referrers, since that happens upon - reading. - -2003-10-12 Alex Schroeder - - (SearchTitleAndBody): Support "and" and "or". - (PrintSearchResults): Support "and" and "or". - -2003-10-12 Alex Schroeder - - * wiki.pl ($SurgeProtectionTime, $SurgeProtectionViews): Doubled - defaults. - (InitVariables): $NotFoundPg also passed through FreeToNormal. - (ApplyRules): Removed rule for pointing to permanent - anchors [##like this]. - (GetPageOrEditLink): Call ResolveId. - (DoBrowseRequest): Call BrowseResolvedPage. - (DoBrowseRequest): If MyAction is defined, it is called instead of - doing the default error reporting. - (BrowseResolvedPage): New. - (ResolveId): New. - (BrowsePage): Simplified #REDIRECT handling. - (GetRedirectPage): Removed third parameter since it was unused. - (ReBrowsePage): Removed third parameter since it was unused. - (DoPost): Removed third parameter since it was unused. - (DoRandom): Removed extra parameters from call to ReBrowsePage. - (GetSearchLink): Take class and name parameters. - (GetHtmlHeader): Removed CSS rules for a.link from the default CSS. - (GetPermanentAnchor): Simplified. - (GetPermanentAnchor): Removed; use GetSearchLink for rendering. - (Cookie): Make the message more readable. - -2003-10-11 Alex Schroeder - - * wiki.pl (GetRcHtml): Don't show "(diff)" link for clusters. - Show the label "Cluster:" instead. - -2003-10-10 Alex Schroeder - - * wiki.pl (T): Simplified. - (BrowsePage): Print list of recent changes if parameter - rcclusteronly is set. - (DoRc): Print header if rcclusteronly is set. - (GetRc): Implement page clustering logic. - (GetRcHtml, GetRcText, GetRcRss): New parameter cluster. - (GetRcRss): Fix bug with less than 15 items in the history. - (GetOldPageParameters): Renamed to GetPageParameters. - (GetPageParameters, GetOldPageLink): New parameter cluster. - (Save): Determine page cluster when saving. - (GetCluster): New sub. - (WriteRcLog): New parameter cluster. - (DoSurgeProtection): Fix bug allowing unlock action if unable to - get visitor lock. - (DoRc): Adapt the header for clustered pages. - -2003-10-10 Alex Schroeder - - * wiki.pl (ExpireKeepFile, WriteStringToFile, AppendStringToFile): - Spelling: cant->cannot. - (DoPost): Use diff3 for conflict merging, and use a pre block for - the conflict itself. - (GetPermanentAnchor): New text. - (DoPost): Rewrote conflict handling again. - -2003-10-07 Alex Schroeder - - * wiki.pl (ValidId): Only avoid spaces in filenames when not $FreeLinks. - -2003-10-04 Alex Schroeder - - * wiki.pl (DoUnlock): Added merge back. - (DoEdit): Added oldtime back. - (DoPost): If new author and oldtime is given, attempt a merge. - Use a message if the merge fails. Use a message if conflict - markers are detected. - (MergeRevisions): Added back. - (MergeRevisions): Redirect stderr output of merge. - -2003-10-04 Alex Schroeder - - * wiki.pl (%CookieParameters): Added 'msg'. - (BrowsePage): Display the content of the 'msg' parameter, and - remove it from the cookie. - (Cookie): Changes to the 'msg' parameter only will not cause the - cookie to be shown. - (Init): Fixed typo in the error message for config pages. - (DoEdit): Less parameters. - (DoBrowseRequest): Call DoEdit with less parameters. - (DoBrowseRequest): Get rid of the oldtime parameter and use Save - instead (the name of the save button). Get rid of raw=2. - (PrintFooter): Get rid of oldtime and oldconflict parameters. - (DoUnlock): No longer consider the merge lock. - (DoEdit): Get rid of conflict handling. - (DoPost): Don't handle raw=2. Get rid of conflict handling. Just - use add the 'msg' parameter to the cookie if somebody else changed - the page in the last two minutes. - (CalcTimeSince): New, moved from DoShowVisitors. - (DoShowVisitors): Call CalcTimeSince. - (DoPost): Increase timespan to 10 minutes and call CalcTimeSince. - -2003-10-04 Alex Schroeder - - * wiki.pl (RequestLockDir): Added return back in for the case - where no error is reported. - (DoPost): Report errors if the browser does not provide enough - information. - -2003-10-03 Alex Schroeder - - * wiki.pl (RSS): Reinitialize the RSS parser and the HTTP user - agent for every URI. - (ApplyRules): No longer require quotes for RSS rule. - (RSS): Remove extra quotes around URIs. 'title' is no longer - guaranteed. Use 'guid' if available. But it back in a list. - (GetRcRss): Default is 15 not 14. - (RSS): Take care not to make the list larger! - -2003-10-02 Alex Schroeder - - * wiki.pl (ApplyRules): Allow uptional maxitems argument for RSS - feeds, and allow multiple RSS feeds to be merged. - (RSS): Implement it. - (ApplyRules): Allow any whitespace, not only spaces, inside rss, - include, and journal pseudo-tags. - (GetRcRss): Use rsslimit-1 instead of rsslimit. - -2003-09-30 Alex Schroeder - - * wiki.pl: Moved use CGI and use CGI::Carp to the top. - (%Lock): New variable. - (InitVariables): Set it. - (ReportError): Exit upon an error. Clean up locks behind us. - (RequestLockDir): Don't return after ReportError. Add current - lock to %Locks. - (ReleaseLockDir): Remove lock from %Locks. - (DoBannedReading): Deleted. - (DoWikiRequest): Don't use DoBannedReading, don't return after - ReportError. - (DoRollback): Don't return after ReportError. - (DiffHtmlMarkWords): No highlighting if more than 50 words. There - was a case where highlighting from 1 to 1739 caused a crash that - was not caught by fatalsToBrowser. - (UpdatePageVersion): Deleted. - (OpenPage): Don't use UpdatePageVersion, don't return after - ReportError. - (DoPost): Check for $UploadAllowed before accepting uploads. - (ExpireKeepFile, ValidIdOrDie): Don't return after ReportError. - (DoEdit, DoDownload, DoPost): Don't return after ReportError. - (DoPost): Catch empty string returned by MergeRevisions, eg. if - /usr/bin/merge is missing. - (WriteRcLog): Don't die; use ReportError instead. - (DoPageLock): Don't return after ValidIdOrDie. - (DoSurgeProtection): Don't exit after ReportError. - (RequestLockOrError): Renamed from RequestLock. - (PrintWikiToHTML): Renamed RequestLock. - (DoRollback): Renamed RequestLock, don't return. - (UserIsAdminOrError): Use ReportError. - (Replace): Renamed RequestLock, don't return. - (DoPost): Renamed RequestLock, don't return. - (DoPost): Don't call ReleaseLock before ReportError. - (DoMaintain): Renamed RequestLock, don't return. - (DoConvert): Renamed RequestLock, don't return. Don't return upon - failed UserIsAdminOrError. - (GetPermanentAnchor): Don't specify separate wait values. - (DeletePermanentAnchors): Don't specify separate wait values. - -2003-09-28 Alex Schroeder - - * wiki.pl (DoPost): Release lock on errors. - -2003-09-27 Alex Schroeder - - * wiki.pl (%CookieParameters): Added 'css'. - (GetHtmlHeader): Use it. - (DoHistory): Removed a br tag. - (GetHtmlHeader): Encoding multiple style sheets. - (PrintHtmlDiff): Fixed extent of the 'diff' div. - ($PrintedHeader): New variable. - (InitVariables): Set it. - (GetHttpHeader): Set it. - (ReportError): Use GetHttpHeader to print header. - (DoRollback): No error message required. - (ExpireKeepFile): Rewrote some conditions. - (ExpireKeepFile): Use ReportError instead of die. - (RequestLockDir): Use ReportError instead of die. - (PrintPageList): Rewrote lock handling. - (DoPost): Rewrote lock handling. - (DoMaintain): Rewrote lock handling. - (DoConvert): Rewrote lock handling. - (DoSurgeProtection): Rewrote lock handling. - (WriteReferers): Rewrote lock handling. - (GetPermanentAnchor): Rewrote lock handling. - (DeletePermanentAnchors): Rewrote lock handling. - (RequestLockDir): Print error at all times without relying on a - specific errno. - (SearchTitleAndBody): Skip uploaded files. - (PrintSearchResults): Show files with MIME-type if search string - starts with ^#FILE. - (ApplyRules, DoEdit): Fix #FILE handling. - (GetHtmlHeader): Change default StyleSheet for a.upload links. - -2003-09-26 Alex Schroeder - - * wiki.pl (ApplyRules): Removed the [image:foo] and the [link:foo] - rules again. - -2003-09-25 Alex Schroeder - - * wiki.pl (GetHttpHeader): Use Cache-Control header. - (DoDownload): If the revision requested is the same as the current - revision there is no need to open the keep file. - (DoPost): Do encoding in a separate eval block. - -2003-09-24 Alex Schroeder - - * wiki.pl (GetRcHtml): Uncommented rollback code. - (BrowsePage): Don't pass modification date to GetHeader. - (GetHeader): Don't accept modification date anymore. - (GetHttpHeader): Simplified handling of modification date. - (DoDownload): Only pass modification date to GetHttpHeader if no - revision. - -2003-09-23 Alex Schroeder - - * wiki.pl (ReportError): Simplified some. - (Init): New setup, make sure $MaxPost takes effect. - (DoIndex): Simplified some. - (PrintSearchResults): Remove subpage specific code. - (GetFullLinkList): Simplified some. - (BrowsePage): Removed 304 response, because the status of the - page also depends on the status of *other* pages. - (DoBrowseRequest): Removed parameters to BrowsePage. - -2003-09-23 Alex Schroeder - - * wiki.pl (ApplyRules): Accept two more parameters, with anchors, - and revision, use Upload for the picture rule, extend include rule - to accept a with-anchors instead of text parameter, two new rules - to handle uploaded files, take the new parameters into account. - (AddHtmlEnvironment): Simplified slightly. - (CloseHtmlEnvironments): Simplified slightly. - (PrintWikiToHTML): New parameter cacheok. - (Upload): New function. - (PrintCache): Use new parameters for ApplyRules. - (DoBrowseRequest): Pass new parameters to BrowsePage when - appropriate. - (BrowsePage): New parameter $cacheok, return 304 NOT MODIFIED if - appropriate, pass new parameter to GetHeader. - (GetHeader): New parameter timestamp, pass it on to GetHttpHeader. - (GetHttpHeader): New parameters modified and cacheok. - (GetHtmlHeader): New CSS to downloadable files. - (DoEdit): Reset edit box if it used to be a file, only provide - upload link if you are allowed to use it, no longer pass 'preview' - as a revision to PrintWikiToHTML. - (DoDownload): Return 304 NOT MODIFIED if appropriate, pass new - parametesr to GetHttpHeader. - (PrintAllPages): New parameter comments, to print link to comments - page if required. - (DoMaintain): New parameters for PrintWikiToHTML. - -2003-09-22 Alex Schroeder - - * wiki.pl ($UploadAllowed, @UploadTypes): New variables. - (InitRequest): Uploads are allowed, now. - (ApplyRules): New rule to render uploaded files as links or - images. - (DoBrowseRequest): New download action. - (GetHttpHeader): New parameter to offer 24h caching instead of the - default 10s. - (GetFormStart): New parameter for multipart/form-data required for - file uploads. - (OpenNewText): Removed newauthor field from the database. - (DoEdit, DoPost): Handle uploading of files -- large change! - (GetUpload, DoDownload): New functions. - (DoRollback, DoSearch): UserIsAdminOrError requires HTTP Headers - printed. - (Save): Replaced newAuthor parameter with upload parameter. No - diff and no language info is generated for uploads. - (DoMaintain): Removed forgotten provision for subpages. - (DeletePage): Deleting pages no longer edits the rclog. - (EditRecentChanges): Removed. - (EditRecentChangesFile): Removed. - -2003-09-21 Alex Schroeder - - * wiki.pl (OpenHtmlEnvironment): Fix closing of all tags when the - list type changes. - (GetPageOrEditLink): Change & to ; to separate parameters. - (GetEditLink, DoRc, GetRcRss): Ditto. - (GetHistoryLink, GetRCLink, GetPermanentAnchor): Ditto. - (DoBrowseRequest): New action 'rollback'. - (GetRcHtml): Show rollback link for administrators. - (RollbackPossible): New. - (DoRollback): New. - -2003-09-20 Alex Schroeder - - * wiki.pl (ApplyRules, OpenHtmlEnvironment): Rewrote list - handling. - (GetPageOrEditLink): & -> & - (GetEditLink): Ditto. - (DoRc): Ditto. - (GetPermanentAnchor): Ditto. - -2003-09-19 Alex Schroeder - - * wiki.pl (DoMaintain): Delete permanent anchors file and page - index when the cache is going to be regenerated. - - * test-markup.pl: Added tests for the cache refresh during - maintenance. - - * wiki.pl (SavePage): Added error for missing pagenames. - (DoSearch): Indicate the replacement text, too. - (Replace): Do replacement in an eval so that backreferences work. - (PrintWikiToHTML): Don't do locking if the calling context has - already locked the wiki. - (DoMaintain): When cache=1, refresh the cache, too. - - * test-markup.pl: Added tests for search and replace. - -2003-09-18 Alex Schroeder - - * wiki.pl (ApplyRules): Add optional text parameter to the include - markup. - -2003-09-13 Alex Schroeder - - * wiki.pl (GetHtmlHeader): Added CSS for div.journal h1. - -2003-09-12 Alex Schroeder - - * wiki.pl: Replaced many occurences of || with or. - (GetHtmlHeader): The index of all pages gets robot INDEX - tagged so that you can submit it to a search engine to spider your - entire site, together with your recent changes page. - (DoMaintain): Removed useless parameters. - (DeletePage): Removed useless parameters. - -2003-09-08 Alex Schroeder - - * wiki.pl: Many little CGI changes, changes of local - declarations (coding style), stripped some extra newlines. - ($WikiDescription): Can no longer be set in the config file. - (Init): Restructured. Call InitRequest at the beginning and - InitVariables at the end. - (InitRequest): Split into two, InitRequest and InitVariables. - (InitVariables): Set $WikiDescription here. - (DoLinks): No longer use pre tags. - (PrintLinkList): Add colon after page name if page names are - listed. - (DoRc): Add rcuseronly and rchostonly parameters. - (GetRc): Ditto. - -2003-09-06 Alex Schroeder - - * wiki.pl (GetSearchLink): Do not encode page title. - (GetHtmlHeader): Simplified default CSS since the validator seems - to be less picky about foreground and background colors. - (DoPost): In summaries with multiple lines, replace newline - characters with spaces. - -2003-09-04 Alex Schroeder - - * wiki.pl (InitLinkPatterns): Small refactoring. - (BrowsePage): Small refactoring. - (GetRc): Small refactoring. - (SaveKeepSection): Small refactoring. - (SearchTitleAndBody): Small refactoring. - (PrintSearchResults): Small refactoring. - (ScriptLinkDiff): Allow new parameter for the old revision to use. - (GetRcHtml): Removed rcchangehist parameter which had no effect. - If parameter all=1 is given, the diff link uses the new - ScriptLinkDiff parameter. - (PrintHtmlDiff): Simplified substantially. Removed author diffs. - Removed links to alternate diffs. - (GetCacheDiff): Removed author diffs. - (ExpireKeepFile): Removed author diffs. - (UpdateDiffs): Simplified substantially. Removed author diffs. - (GetSearchLink): Do not url-escape the plus sign used to replace - spaces. - -2003-09-03 Alex Schroeder - - * wiki.pl (DoEdit): Print the rule that matched when somebody is - banned. - (UserIsBanned): Bug fix; used $host twice. - -2003-09-01 Alex Schroeder - - * wiki.pl (DoMaintain): Don't change rclog files if not required. - (PrintFooter): Print username of last author. - -2003-08-29 Alex Schroeder - - * wiki.pl (GetRcHtml): Link to older revisions when using the all - parameter. - (GetRCLink): New function. - (PrintFooter): Add new item, using it. - (GetRCLink): Add showedit=1. - -2003-08-21 Alex Schroeder - - * wiki.pl (ApplyRules): Extend journal rule to allow reverse parameter. - (PrintJournal): New parameter to reverse journals. - -2003-08-19 Alex Schroeder - - * wiki.pl (GetReferers): Don't quote HTML in href to avoid having - & in the links. - -2003-08-17 Alex Schroeder - - * wiki.pl (ApplyRules): Fix ISBN rule. - -2003-08-16 Alex Schroeder - - * wiki.pl ($AllNetworkFiles): New variable. - (GetUrl): Allow file:/// if $AllNetworkFiles is set. - (ApplyRules): The RSS rule restores pos after calling the RSS sub. - ($UsePathInfo): New variable. - (ScriptLink): Use it. - (DoBrowseRequest): Use it. - (DoBrowseRequest): Make sure to ignore path_info if $UsePathInfo - is not set. - -2003-08-15 Alex Schroeder - - * wiki.pl (InitLinkPatterns): Simplify $UrlPattern and take more of - RFC 2396 into account. - (ApplyRules): ISBN rule now produces a dirty block. Cleaned up - many other rules to remove extra setting of $oldmatch. - -2003-08-15 Alex Schroeder - - * wiki.pl (DoBrowseRequest): Remove all the stuff up to and - including a slash, fixing the problems reported by Roland Gruen. - -2003-08-14 Alex Schroeder - - * wiki.pl (InitRequest): @HtmlTags are only initialized within - this sub in order to read the config files, first. - (ApplyRules): New rule for empty tags such as
. - -2003-08-02 Pierre Gaston - - * wiki.pl (ApplyRules): Pass $block, @blocks, and @flags to - MyRules so that dynamic rules can be written. - (DoShowVisitors): Fix typo. - -2003-06-30 Alex Schroeder - - * wiki.pl (RcTextItem): New. - (GetRcText): Switched to RSS 3.0. - -2003-06-22 Alex Schroeder - - * wiki.pl (DoHistory): Removed $canEdit. - (GetHistoryLine): Ditto. - (DoPassword): Removed some newlines. - (UserCanEdit): Rewrote more compactly. Thanks, Pierre, for suggesting it. - -2003-06-21 Alex Schroeder - - * wiki.pl (UrlEncode): Added more safe characters according to RFC - 2396. - (DoBrowseRequest): Use join(' ', $q->keywords) to deal with link - that include encoded spaces (%20) instead of underlines. - (DoBrowseRequest): Join using '_' instead of the space character. - (DoEdit): No longer limit the length of the summary. - -2003-06-20 Alex Schroeder - - * wiki.pl (PingTracker): Switched to blo.gs. - (DoPost): Pass $id along. - (UserCanEdit): UserIsEditor() overrides $EditAllowed=1. - - * test-markup.pl: Added another set of tests to tests - $BracketWiki. - -2003-06-18 Alex Schroeder - - * wiki.pl (GetPageOrEditLink): UrlEncode all page ids. - (GetPageLink, GetEditLink, DoRc, GetOldPageParameters): Ditto. - (GetSearchLink, ScriptLinkDiff, GetHistoryLink): Ditto. - (PrintFooter, PrintAllReferers): Ditto. - (GetPermanentAnchorLink, GetPermanentAnchor): Ditto. - (UserCanEdit): Take care of $EditAllowed==2. - -2003-06-17 Alex Schroeder - - * wiki.pl (InitRequest): ScriptName defaults to $q->url(). - (ScriptLink): Prefer syntax using path_info(). - (GetHtmlHeader): Removed ref. to path_info. - (PingWeblogs): Switched to blogrolling.com. - (DoPost): Rebrowse after pinging. - (PingWeblogs): Use & instead of ; to separate parameters. - (DoPingWeblogs): Pass the value of the id parameter or RCName to - DoPingWeblogs. - ($NotifyWeblogs): Renamed to $NotifyTracker. - (DoPingWeblogs): Renamed to DoPingTracker. - (PingWeblogs): Renamed to PingTracker. - -2003-06-15 Alex Schroeder - - * wiki.pl (GetRandomLink): Removed. - (ApplyRules): Include local pages using GetPageContent, if possible. - (GetRaw): Simplified. - (DoPost): Append comment it necessary. - (GetRcRss): To normal to free on page titles. - (DoPost): Bugfix: Do not rebrowse if $comment is set. - ($NewComment): New. - (PrintFooter): Use it. - (OpenNewText): Check whether $CommentsPrefix is set before matching. - (DoPost): Reorder and rewrite the comment handling code. - (PrintJournal): Default regexp now requires the name to start with the ISO date. - (PrintFooter): Add link to original if appropriate. - (DoPost): Use undefined default $comment to distinguish '' $comment from no $comment. - (DoBrowseRequest): Accept path_info as well as keywords. - (PingWeblogs): Use path_info for the URI. - -2003-06-15 Pierre Gaston , Alex Schroeder - - * wiki.pl ($CommentsPrefix): New. - (PrintFooter): Added easy submission code. - (OpenNewText): Only add if not commenting. - (DoPost): Extract comments from aftertext parameter. - -2003-06-13 Alex Schroeder - - * wiki.pl (PrintJournal): Use the subroutine JournalSort if - defined to sort pages. - - * test-markup.pl: Added Journal tests. - - * test-wrapper.pl: Use the new Init function. - - * test.pl ($UseConfig, $ConfigPage, $AdminPass): Set them. - - - * wiki.pl ($CollectingJournal): New variable. - (DoWikiRequest): Move all the init calls into Init. - (Init): Moved all the init calls from DoWikiRequest here. - (ApplyRules): Added journal rule. - (PrintJournal): New. - (GetGotoBar): Use GetPageLink. - (DoPrintAllPages): Use 0 parameter when calling PrintAllPages. - (PrintAllPages): Take extra parameter to say whether to link to - the pages or not. - (PrintJournal): Slice only if too large. - (%CookieParameters): Get rid of linkrandom. - (ScriptLinkTitle): Deleted. - (GetAuthorLink): Include code from ScriptLinkTitle and add - span.author. - (GetTextArea): Parameter editwide has no effect anymore. - -2003-06-12 Alex Schroeder - - * wiki.pl (PingWeblogs): Use the edited page instead of the recent - changes page for pinging weblogs.com. - -2003-06-11 Alex Schroeder - - * wiki.pl (InitRequest): Convert spaces to underscores for - $HomePage, $RCName, $BannedHosts, $InterMap, $RefererFilter, - $StyleSheetPage, and $ConfigPage. - (InitRequest): Set @UserGotoBarPages here instead of on startup. - (FreeToNormal): No more ucfirst. - (InitRequest): Removed test statement. - -2003-06-10 Alex Schroeder - - * wiki.pl (@UserGotoBarPages): Set to $HomePage and $RcName. - (GetGotoBar): Just use @UserGotoBarPages as-is. - (DoEdit): Get rid of $editCols, $editRows, and the editcols and - editrows parameters. Call GetTextArea without 'em. - (GetTextArea): Hardcode the rows and columns. Don't use the style - attribute. - (BrowsePage): The hr before referers is not added here. - (RefererTrack): Add the hr here. - (GetGotoBar): Use FreeToNormal on the link. - -2003-06-08 Alex Schroeder - - * wiki.pl (DoWikiRequest): Cannot use $q->p($@) because of some - bad interaction of $@ with CGI. The resulting "

$ConfigFile: - $@

" seems *very* brittle, so change with care. It was also - impossible to concat the result with the result of a call to - ScriptLink. - ($UseSubpage): Removed. - ($MainPage): Removed; was used for subpages. - ($FreeUpper): Removed. - (InitRequest): Removed $MainPage. - (InitLinkPatterns): Removed $UseSubpage. - (GetPageOrEditLink): Removed $MainPage. - (GetPageLink): Removed $MainPage. - (GetEditLink): Removed $MainPage. - (BrowsePage): Removed $MainPage. - (GetSearchLink): Removed $MainPage. - (GetGotoBar): Removed MainPage handling. - (ValidId): Removed $UseSubpage. - (GenerateAllPagesList): No longer do subpages. - (FreeToNormal): Removed $UseSubpage and $FreeUpper. - (DoEdit): Removed $MainPage. - -2003-06-05 Alex Schroeder - - * wiki.pl (DoWikiRequest): $UseConfig does not control - $ConfigPage. - (InitLinkPatterns): Moved FS settings into new sub. - (Init): New. - (InitRequest): Moved it around in the file. - (GetParam): Ditto. - (InitCookie): Ditto. No longer called from InitRequest but from - DoWikiRequest directly. - (GetHtmlHeader): Changed permanent_def to definition and - permanent_link to link. - (GetPermanentAnchor): Changed permanent_def to definition. - (GetPermanentAnchorLink): Changed permanent_link to link. - ($UseConfig): Only set when undefined, so that it can be set to 0 - in the wrapper. - ($AdminPass, $EditPass): Only set when undefined. - (InitRequest): Only set when undefined. - (GetRc): Removed pagecount. - (GetRcHtml): Removed pagecount and link changed name from (n - changed) to (history). - (GetRcText): Removed pagecount. - -2003-06-04 Alex Schroeder - - * wiki.pl ($ConfigPage): New. - (@LockOnCreation): Added it. - (DoWikiRequest): Use it, set $Message here for potential error. - (InitRequest): Don't set $Message here. - -2003-06-02 Alex Schroeder - - * wiki.pl (GetHtmlHeader): Fix bug that prevented URL from - appearing in the body class. - (@UserGotoBarPages): New. - (GetGotoBar): Use it. - (%CookieParameters): Added 'linkrandom'. - -2003-06-01 Alex Schroeder - - * wiki.pl ($StyleSheetPage): New, default to empty. - (@LockOnCreation): Added it. - (%CookieParameters): Added 'theme'. - (GetHtmlHeader): Use $StyleSheetPage if no $StyleSheet is given. - (GetHtmlHeader): Use the 'theme' parameter, if given. - -2003-05-31 Alex Schroeder - - * wiki.pl (%CookieParameters): New. - (Cookie): Use it to handle the previously inherited attributes. - (ScriptLink): No more inheriting of parameters. - (InheritParameter): Removed. - (InitCookie): Password parameter handling removed. - (GetHtmlHeader): Added CSS for permanent anchors. - (%CookieParameters): Use pwd instead of password. - -2003-05-30 Pierre Gaston - - * wiki.pl ($PermanentAnchorsFile, $PermanentAnchors) - (%PermanentAnchors, %PagePermanentAnchors): New. - (ApplyRules): New rules for global anchors. - (GetEditLink): Allow passing of class and name to the link. - (DoBrowseRequest): New anchor action. - (DoPost): Delete permanent anchors. - (DeletePage): Ditto. - (ReadPermanentAnchors): New. - (WritePermanentAnchors): New. - (GetPermanentAnchor): New. - (GetPermanentAnchorLink): New. - (DeletePermanentAnchors): New. - -2003-05-29 Alex Schroeder - - * wiki.pl ($RefererFilter): New. - (@LockOnCreation): Added it. - (UpdateReferers): Take it into account. - -2003-05-28 Alex Schroeder - - * wiki.pl ($InterFile): Deleted. - ($InterMap): New. - (GetSiteUrl): Use it. - (UserIsBanned): Fixed regexp. - (GetSiteUrl): Use $InterSitePattern. - (GetPageContent): New. - (GetSiteUrl, UserCanEdit): Use it. - (@LockOnCreation): New, defaults to ($BannedHosts, $InterMap). - (DoPost, Save): Use it. - -2003-05-27 Alex Schroeder - - * wiki.pl ($HttpCharset): Default to UTF-8. - -2003-05-26 Alex Schroeder - - * wiki.pl ($BanListFile): No more banned file. - ($BannedHosts): New variable for the page name. - (DoBrowseRequest): No more editbanned action and edit_ban parameter. - (UserIsBanned): Test now opens the $BannedHosts page. - (DoPost): Added test such that only admins can create the $BannedHosts file. - (Save): When saving the first revision of the $BannedHosts file, lock it. - (DoEditBanned): Deleted. - (DoUpdateBanned): Deleted. - - (ScriptLink): No more quoting of the action, this happens - automatically. - -2003-05-24 Alex Schroeder - - * wiki.pl (PrintAllReferers): New function. - (DoPrintAllReferers): New function. - (DoBrowseRequest): New refer action. - (GetReferers): Fixed spelling of Referer to Referrer. - - Lots of tiny changes -- moved from the &foo() notation to foo(). - Saved some lines by changing some if conditions around. - This patch is very big! - - Unified all lock requests and releases: - (RequestDiffLock, ReleaseDiffLock, RequestVisitorsLock) - (ReleaseVisitorsLock, RequestMergeLock, RequestMergeLock) - (ReleaseMergeLock, ReleaseRefererLock, RequestIndexLock) - (ReleaseIndexLock): Removed, changed callers. - -2003-05-23 Alex Schroeder - - * wiki.pl (GetRcHtml, GetRcText): Cleanup, saving some lines. - -2003-05-23 Alex Schroeder - - * wiki.pl ($ReplaceForm): New global variable. - (InitRequest): Set $ReplaceForm to 0. - (GetSearchForm): Add a replace item if $ReplaceForm is set. - (DoSearch): Call Replace when replacement is given. - (Replace): New function. - (DoPost): Removed $isEdit and $editTime. Use $Now instead. Moved - the saving code into Save. - (Save): New function. - - (WriteRcLog): Use $Now instead of $editTime. - (ReBrowsePage): Rename $isEdit to $minor. - (GetRc, GetRcHtml, GetRcRss, GetRcText, GetRedirectPage): Ditto. - (DoEdit, WriteRcLog, UpdateDiffs): Ditto. - -2003-05-22 Alex Schroeder - - * wiki.pl ($NotifyWeblogs): Add new variable, defaulting to 0. - (DoBrowseRequest): Added new ping action. - (DoPost): Call PingWeblogs for major edits if $NotifyWeblogs is set. - (PingWeblogs): New. - (DoPingWeblogs): New. - - (RFC): Include the RFCLink code. - (RFCLink): Removed. - (ISBN): Include the ISBNLink code. - (ISBNLink): Removed. - -2003-05-21 Alex Schroeder - - * wiki.pl (InitCookie): Get hash from cookie by splitting the - string on $FS1. - (Cookie): Use $FS1 to encode the value. - (PrintFooter): Call PrintMyContent with $id as the parameter. - -2003-05-18 Alex Schroeder - - * wiki.pl (GetHtmlHeader): Add a class to the body; the value of - the class is the URL of the script -- this way it can be - distinguished from all other sites in a user style sheet. - -2003-05-17 Alex Schroeder - - * wiki.pl ($NewText): Default value in the init section instead of - hidden in some subroutine. - (OpenNewText): Just use $NewText. - (DoPost): If oldrev is 1 and the new text is $NewText, then do not - save. - (BrowsePage): Use a flag for PrintWikiToHTML in order to prevent - the creation of new pages due to cache creation for the default - text. - (Cookie): Only set attributes if necessary. Report setting of - cookie via $Message. - ($SimpleLinks, $NonEnglish): Removed. - (InitLinkPatterns): Simplified the regexp generating code such - that the regexps used are clearer now, - (DoUnlock): Added extra level of parenthesis, thanks to Jason - Diamond - -2003-05-17 Pierre Gaston - - * wiki.pl: Many subroutines: Replaced print &GetFooter(...) with - &PrintFooter(...). - (GetFooter, PrintFooter): Renamed GetFooter to PrintFooter, and - changed concatenations to prints. - -2003-05-08 Alex Schroeder - - * wiki.pl (BrowsePage): Remove duplicate div class="refer". - -2003-05-02 Alex Schroeder - - * wiki.pl ($Debug, $Message): Renamed $Debug to $Message. - (InitRequest): Ditto. - (InitCookie): Ditto. - (BrowsePage): Print header later, set $Message for the messages - "Revision %s not available" and "Showing revision %s". - (BrowsePage): Added new div class="rc" for recent changes output. - (GetHeader): Changed header layout. Logo and GotoBar are now at - the top, followed by messages, page title, and content. Added div - and special days. - (GetGotoBar): Removed special days from the goto bar. - (GetFooterText, GetCommonFooter, GetMinimumFooter): Replaced by GetFooter. - (GetFooter): New, unified, added div. - (DoHistory): Use GetFooter with history parameter. - (DoUnlock): Use GetFooter. - (DoEdit): Use GetFooter with edit parameter. - (DoPassword, DoEdit, UserIsEditorOrError, UserIsAdminOrError) - (DoSearch, DoLinks, DoPrintAllPages, DoMaintain, DoMaintain) - (DoIndex, DoConvert, DoEditLock, DoPageLock, DoEditBanned) - (DoUpdateBanned, DoShowVersion, DoShowVisitors): Use GetFooter. - (BrowsePage): Print div class=refer only when there are any. - -2003-04-27 Alex Schroeder - - * wiki.pl (BrowsePage): Added a div class="content" around the - main part. - (RSS): Removed unnecessary CSS class for link within RSS divs. - (BrowsePage): Do not attempt to open keep file when the requested - revision is the current revision. Use div class="message" for - the little message about the revision being displayed. - (InheritParameter): New function. - (GetEditLink): Use it. - ($TopLinkBar): New option. - (GetHeader): Use it. - ($Monolithic): New variable. - (ScriptLink): Use it. - (DoBrowseRequest): New action 'all'. - (DoUnlock): Rewrote using a loop. - (GetFullLinkList): Rewrote variable declarations a bit. - (ReleaseRefererLock, RequestRefererLock): Avoid declaring a variable for just one call. - (DoPrintAllPages): New function. - (PrintAllPages): New function. - -2003-04-26 Alex Schroeder - - * wiki.pl ($FS0used): Deleted. - (DoBrowseRequest): Added convert action. - (GetKeepFile): Convenience function added. - (KeepFileName): Use it. - (ReadFile): Removed on-the-fly separator conversion. - (DoMaintain): Removed separator conversion of pages, no conversion - of rc entries, no conversion of $RcOldFile. - (DoConvert): New function. - (ConvertFile): New functtion. - (ReadRecentVisitors): Replaced newline and colon with field separators. - (WriteRecentVisitors): Ditto. - (GetReferers): Ditto. - (DoConvert): Typo. - (DoConvert): Typo. - (ConvertFile): Typo. - (DoConvert): Moved br printing. - (ConvertFile): Moved it here. - - This undoes all the on-the-fly conversion code, since that was - hard to maintain, and had a bug: Keep files of pages that had no - expiry pending did not get converted. - -2003-04-24 Alex Schroeder - - * wiki.pl (GetRcRss): No longer treat '*' special. - (GetRcText): No longer treat '*' special. - (GetHistoryLine): No longer treat '*' special. - (Cookie): No longer treat '*' special. - (InitCookie): No longer treat '*' special. - (GetRcHtml): No longer treat '*' special. - - * test-texi.pl: New file. - - * texi.pl: New file. - - * wiki.pl ($FreeUpper): Defaults to 0. - -2003-04-23 Alex Schroeder - - * wiki.pl (InitRequest): Set the query object charset as suggested - by Wei Ching Tang. - (GetHistoryLine): Do not anonymize IPs. - -2003-04-18 Alex Schroeder - - * wiki.pl (ApplyRules): Changed table rules. - -2003-04-17 Alex Schroeder - - * wiki.pl (InitLinkPatterns): Not only \xc0-\xff are non-english - letters: With UTF-8, \x80-\xff are. - (InitLinkPatterns): Fixed @ in UrlPattern. - (ApplyRules): Improved handling of space-only lines. - (ApplyRules): Convert \r\n to \n before anything else. - -2003-04-16 Alex Schroeder - - * test-markup.pl: More Interlink tests. - - * wiki.pl (InitLinkPatterns): Changed InterLinkPattern. - - * test-markup.pl: Added page-level tests. - - * wiki.pl (GetPageLinks): No longer call StripUrlPunct. - (StripUrlPunct): Removed. - (SplitUrlPunct): Removed. - (GetUrl): No longer call SplitUrlPunct, no longer return a list. - (PrintLinkList): GetUrl no longer returns a list. - (GetInterLink): No longer call SplitUrlPunct. - (ApplyRules): GetUrl no longer returns a list. - (InitLinkPatterns): Changed $UrlPattern. - (InitRequest): Reset $Debug on every invocation (for mod_perl!). - (InitCookie): Move password into the cookie, too, so that you can - set the password even when you are banned and banned cannot read. - (GetHeader): Add message at the top of the file when $Debug is set. - (DoPassword): Get rid of the default '*' password. - (RSS): Charsets are case-insensitive. - -2003-04-15 Alex Schroeder - - * wiki.pl (ApplyRules): Fixed handling of the last cell per row in - tables. - -2003-04-14 Alex Schroeder - - * wiki.pl (ApplyRules): If something looked like an Interlink but - was not, and the text contained more than one colon, backtracking - got confused. This bus is fixed. - (GetInterLink): Do not reuse $id, removed bogus if condition that - was always true. - (GetUrl): Do not reuse $url. - -2003-04-12 Alex Schroeder - - * wiki.pl ($HttpCharset): Default is 'ISO-8859-1' instead of empty. - (ApplyRules): Include and rss pseudo tags don't eat all following whitespace. - (RSS): Error message is on a paragraph of its own. - -2003-04-11 Alex Schroeder - - * wiki.pl (GetRcText): Added space by Pierre Gaston . - (GetCommonFooter): Shortcut when embedded by Pierre Gaston . - -2003-04-07 Alex Schroeder - - * wiki.pl (GetUrl): Unquote url, because the entire page text has - already been quoted. - -2003-04-06 Alex Schroeder - - * wiki.pl (RSS): Added new div for RSS inclusion. - (GetHtmlHeader): Added div.rss to the default stylesheet. - -2003-04-01 Alex Schroeder - - * wiki.pl ($RefererDir, $RefererTracking, $RefererTimeLimit) - ($RefererLimit, %Referers): New variables. - (ApplyRules): Use GetRaw instead of IncludeRaw - (GetRaw): Renamed from IncludeRaw and without HTML quoting. - (BrowsePage): Use more methods from the CGI module, call - RefererTrack if appropriate. - (DoRc): Use more methods from the CGI module. - (GetHtmlHeader): Added new div. - (ForceReleaseLock): Do globbing. - (RequestRefererLock): New function, creates locks per-page. - (ReleaseRefererLock): New function. - (DoUnlock): Requires globbing for refer locks. - (GetRefererFile): New. - (ReadReferers): New. - (GetReferers): New. - (UpdateReferers): New. - (RefererTrack): New. - (GetReferers): Quote HTML. - (GetInterLink): If no page follows the colon, this is no interlink. - (InitLinkPatterns): The InterLinkPattern may not contain an apostrophe ('). - -2003-03-28 Alex Schroeder - - * wiki.pl (DoMaintain): Important bugfix! - (InitLinkPatterns): Only set $FS and $FS0 if $FS is not set already. - (ReadFile): Check wether $FS0 is set before doing anything. - (DoMaintain): Ditto. - (UrlEncode): New function. - (GetValidatorLink): Use it. - - Tricky update! Changing the field separator from superscript 3 to - an ASCII control character! - - * wiki.pl (FS0, FS0used): New field separator for the old one, and - a new variable to tell us if the old separator has been used. - (InitLinkPatterns): The old separator, FS0, is set to \xb3 (the - well-known superscript 3), and the new separator, FS, is set to - \x1e, the ASCII control character RS, aka. RECORD SEPARATOR. - (ReadFile): Convert data read from files from FS0 to FS if - necessary when loading. - (DoMaintain): More translating, some HTML changes. Using the new - field separator will not work for keep files, since new changes - are just appended to the file. The keep files must be updated, - therefore. This happens during maintenance, so make sure - maintenance really gets run! This also updates the recent changes - log files (both old and current). - - (GetValidatorLink): Use $q->self_url for the validator link. - -2003-03-26 Alex Schroeder - - * wiki.pl (DoHistory): Removed extra . - -2003-03-25 Alex Schroeder - - * wiki.pl (GetHtmlHeader): New classes. - (PrintSearchResults): Removed output variable, print as we search - instead of only when searching is done, use CGI functions for HTML - tags, translation. - (PrintPageList): Use CGI functions for HTML tags. - (DoEdit): Added new div with class preview for the preview part. - -2003-03-24 Alex Schroeder - - * wiki.pl (GetCommonFooter): Use CGI functions for HTML tags. - (DoEdit): Ditto. - (DoEdit): Ditto, plus moved preview out of the form for CSS. - (DoPageLock): Ditto. - (DoPageLock): Ditto. - (DoEditBanned): Ditto, and added translations. - (DoUpdateBanned): Ditto, and added translations. - (DoShowVersion): Translation. - (DoShow): Translation. - -2003-03-22 Alex Schroeder - - * wiki.pl (GetValidatorLink): Link to CSS Validator. - (GetHtmlHeader): Added CSS foreground color to div tags where only - a background was defined, and added body and a links. - (UseSubpage): Default to 0 because GNU/Linux would always be a - link. - (BrowsePage): Pass $id along to OpenDefaultText. - (OpenDefaultText): If $id is the homepage, and the revision is 0, - attempt to display the README file instead. - (BrowsePage): Only use cache when revision not set. - (PrintWikiToHTML): Only save cachen when revision not set. - -2003-03-21 Alex Schroeder - - * wiki.pl (DataDir): Default value is the temp directory, unless - already set. - (ConfigFile): Don't set it, if it already has a value. - (GetValidatorLink): New subroutine. - (GetFooterText): Use it. - (ValidatorLink): New option. - (InitRequest): Use $q->script_name() instead of - "$ENV{SCRIPT_NAME}". - (ScriptLink): Quote HTML for actions. - (GetMinimumFooter): Move validator link from GetFooterText to - GetMinimumFooter. - - * wiki.pl (ScriptLink): Inherit embed and toplinkbar parameters to - local links. - (ISBNLink): Make URLs to shops translatable. - (GetGotoBar): Add search button. diff --git a/css/beige.css b/css/beige.css index 3be5d7c1..ea92d053 100644 --- a/css/beige.css +++ b/css/beige.css @@ -16,6 +16,23 @@ body { font-size:12pt; } } + +/* iPhone */ + +@media only screen and (max-device-width: 480px) { + body { font-size: 200%; } +} + +/* iPad */ + +@media only screen and (min-device-width: 481px) and (max-device-width: 900px) { + body { font-size: 150%; } + textarea,input { font-size: 100%; } + img { max-width: 550px !important; } +} + + + div.browse { min-height: 3em; } @@ -41,6 +58,14 @@ div.commentshown { } div.commenthidden { display:none; } div.commentshown { display:block; } +/* comment pages with username, homepage, and email subscription */ +.comment span { display: block; } +.comment span label { + display: inline-block; width: 10em; +} +input#mail, input#homepage, input#username { + display: inline-block; width: 20em; +} h1 { font-weight: bold; @@ -63,9 +88,10 @@ h2 { font-weight: bold; color: white; background-color: #000; - width: 98%; + /* width: 98%; */ font-size: 110%; padding: 0.2em; + clear: both; } a:link { font-weight: bold; @@ -89,21 +115,47 @@ div.image { display: inline; margin: 1em; font-size: 90%; text-align: center; } .right { float: right; margin-left: 1em; } div.right .right { float: none; } div.left .left { float: none; } +.caption { padding: 0 1em; } +.license { font-size: small; } +.aside { + font-size: small; + width: 30%; + float: right; + margin-left: 1em; + margin-bottom: 1em; + padding-left: 1em; +} +.aside img.smiley { height: 1em; } +.narrow { + width: 70%; +} a img { border: 1px solid #333; } .fit img { width: 80%; text-align: center; margin: 2em 8%; } .half img { width: 50%; height: 50%; text-align: center; margin: 2em 8%; } .noborder img { border: none; } +.twenty img { max-width: 20em; } em.underline { font-weight: bold; } .bar a { padding-right: 1em; } textarea { width:100%; } div.edit { padding-right: 1em; } -img.logo { float: right; clear: right; border-style:none; } +img.logo { + float: right; + clear: right; + border-style:none; + margin-left: 1em; + margin-bottom: 1ex; + border: 1px solid black; +} div.diff { padding-left:5%; padding-right:5%; } div.old { background-color:#FFFFAF; } div.new { background-color:#CFFFCF; } -div.message { background-color:#FEE; } +/* div.message { background-color:#FEE; } */ +div.message { + background-color: inherit; + font-size: smaller; +} table.history { border-style:none; } td.history { border-style:none; } span.result { font-size:larger; } @@ -132,6 +184,10 @@ table.user { border-top: 1px solid black; border-bottom: 1px solid black; } +div.aside table.user { + margin: 1em 0; + padding: 0; +} table.user td, table.user th { border-style: none; padding:5px 10px; @@ -153,6 +209,12 @@ table.user td.mark { background-color:yellow; } } } +/* Help */ + +.edit table { + font-size: small; +} + /* Calendar */ div.month { margin:0; padding:0; font-size:x-small; float:right; } div.content div.month { float:none; } @@ -164,7 +226,7 @@ div.month span.title a { font: inherit; } div.month a.local { font-weight: bold; } div.month a.local:link { color: #562; } div.month a.local:visited { color: #542; } -div.month a.today { font-weight: bold; color: #fff; } +div.month a.today { background-color: #faa; } div.month span.title a.local { font-weight: normal; color: #842; } @media print { div.month { display: none; } diff --git a/imap2wiki b/imap2wiki new file mode 100755 index 00000000..774eb0e4 --- /dev/null +++ b/imap2wiki @@ -0,0 +1,152 @@ +#!/usr/bin/perl -w +# +# Copyright (C) 2012 Alex Schroeder +# +# This program is free software: you can redistribute it and/or modify it under +# the terms of the GNU General Public License as published by the Free Software +# Foundation, either version 3 of the License, or (at your option) any later +# version. +# +# This program is distributed in the hope that it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS +# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License along with +# this program. If not, see . + +use strict; +use Getopt::Std; +use LWP::UserAgent; +use Net::IMAP::Simple; +use Email::Simple; +use Email::MIME; +use IO::Socket::SSL; # fail unless this is available + +my $usage = "Usage:\n" + . " imap2wiki TARGET SERVER PORT FROM TO MAIL_USER MAIL_PASSWORD \\\n" + . " MAIL_USER MAIL_PASSWORD WIKI_USER [WIKI_PASSWORD]\n\n" + . "TARGET is the base URL for the wiki.\n" + . "SERVER is the IMAP server you are checking.\n" + . "PORT is the port you are using.\n" + . " (We assume that you must use SSL.)\n" + . "FROM is sender you are looking for.\n" + . "TO is recipient you are looking for.\n" + . "MAIL_USER is the username to connect to the mail server.\n" + . "MAIL_PASSWORD is the password to use for the mail server.\n" + . "WIKI_USER is the username to use for the edit.\n" + . "WIKI_PASSWORD is the password to use if required.\n" + . "Example:\n" + . " imap2wiki http://www.emacswiki.org/cgi-bin/test imap.gmail.com 993 \\\n" + . " kensanata\@gmail.com kensanata+post\@gmail.com \\\n" + . " kensanata\@gmail.com '*secret*' \\\n" + . " Alex test\n\n"; + +sub UrlEncode { + my $str = shift; + return '' unless $str; + my @letters = split(//, $str); + my @safe = ('a' .. 'z', 'A' .. 'Z', '0' .. '9', '-', '_', '.', '!', + '~', '*', "'", '(', ')', '#'); + foreach my $letter (@letters) { + my $pattern = quotemeta($letter); + if (not grep(/$pattern/, @safe)) { + $letter = sprintf("%%%02x", ord($letter)); + } + } + return join('', @letters); +} + +sub GetRaw { + my ($uri) = @_; + my $ua = LWP::UserAgent->new; + my $response = $ua->get($uri); + return $response->content if $response->is_success; +} + +sub PostRaw { + my ($uri, $id, $data, $user, $pwd) = @_; + my $ua = LWP::UserAgent->new; + my $summary; + if ($data =~ /^#FILE (\S+) ?(\S+)?\n/) { + $summary = 'file upload'; + } + my $response = $ua->post($uri, {title=>$id, text=>$data, raw=>1, + summary=>$summary, + username=>$user, pwd=>$pwd}); + warn "POST $id failed: " . $response->status_line . "\n" + unless $response->is_success; + return $response->is_success; +} + +sub post { + my ($target, $page, $data, $user, $pwd) = @_; + $page =~ s/ /_/g; + $page = UrlEncode ($page); + return PostRaw($target, $page, $data, $user, $pwd); +} + +sub main { + my ($target, $server, $port, $from, $to, + $mail_user, $mail_pwd, $wiki_user, $wiki_pwd) = @ARGV; + # all parameters except the wiki password are mandatory + for my $arg ($target, $server, $port, $from, $to, + $mail_user, $mail_pwd, $wiki_user) { + die $usage unless $arg; + } + + my $imap = Net::IMAP::Simple->new($server, port=>$port, use_ssl=>1 ) + or die "Unable to connect to IMAP: $Net::IMAP::Simple::errstr\n"; + + if (not $imap->login($mail_user, $mail_pwd)) { + print STDERR "Login failed: " . $imap->errstr . "\n"; + exit(64); + } + + my %result; + my $rfrom = quotemeta($from); + my $rto = quotemeta($to); + + # go through the inbox and look for appropriate mails + my $num = $imap->select('INBOX'); + for (my $i = 1; $i <= $num; $i++) { + # looking at headers only + my $email = Email::Simple->new(join '', @{ $imap->top($i) } ); + if ($email->header("From") =~ /$rfrom/io + and $email->header("To") =~ /$rto/io) { + my $subject = $email->header('Subject'); + my $n = 1; + # fetch the body and parse the MIME stuff + $email = Email::MIME->new(join '', @{ $imap->get($i) } ); + + $email->walk_parts(sub { + my ($part) = @_; + return if $part->subparts; # multipart + + my ($pagename, $data); + + warn $part->content_type; + + if ($part->content_type =~ m[text/plain]i) { + ($pagename, $data) = ($subject, $part->body); + } elsif ($part->content_type =~ m!(image/[a-z]+)!i) { + ($pagename, $data) = ($subject . " " . $n++, + "#FILE " . $1 . "\n" . $part->body_raw); + } + + if ($pagename and $data) { + warn "Posting $pagename\n"; + post($target, $pagename, $data, $wiki_user, $wiki_pwd) + || die "Posting aborted, INBOX not expunged\n"; + } + } ); + + # mark as deleted + $imap->delete($i); + } + } + + # expunge messages that are marked for deletion + $imap->quit; +} + +main(); diff --git a/wiki.pl b/wiki.pl index 951be1be..f3ff3595 100755 --- a/wiki.pl +++ b/wiki.pl @@ -381,7 +381,7 @@ sub SetParam { } sub InitLinkPatterns { - my ($UpperLetter, $LowerLetter, $AnyLetter, $WikiWord, $QDelim); + my ($WikiWord, $QDelim); $QDelim = '(?:"")?'; # Optional quote delimiter (removed from the output) $WikiWord = '[A-Z]+[a-z\x80-\xff]+[A-Z][A-Za-z\x80-\xff]*'; $LinkPattern = "($WikiWord)$QDelim"; @@ -2717,7 +2717,7 @@ sub GetKeptRevision { # Call after OpenPage } sub GetPageFile { - my ($id, $revision) = @_; + my ($id) = @_; return $PageDir . '/' . GetPageDirectory($id) . "/$id.pg"; }