aboutsummaryrefslogtreecommitdiff
path: root/IkiWiki.pm
Commit message (Collapse)AuthorAge
* page.tmpl: tell mobile browsers we have a responsive layout, unless told not toSimon McVittie2014-12-01
| | | | | | | | | | Mobile browsers typically assume that arbitrary web pages are designed for a "desktop-sized" browser window (around 1000px) and display that layout, zoomed out, in order to avoid breaking naive designs that assume nobody will ever look at a website on a phone or something. People who are actually doing "responsive design" need to opt-in to mobile browsers rendering it at a more normal size.
* Always produce HTML5 doctype and new attributes, but not new elementsSimon McVittie2014-10-16
| | | | | | | | | | | | | According to caniuse.com, a significant fraction of Web users are still using Internet Explorer versions that do not support HTML5 sectioning elements. However, claiming we're XHTML 1.0 Strict means we can't use features invented in the last 12 years, even if they degrade gracefully in older browsers (like the role and placeholder attributes). This means our output is no longer valid according to any particular DTD. Real browsers and other non-validator user-agents have never cared about DTD compliance anyway, so I don't think this is a real loss.
* Set default User-Agent to something that doesn't mention libwww-perlSimon McVittie2014-10-12
| | | | | | | | | It appears that both the open-source and proprietary rulesets for ModSecurity default to blacklisting requests that say they are from libwww-perl, presumably because some script kiddies use libwww-perl and are too inept to set a User-Agent that is "too big to blacklist", like Chrome or the iPhone browser or something. This seems doomed to failure but whatever.
* Add reverse_proxy option which hard-codes cgiurl in CGI outputSimon McVittie2014-10-05
| | | | | This solves several people's issues with the CGI trying to be too clever when IkiWiki is placed behind a reverse-proxy.
* Avoid mixed content when cgiurl is https but url is notSimon McVittie2014-10-05
|
* Use protocol-relative URIs if cgiurl and url differ only by authority (hostname)Simon McVittie2014-10-05
|
* Merge branch 'ready/templatebody'Simon McVittie2014-09-15
|\
| * Track whether we're in the scan or render phaseSimon McVittie2014-03-05
| | | | | | | | | | | | | | | | In the scan phase, it's too early to match pagespecs or sort pages; in the render phase, both of those are OK. It would be possible to add phases later, renumbering them if necessary to maintain numerical order.
| * Add templatebody plugin and directive, and enable it by defaultSimon McVittie2014-03-05
| | | | | | | | Also add a regression test for templatebody.
| * add readtemplate hookSimon McVittie2014-03-05
| |
* | add more wording based on what chrysn suggestedSimon McVittie2014-09-15
| |
* | Merge branch 'ready/document-success-reason'Simon McVittie2014-09-15
|\ \
| * | SuccessReason: add some explanatory commentsSimon McVittie2014-03-03
| |/ | | | | | | | | | | | | Whenever I look at dependency calculation, it takes me a while to get my head round the concept of influences. If what I've written here is accurate, maybe the next person to look at this (or my future self) will need less of a run-up.
* | Merge branch 'ready/trail-sort'Simon McVittie2014-09-12
|\ \
| * | trail: don't generate a costly dependency when forcing sort orderSimon McVittie2014-07-11
| |/ | | | | | | | | | | | | | | pagespec_match_list() makes the current page depend on the pagespec being matched, so if you use [[!trailoptions sort="..."]] to force a sort order, the trail ends up depending on internal(*) and is rebuilt whenever anything changes. Add a new sort_pages() and use that instead.
* / Make --no-gettime work in initial build. Closes: #755075Joey Hess2014-08-28
|/
* Allow up to 8 levels of nested directives, rather than previous 3 in ↵Joey Hess2014-02-23
| | | | directive infinite loop guard.
* Merge remote-tracking branch 'anarcat/dev/syslog_utf8'Joey Hess2014-02-23
|\
| * don't edit config setting, but a temporary variable, complete and unbreak testsAntoine Beaupré2013-11-29
| |
| * recover gracefully from syslog failuresAntoine Beaupré2013-11-29
| |
* | Bug#737121: ikiwiki: [PATCH] Implement configuration option to set the user ↵Tuomas Jormola2014-02-01
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | agent string for outbound HTTP requests Package: ikiwiki Version: 3.20140125 Severity: wishlist By default, LWP::UserAgent used by IkiWiki to perform outbound HTTP requests sends the string "libwww-perl/<version number>" as User-Agent header in HTTP requests. Some blogging platforms have blacklisted the user agent and won't serve any content for clients using this user agent string. With IkiWiki configuration option "useragent" it's now possible to define a custom string that is used for the value of the User-Agent header.
* | Added only_committed_changes config setting, which speeds up wiki refresh by ↵Joey Hess2013-11-16
| | | | | | | | querying git to find the files that were changed, rather than looking at the work tree. Not enabled by default as it can break some setups where not all files get committed to git.
* | Optmised loadindex by caching the page name in the index.Joey Hess2013-11-16
| | | | | | | | | | | | | | | | | | | | | | | | | | I have benchmarked the pagename() call this avoids taking up to 2 seconds for a loadindex in a large wiki. The total loadindex for that wiki was 6.46s, so this is a significant improvment. Even on a smaller site, this reduces the refresh time from 1.69 to 1.52 seconds. The only breakage risk here is that pagename() can change the page name it calculates due to setup changes. But in the case of a setup change, the whole site is rebuilt. So the cached page name is not used in that case.
* | Fixed unncessary tight loop hash copy in saveindex where a pointer can be ↵Joey Hess2013-11-16
|/ | | | | | | | | used instead. Can speed up refreshes by nearly 50% in some circumstances. I *think* this is ok, at least it results in close to the same index being saved as before. The difference is that plugins that have a pagestate of {} have that recorded this way, while with the tight loop, the key for the plugin in not copied in that case. I cannot see how this could matter.
* Fix cookiejar default setting.Joey Hess2013-09-04
|
* cookiejar is now a core config setting.Amitai Schlair2013-08-03
|
* Honor proxy env vars and reliably honor cookiejar.Amitai Schlair2013-07-27
|
* The ip() pagespec can now contain glob characters to match eg, a subnet full ↵Joey Hess2013-07-08
| | | | of spammers.
* Allow dots in parameter key namesGiuseppe Bilotta2013-02-15
| | | | | This allows e.g. the meta command to be used to introduce DublinCore metadata.
* add cgi_overload_messageJoey Hess2012-10-11
|
* add cgi_overload_delay tunableJoey Hess2012-10-09
| | | | | | | | | | | Try to avoid a situation in which so many ikiwiki cgi wrapper programs are running, all waiting on some long-running thing like a site rebuild, that it prevents the web server from doing anything else. The current approach only avoids this problem for GET requests; if multiple cgi's run GETs on a site at the same time, one will display a "please wait" page for a configurable number of seconds, which then redirects to retry. To enable this protection, set cgi_overload_delay to the number of seconds to wait. This is not enabled by default.
* passwordauth: Fix url in password recovery email to be absolute.Joey Hess2012-04-02
| | | | | This got broken when cgiurl began often returning a relative url. Added a cgiurl_abs for the things that need a guaranteed absolute cgiurl.
* fix typo in LC_TIME locale lookupJoey Hess2012-02-01
|
* calendar, prettydate: Fix strftime encoding bugJoey Hess2012-01-30
| | | | | | | | | | | | | strftime is a C function, it does not return decoded utf8. Several places in ikiwiki manually decoded it, but at least two forgot to. Also, strftime might not return even encoded utf8, if LC_TIME is set to a non-utf8 value. Went ahead and supported decoding whatever encoding it uses. The remaining direct calls to strftime() are all ones that first set LC_TIME=C, in order to get times that are not for human display.
* backlink(.) should behave like backlink(<current page>)Giuseppe Bilotta2012-01-13
| | | | | | | | Since commit c4d4cad3befbbd444d094cbeb0b6ebba3910a025, the single dot in a pagespec can be used to mean the current page. While this worked correctly in link() it didn't work in backlink(). Fix this by explicitly checking the testpage in backlink against . and replacing it with the current location if necessary.
* Add path and path_natural sort ordersSimon McVittie2011-12-06
| | | | (cherry picked from commit 272e0b2f17c33c625b494b07f581da400066a216)
* Support private, group, public as values for umaskSimon McVittie2011-11-27
| | | | | | | These are equivalent to octal 077, 027 and 022, but easier to get from YAML. Signed-off-by: Simon McVittie <smcv@debian.org>
* Avoid using named capture groups in heredoc code for oldperl compatability.Joey Hess2011-07-30
| | | | Also reordered heredoc part of regexp for consistency.
* Preserve mixed case in page creation links, and when creating a page whose ↵Joey Hess2011-06-29
| | | | title is mixed case, allow selecting between the mixed case and all lower-case names.
* Support svg as a inlinable image typeJoey Hess2011-06-29
| | | | | svg images can be included on a page by simply linking to them, or by using the img directive. Note that sanitizing svg files is still not addressed.
* html5 is not experimental anymore. But not the default either, quite yet.Joey Hess2011-06-23
|
* added support for here-docs and ''' in parameters.Timo Paulssen2011-05-13
|
* Yaml formatted setup files are now produced by defaultJoey Hess2011-03-24
| | | | | | | This has been a while coming. It turns out that non-excutable setup files have a number of benefits. Also, I find YAML setup files easier to edit myself, and I suspect many users will prefer not needing to deal with perl syntax.
* Add timezone setting in setup file. This alows time zone to be configured ↵Joey Hess2011-03-24
| | | | via the web.
* avoid uninitlized value when urlto is called with 1 parameter and no url is ↵Joey Hess2011-02-27
| | | | | | | | | configured This brings back the old behavior before urlto changes for this case. It will generate a path like "/foo", which is not right, but is the same as is generated by urlto($page, "", 1) -- which is what the code that now uses 1-parameter urlto used to use.
* Add add_literal_underlay and use it for the transient underlaySimon McVittie2011-01-07
| | | | This means we don't need to import Cwd and use abs_path.
* use cgitemplate, remove misctemplateJoey Hess2011-01-05
|
* make urlabs a noop if base url is not providedJoey Hess2011-01-05
| | | | | This allows urlabs($foo, $config{url}) to be used safely, even if no url is configured.
* factored out an urlabs from aggregate and cgiJoey Hess2011-01-05
|
* oopsJoey Hess2011-01-05
|