| Commit message (Expand) | Author | Age |
* | minor opt | Joey Hess | 2013-11-16 |
* | guard against lastrev being "" just in case | Joey Hess | 2013-11-16 |
* | Added only_committed_changes config setting, which speeds up wiki refresh by ... | Joey Hess | 2013-11-16 |
* | optimize for common case where list is not changed | Joey Hess | 2013-07-10 |
* | Fix crash that could occur when a needsbuild hook returned a file that does n...•••I saw this happen with calendar, when it wanted to update a page, that
had a calendar on it, but the page had just been deleted. This caused
srcfile_stat to crash.
| Joey Hess | 2013-07-10 |
* | prune: do not prune beyond an optional base directory, and add a test•••Previously, prune("wiki/srcdir/sandbox/test.mdwn") could delete srcdir
or even wiki, if they happened to be empty. This is rarely what you
want: there's usually some base directory (destdir, srcdir, transientdir
or another subdirectory of wikistatedir) beyond which you do not want to
delete.
| Simon McVittie | 2012-04-07 |
* | uniq list for changed hook•••There can be dups when eg, adding a new internal page, apparently.
| Joey Hess | 2012-04-02 |
* | fix hook name | Joey Hess | 2012-03-28 |
* | Added a "changes" hook. Renamed the "change" hook to "rendered", but•••the old hook name is called for now for back-compat.
| Joey Hess | 2012-03-28 |
* | Add a build_affected hook so trail doesn't have to inject•••In principle, building any pages affected by links, backlinks etc.
could work the same way.
| Simon McVittie | 2012-03-18 |
* | oops | Joey Hess | 2011-07-26 |
* | Fix typo in Danish translation of shortcuts page that caused expoentional reg...•••Complex regular subexpression recursion limit (32766) exceeded at
/home/joey/src/ikiwiki/IkiWiki.pm line 1532.
This doesn't fix the blowup potential itself, it just fixes the typo. :)
A sample page that causes the blowup is attached below for future
reference. The first directive is not terminated. Contributing are the
additional quotes around the following directives, which mean that they can
each be processed as a parameter to the first directive, or as an
individual directive. In resolving this ambiguity, the regexp blows up.
Happily, perl contains the explosion , so I don't think there is an exploit
here.
"[[!shortcut name=wiktionary url=\"https://secure.wikimedia.org/wiktionary/en/"
"[[!shortcut name=debss url=\"http://snapshot.debian.net/package/%s\"]]"
"[[!shortcut name=debwiki url=\"http://wiki.debian.org/%s\"]]"
"[[!shortcut name=fdobug url=\"https://bugs.freedesktop.org/show_bug.cgi?id=%s\" desc=\"freedesktop.org bug #%s\"]]"
"[[!shortcut name=fdolist url=\"http://lists.freedesktop.org/mailman/listinfo/%s\" desc=\"%s@lists.freedesktop.org\"]]"
"[[!shortcut name=cpanrt url=\"https://rt.cpan.org/Ticket/Display.html?id=%s\" desc=\"CPAN RT#%s\"]]"
"[[!shortcut name=novellbug url=\"https://bugzilla.novell.com/show_bug.cgi?id=%s\" desc=\"bug %s\"]]"
"[[!shortcut name=fdolist url=\"http://lists.freedesktop.org/mailman/listinfo/%s\" desc=\"%s@lists.freedesktop.org\"]]"
"[[!shortcut name=gnomebug url=\"http://bugzilla.gnome.org/show_bug.cgi?id=%s\" desc=\"GNOME bug #%s\"]]"
"[[!shortcut name=linuxbug url=\"http://bugzilla.kernel.org/show_bug.cgi?id=%s\" desc=\"Linux bug #%s\"]]"
"[[!shortcut name=gmane url=\"http://dir.gmane.org/gmane.%s\" desc=\"gmane.%s\"]]"
"[[!shortcut name=gmanemsg url=\"http://mid.gmane.org/%s\"]]"
"[[!shortcut name=cpan url=\"http://search.cpan.org/search?mode=dist&query=%s\"]]"
"[[!shortcut name=ctan url=\"http://tug.ctan.org/cgi-bin/ctanPackageInformation.py?id=%s\"]]"
"[[!shortcut name=hoogle url=\"http://haskell.org/hoogle/?q=%s\"]]"
"[[!shortcut name=iki url=\"http://ikiwiki.info/%S/\"]]"
"[[!shortcut name=ljuser url=\"http://%s.livejournal.com/\"]]"
"[[!shortcut name=rfc url=\"http://www.ietf.org/rfc/rfc%s.txt\" desc=\"RFC %s\"]]"
"[[!shortcut name=c2 url=\"http://c2.com/cgi/wiki?%s\"]]"
"[[!shortcut name=meatballwiki url=\"http://www.usemod.com/cgi-bin/mb.pl?%s\"]]"
"[[!shortcut name=emacswiki url=\"http://www.emacswiki.org/cgi-bin/wiki/%s\"]]"
"[[!shortcut name=haskellwiki url=\"http://haskell.org/haskellwiki/%s\"]]"
"[[!shortcut name=dict url=\"http://www.dict.org/bin/Dict?Form=Dict1&Strategy=*&Database=*&Query=%s\"]]"
"[[!shortcut name=imdb url=\"http://imdb.com/find?q=%s\"]]"
"[[!shortcut name=gpg url=\"http://pgpkeys.mit.edu:11371/pks/lookup?op=vindex&exact=on&search=0x%s\"]]"
"[[!shortcut name=perldoc url=\"http://perldoc.perl.org/search.html?q=%s\"]]"
"[[!shortcut name=whois url=\"http://reports.internic.net/cgi/whois?whois_nic=%s&type=domain\"]]"
"[[!shortcut name=cve url=\"http://cve.mitre.org/cgi-bin/cvename.cgi?name=%s\"]]"
"[[!shortcut name=cia url=\"http://cia.vc/stats/project/%s\"]]"
"[[!shortcut name=ciauser url=\"http://cia.vc/stats/user/%s\"]]"
"[[!shortcut name=flickr url=\"http://www.flickr.com/photos/%s\"]]"
"[[!shortcut name=man url=\"http://linux.die.net/man/%s\"]]"
"[[!shortcut name=ohloh url=\"http://www.ohloh.net/projects/%s\"]]"
"[[!shortcut name=cpanrt url=\"https://rt.cpan.org/Ticket/Display.html?id=%s\" desc=\"CPAN RT#%s\"]]"
"[[!shortcut name=novellbug url=\"https://bugzilla.novell.com/show_bug.cgi?id=%s\" desc=\"bug %s\"]]"
| Joey Hess | 2011-07-26 |
* | IkiWiki::Render: run scan hooks for internal pages, as well as preprocessing | Simon McVittie | 2011-06-04 |
* | Avoid escaping / characters in filenames when building the cgiurl, as this co... | Joey Hess | 2011-03-21 |
* | Fix escaping of filenames in historyurl. (Thanks, aj) | Joey Hess | 2010-11-16 |
* | Pass array of names of files that have been deleted to needsbuild hook as sec... | Joey Hess | 2010-09-10 |
* | needsbuild hook interface changed; the hooks should now return the modified a... | Joey Hess | 2010-09-07 |
* | Run the preprocess hooks in scan mode *before* the scan hooks. | intrigeri | 2010-08-02 |
* | Revert "Added a rescan hook."•••This reverts commit 25447bccae0439ea56da7a788482a4807c7c459d.
| intrigeri | 2010-08-02 |
* | Added a rescan hook.•••This is needed for the po plugin vs. e.g. meta titles.
In order to get rid of the ugly "rebuilding all pages to fix meta titles" thing,
Joey suggested to make "po, at scan time, re-run the scan hooks, passing them
modified content (either converted from po to mdwn or with the escaped stuff
cheaply de-escaped)". This would unfortunately not work, as the meta plugin
gathers its data using the preprocess hook in scan mode: it would overwrite with
buggy data the correct data we would have forced it to gather in po's scan hook.
We then need a hook that runs *after* the preprocess hook has been run in scan
mode, but *before* any page rendering is started. Hence this one.
| intrigeri | 2010-07-30 |
* | rcs_getctime and rcs_getmtime take relative filenames•••There was some confusion about whether the filename was
relative to srcdir or not. Some test cases, and the bzr
plugin assumed it was relative to the srcdir. Most everything else
assumed it was absolute.
Changed it to relative, for consistency with the rest
of the rcs_ functions.
| Joey Hess | 2010-06-23 |
* | avoid dying if cannot chdir to an underlaydir | Joey Hess | 2010-06-17 |
* | Make --gettime be honored after initial setup.•••Bugfix in passing: New files not treated as such when no rcs is used.
| Joey Hess | 2010-06-15 |
* | fix other cases of unicode mixing issue•••and fix underlaydir override attack guard when srcdir is non-absolute
| Joey Hess | 2010-06-15 |
|\ |
|
| * | Fix issues with combining unicode srcdirs and source files.•••A short story:
Once there was a unicode string, let's call him Srcdir.
Along came a crufy old File::Find, who went through a tree and pasted each
of the leaves in turn onto Srcdir. But this 90's relic didn't decode the
leaves -- despite some of them using unicode! Poor Srcdir, with these
leaves stuck on him, tainted them with his nice unicode-ness. They didn't
look like leaves at all, but instead garbage.
(In other words, perl's unicode support sucks mightily, and drives
us all to drink and bad storytelling. But we knew that..)
So, srcdir is not normally flagged as unicode, because typically it's pure
ascii. And in that case, things work ok; File::Find finds filenames, which
are not yet decoded to unicode, and appends them to the srcdir, and then
decode_utf8 happily converts the whole thing.
But, if the srcdir does contain utf8 characters, that breaks. Or, if a Yaml
setup file is used, Yaml::Syck's implicitunicode sets the unicode flag of
*all* strings, even those containing only ascii. In either case, srcdir
has the unicode flag set; a non-decoded filename is appended, and the flag
remains set; and decode_utf8 sees the flag and does *nothing*. The result
is that the filename is not decoded, so looks valid and gets skipped.
File::Find only sticks the directory and filenames together in no_chdir
mode .. but we need that mode for security. In order to retain the
security, and avoid the problem, I made it not pass srcdir to File::Find.
Instead, chdir to the srcdir, and pass ".". Since "." is ascii, the problem
is avoided.
Note that chdir srcdir is safe because we check for symlinks in the srcdir
path.
Note that it takes care to chdir back to the starting location. Because
the user may have specified relative paths and so staying in the srcdir
might break. A relative path could even be specifed for an underlay dir, so
it chdirs back after each.
| Joey Hess | 2010-06-15 |
* | | Fix issues with combining unicode srcdirs and source files.•••A short story:
Once there was a unicode string, let's call him Srcdir.
Along came a crufy old File::Find, who went through a tree and pasted each
of the leaves in turn onto Srcdir. But this 90's relic didn't decode the
leaves -- despite some of them using unicode! Poor Srcdir, with these
leaves stuck on him, tainted them with his nice unicode-ness. They didn't
look like leaves at all, but instead garbage.
In other words, perl's unicode support sucks mightily, and drives
us all to drink and bad storytelling. But we knew that..
So, srcdir is not normally flagged as unicode, because typically it's pure
ascii. And in that case, things work ok; File::Find finds filenames, which
are not yet decoded to unicode, and appends them to the srcdir, and then
decode_utf8 happily converts the whole thing.
But, if the srcdir does contain utf8 characters, that breaks. Or, if a Yaml
setup file is used, Yaml::Syck's implicitunicode sets the unicode flag of
*all* strings, even those containing only ascii. In either case, srcdir
has the unicode flag set; a non-decoded filename is appended, and
decode_utf8 sees the flag and does *nothing*. The result is that the
filename is not decoded, so looks valid and gets skipped.
File::Find only sticks the directory and filenames together in no_chdir
mode .. but we need that mode for security. In order to retain the
security, and avoid the problem, I made it not pass srcdir to File::Find.
Instead, chdir to the srcdir, and pass ".". Since "." is ascii, the problem
is avoided.
Note that it takes care to chdir back to the starting location. Because
the user may have specified relative paths and so staying in the srcdir
might break. A relative path could even be specifed for an underlay dir, so
it chdirs back after each.
| Joey Hess | 2010-06-15 |
|/ |
|
* | Fix a bug that prevented matching deleted comments, and so did not update pag...•••Problem is that by the time rendering calls render_dependent, %pagesources
has had deleted files removed from it. So match_comment's lookup of
files in there to see if they had the _comment extension failed.
I had to introduce a hash that temporarily holds filenames of deleted pages
to fix this.
Note that unlike comment(), internal() had avoided this pitfall by being
defined to match both internal and non-internal pages.
| Joey Hess | 2010-05-18 |
* | refactor template actions | Joey Hess | 2010-05-14 |
* | nasty update to ugly hack to allow comment() pagespecs to work | Joey Hess | 2010-05-07 |
* | call delete hook even if only internal pages are deleted | Joey Hess | 2010-05-07 |
* | Delete hooks are passed deleted internal pages.•••Necessary so search can remove its indexes for internal pages.
But also, it seems it was an omission not to pass the deleted
pages before.
| Joey Hess | 2010-05-06 |
* | inline: Call indexhtml when inlining internal pages, so their text can be ind... | Joey Hess | 2010-05-06 |
* | Renamed postscan hook to indexhtml, to reflect its changed position.•••Probably only the search plugin uses it, so this seemed safe.
| Joey Hess | 2010-05-06 |
* | rename ispage variable | Joey Hess | 2010-05-05 |
* | remove unused | Joey Hess | 2010-05-05 |
* | add ISPAGE variable to page.tmpl•••Plugins will also be able to use this to tell if the template
is being used to generate a wiki page, when misctemplate starts
also using page.tmpl.
| Joey Hess | 2010-05-05 |
* | Fixes a bug in skipping of illegal source files introduced in 3.20100427. | Joey Hess | 2010-05-04 |
* | Add ACTIONS variable to page.tmpl, which allows plugins to add arbitrary link...•••(COMMENTSLINK and DISCUSSIONLINK could be folded into this, but are kept
separate for now to avoid breaking modified templates.)
| Joey Hess | 2010-05-03 |
* | Add parameter to displaytime to specify that it is a pubdate, and in html5 mo... | Joey Hess | 2010-05-02 |
* | html5 option•••* Ikiwiki can be configured to generate html5 instead of the default xhtml
1.0. The html5 output mode is experimental, not yet fully standards
compliant, and will be subject to rapid change.
| Joey Hess | 2010-05-01 |
* | loop on pagesources, not ctime | Joey Hess | 2010-04-26 |
* | Fix removal of rendered files in rebuild mode.•••Needed to handle the move of the .js files into ikiwiki/, but also this is
a longstanding bug.
Old pagemtime is not remembered in rebuild mode, and changing that would
need a lot of changes. So instead, loop on pagectime, which is remembered.
Change to remembering old pagesources info in rebuild mode. This seems safe
enough.
| Joey Hess | 2010-04-26 |
* | rebuild on template removal | Joey Hess | 2010-04-24 |
* | bugfixes | Joey Hess | 2010-04-24 |
* | add support for mass dependencies•••Registered by passing "" as page name to add_depends.
| Joey Hess | 2010-04-24 |
* | special case for page.tmpl dependency handling•••Rather than wasting resources recording that every page depends on
page.tmpl, add a special case. The special case curretly rebuilds non-page
files too when page.tmpl changes, but that's minor.
| Joey Hess | 2010-04-23 |
* | look for templates in srcdir and underlays, first•••This entailed changing template_params; it no longer takes the template
filename as its first parameter.
Add template_depends to api and replace calls to template() with
template_depends() in appropriate places, where a dependency should be
added on the template.
Other plugins don't use template(), so will need further work.
Also, includes are disabled for security. Enabling includes only when using
templates from the templatedir would be nice, but would add a lot of
complexity to the implementation.
| Joey Hess | 2010-04-22 |
* | Merge branch 'master' into autotag•••Conflicts:
IkiWiki/Plugin/tag.pm
| Joey Hess | 2010-04-21 |
|\ |
|
| * | fix false positive in link_types_changed•••loadindex does not bother populating oldtypedlinks if there is no link
type. However, the code in link_types_changed assumed that if oldtypedlinks
is not defined, and typedlinks is, they must differ.
| Joey Hess | 2010-04-21 |
* | | remember autofiles that were tried and failed to be added•••This way, if an autofile is registered for a file that already exists,
it is remembered that it was tried, and it doesn't get recreated when
removed.
| Joey Hess | 2010-04-21 |