Commit Graph

1327 Commits

Author SHA1 Message Date
Alex Schroeder
ebf4f74ed2 (DownloadSupportRule): Rewrite to fix a bug
introduced by the change to $FreeLinkPattern 2008-08-05.
2008-12-17 13:30:28 +00:00
Alex Schroeder
806556dea4 (CreoleInit): Don't change $FreeLinkPattern as
that intereferes with bbcode.pl.
2008-12-16 01:17:43 +00:00
Alex Schroeder
b2416bf24b Whitespace 2008-12-16 01:16:59 +00:00
Alex Schroeder
4c4388d65b (ImageGetInternalUrl): Call FreeToNormal
on the argument.
2008-12-14 23:59:12 +00:00
Alex Schroeder
fc3a893fd6 (NewCrossbarApplyRules): Do not apply the rule if we're currently
rendering the sidebar.
2008-12-12 22:44:39 +00:00
Alex Schroeder
6dada209d9 (NewCrossbarApplyRules): Do not apply the
rule if the text is an uploaded file.
2008-12-12 22:22:02 +00:00
Alex Schroeder
baded06cd1 *** empty log message *** 2008-12-12 13:34:41 +00:00
Alex Schroeder
b44202933a (TocAfterApplyRule): Removed as a rule to be on
@MyAfterApplyRules.
(NewTocApplyRules): Moved code here and rewrote such as not to use
references where necessary.
2008-12-08 01:13:16 +00:00
Alex Schroeder
7afc148e4f (CrossbarBeforeApplyRule): Removed as a rule
to be on @MyBeforeApplyRules.
(NewCrossbarApplyRules): Moved code here.
2008-12-08 01:11:53 +00:00
Alex Schroeder
949abb412d ($GoogleCustomSearchEngine): New option.
(GetSearchLink): Replaced.
(NewGoogleCustomGetSearchLink): Hook into GetSearchLink and use
ScriptLink instead of specifying the HTML directly.
2008-12-06 01:28:39 +00:00
Alex Schroeder
96d9b888e5 * 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 "<toc...>"
markup for a Wiki page: all subsequent "<toc...>" 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-12-03 11:46:48 +00:00
Alex Schroeder
7634327ab4 (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-02 23:45:41 +00:00
Alex Schroeder
2f75bbac87 * 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-27 06:00:25 +00:00
Alex Schroeder
60cde0e507 * modules/forms.pl (FormsRule): Removed Sidebar-specific hack.
Thanks, Alex!
2008-11-25 09:59:32 +00:00
Alex Schroeder
219eac8c38 Added greek. 2008-11-24 18:09:42 +00:00
Alex Schroeder
76c0699102 New 2008-11-24 17:40:20 +00:00
Alex Schroeder
67e80f3960 * modules/toc.pl (TocRule): Corrected a minor issue re: integration
with the Sidebar and Crossbar modules.
2008-11-24 03:48:17 +00:00
Alex Schroeder
57b903d650 * modules/crossbar.pl (UserCanEditCrossbar): Deleted.
(CrossbarInit): Permit non-administrators to edit crossbar pages.
(GetEditFormCrossbar): Added a message describing crossbar usage.
2008-11-24 03:39:14 +00:00
Alex Schroeder
cc8c6f4619 * 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 01:34:48 +00:00
Alex Schroeder
bbfdf96d5b * 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
such as "toc.pl" and "footnotes.pl". 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-23 22:13:29 +00:00
Alex Schroeder
c8fe20a9ae * 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-20 11:45:45 +00:00
Alex Schroeder
dca2a6af50 * wiki.pl (PrintWikiToHTML): Slightly reordered function calls,
so as to optimize a few edge cases.
2008-11-16 01:00:04 +00:00
Alex Schroeder
b6fda33eb8 * wiki.pl (RegisterBlockLevelElement): Renamed to
SetHtmlEnvironmentContainer (and changed in every other module,
where called).
2008-11-15 21:24:32 +00:00
Alex Schroeder
52fbc24f65 * 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 12:53:25 +00:00
Alex Schroeder
d1f0e9ebe4 * 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 12:48:13 +00:00
Alex Schroeder
9bf6fc8ac9 * modules/creole.pl (CreoleListAndNewLineRule): Corrected a regression
accidentally introduced by my last commit! Yay.
2008-11-11 23:58:24 +00:00
Alex Schroeder
50e96cad8f * 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 04:50:46 +00:00
Alex Schroeder
6a9f180e54 * 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-10 15:53:22 +00:00
Alex Schroeder
d859112b3a * 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-06 10:11:02 +00:00
Alex Schroeder
1bddaf7b93 * 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-05 10:11:48 +00:00
Alex Schroeder
e4f3e34e0e * 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-05 09:42:05 +00:00
Alex Schroeder
03de875729 * modules/toc.pl ($TocIsConvertingH1TagsToH2Tags): Renamed from
"$TocConvertH1TagsToH2Tags".
2008-11-05 06:19:18 +00:00
Alex Schroeder
9e1905b9dd * modules/toc.pl ($TocConvertH1TagsToH2Tags): New option.
(TocRule): Use the new option; principally, this permits Wiki
administrators to prevent this module from converting
"<h1>...</h1>" tags "<h2>...</h2>" tags.
2008-11-05 03:30:04 +00:00
Alex Schroeder
164d0aee65 *** empty log message *** 2008-10-29 15:55:41 +00:00
Alex Schroeder
a1a19d956e (DoTranslationLink): Add more explanation.
($TranslationLinkHelpPage): New option.
2008-10-29 15:55:25 +00:00
Alex Schroeder
dd87c2c49e (DoTranslationLink): Report a lot
more errors.
2008-10-29 00:54:43 +00:00
Alex Schroeder
0f384a1f57 *** empty log message *** 2008-10-28 21:47:56 +00:00
Alex Schroeder
134825965b (DoTranslationLink): Added better summary. 2008-10-28 21:32:33 +00:00
Alex Schroeder
bd1617dadb (TranslationLinkNewGetFooterLinks):
Fix links generated with %TranslationLinkTarget.
2008-10-28 20:17:21 +00:00
Alex Schroeder
d4cb7c2c91 New. 2008-10-28 19:57:51 +00:00
Alex Schroeder
381af5081d (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-26 11:27:21 +00:00
Alex Schroeder
347abd8dba (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-25 16:31:26 +00:00
Alex Schroeder
a65439b12e Added some POD 2008-10-25 13:06:50 +00:00
Alex Schroeder
dac1045f1e (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-24 14:26:21 +00:00
Alex Schroeder
7ccd891272 * modules/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-24 04:34:09 +00:00
Alex Schroeder
c37e7fb1f7 (NewNearLinksResolveId): Make sure that
comment links are "forbidden" -- they never redirect to a remote
place.
2008-10-22 14:01:05 +00:00
Alex Schroeder
66fc9cd625 * 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-19 01:51:42 +00:00
Alex Schroeder
1a0ad7bec3 Copy the $BannedContent variable. 2008-10-16 04:53:17 +00:00
Alex Schroeder
53455bb4b9 Whitespace 2008-10-15 22:18:48 +00:00
Alex Schroeder
eeae358b82 (LogBannedContent): Don't remap
BannedContent again.
2008-10-15 22:17:47 +00:00