Recent changes to this wiki:
lock and load management
diff --git a/doc/todo/make_suid_wrapper_optional.mdwn b/doc/todo/make_suid_wrapper_optional.mdwn index 966c1ac1f..fc59647ff 100644 --- a/doc/todo/make_suid_wrapper_optional.mdwn +++ b/doc/todo/make_suid_wrapper_optional.mdwn @@ -57,6 +57,11 @@ Without the CGI wrapper, we might not need 1-3 (from the first list above), but we would need to implement 4-6, and either set up `WRAPPED_OPTIONS` or otherwise pass the necessary arguments. -I wonder if we could move 4-6 from list 1 into `IkiWiki::CGI::cgi()`. +I wonder if we could move 4-6 from list 1 into `IkiWiki::CGI::cgi()`. I +guess it depends what the lock is for. It's not just a write lock, it's +part of load management. At some point I guess mutexing the loading of +the `perl` interpreter was worthwhile. I wonder if that's as much of a +problem Today. If we loaded Perl and got as far as `IkiWiki::CGI::cgi()`, +are we still saving some heavy lifting with the lock? *— [[Jon]], 2025-10-02*
stuff the CGI wrapper does
diff --git a/doc/todo/make_suid_wrapper_optional.mdwn b/doc/todo/make_suid_wrapper_optional.mdwn index 959034e6a..966c1ac1f 100644 --- a/doc/todo/make_suid_wrapper_optional.mdwn +++ b/doc/todo/make_suid_wrapper_optional.mdwn @@ -31,3 +31,32 @@ wrapper. > under a site-specific user account. Many of my sites do this. > > -- [[schmonz]] + +## stuff the cgi wrapper does + +1. blanks the environment and selectively adds a set of variables + back +2. adds an encoding of the `%config` hash to the variable + `WRAPPED_OPTIONS` (with `'cgi' => 1` set) +3. drops real GID and real UID (the webserver's) by overwriting + them with the effective values (wrapper file owner) +4. handles the logic for `CGI_OVERLOAD_DELAY` +5. takes the CGI lock +6. handles `wrapper_background_command` (which means handling + `git_wrapper_background_command`) (which are not yet documented) +7. calls `ikiwiki` with no command-line arguments + +`ikiwiki`, called with no command-line arguments, does + +1. `getconfig` which populates from `WRAPPED_OPTIONS` +2. loadplugins +3. checkconfig +4. checks `$config{cgi}`, evals `IkiWiki::CGI::cgi()` + +Without the CGI wrapper, we might not need 1-3 (from the first list above), +but we would need to implement 4-6, and either set up `WRAPPED_OPTIONS` or +otherwise pass the necessary arguments. + +I wonder if we could move 4-6 from list 1 into `IkiWiki::CGI::cgi()`. + +*— [[Jon]], 2025-10-02*
partly done
diff --git a/doc/todo/reconsider_jquery.mdwn b/doc/todo/reconsider_jquery.mdwn index f8085168b..6a7f66625 100644 --- a/doc/todo/reconsider_jquery.mdwn +++ b/doc/todo/reconsider_jquery.mdwn @@ -51,3 +51,8 @@ sequester the stuff in one place. Or maybe a waste of time. I don't know! >> Patches in the branch detailed in the template. If anyone is prepared >> to give this some basic testing that would be appreciated. [[!tag patch]] *— [[Jon]], 2025-09-16* + +---- + +I've merged the de-jqueryification of `loginselector` after performing +some more testing. Next up, `attachment`… *— [[Jon]], 2025-09-29*
done -- remove contrib copy of plugin docs
diff --git a/doc/plugins/contrib/pagespec_alias.mdwn b/doc/plugins/contrib/pagespec_alias.mdwn deleted file mode 100644 index cb642ad33..000000000 --- a/doc/plugins/contrib/pagespec_alias.mdwn +++ /dev/null @@ -1,28 +0,0 @@ -[[!template id=plugin name=pagespec_alias author="[[Jon]]"]] -[[!tag type/meta]] - -The pagespec_alias plugin allows the administrator(s) of a wiki to define -[[PageSpec]] aliases: short names for PageSpecs to ease re-use. - -Within the setup file, the `pagespec_aliases` value is treated as a list -of key/value pairs. The keys define alias names, the values the pagespecs -to which they refer. - -For example: - - pagespec_aliases: - image: "*.png or *.jpg or *.jpeg or *.gif or *.ico" - helper: "*.css or *.js" - boring: "image() or helper() or internal(*)" - -With the above, you could use the pagespec aliases such as - - \[[!map pages="!boring()"]] - -To define a site map which excluded various page names which might be -uninteresting to include in a site map. - - -## Download - - * <https://github.com/jmtd/ikiwiki/blob/pagespec-alias/IkiWiki/Plugin/pagespec_alias.pm> diff --git a/doc/plugins/contrib/pagespec_alias/discussion.mdwn b/doc/plugins/contrib/pagespec_alias/discussion.mdwn deleted file mode 100644 index 09cf77219..000000000 --- a/doc/plugins/contrib/pagespec_alias/discussion.mdwn +++ /dev/null @@ -1,16 +0,0 @@ -I've submitted a couple of patches in [this pull request](https://github.com/jmtd/ikiwiki/pull/1). -The first passes along whatever parameters are being supplied to the pagespec evaluation -(without which, specs like `user(alice)` don't work). - -The second changes the "example" returned by `getsetup` to be an actual map, since I saw -that `--dumpsetup` can make use of that to produce a syntactically correct map example -in the YAML config file. An earlier commit comment suggested that once was a problem, -but it doesn't seem to be one now. - -Only later did I notice this [[earlier discussion|todo/pagespec_aliases]] suggesting -that the problem with a map might have been in websetup - which I'm not using, so I don't -know if it would still be a problem there. - -[[jcflack]] - -> With apologies for the delay, jcflack's patches have now been merged. — [[Jon]] diff --git a/doc/todo/pagespec_aliases.mdwn b/doc/todo/pagespec_aliases.mdwn index 54e252956..768d11334 100644 --- a/doc/todo/pagespec_aliases.mdwn +++ b/doc/todo/pagespec_aliases.mdwn @@ -241,3 +241,5 @@ with IkiWiki's auto-mirror-pull, the branch is here: > Scratch that, more work needed ☹ *— [[Jon]], 2021-01-11* >> This is really ready now. *— [[Jon]], 2021-01-13* + +[[done]]! *— [[Jon]], 2025-09-25*
document comments_allowformats
diff --git a/doc/plugins/comments.mdwn b/doc/plugins/comments.mdwn index 50a99415f..83bbee7da 100644 --- a/doc/plugins/comments.mdwn +++ b/doc/plugins/comments.mdwn @@ -41,6 +41,11 @@ There are some global options for the setup file: specify a name for themselves, and the \[[!meta author]] and \[[!meta authorurl]] directives will not be overridden by the comments plugin +* `comments_allowformats`: if defined (default undefined), comments must + be written in a format within the specified string. The corresponding + format plugin must also be enabled. E.g. `comments_allowformats: txt mdwn` + restricts comments to [[plain text|plugins/txt]] and [[markdown|plugins/mdwn]], + assuming those plugins are enabled. ## comment moderation
update config example to use YAML-format, not older format
diff --git a/doc/plugins/anonok.mdwn b/doc/plugins/anonok.mdwn index 407012b54..d3dbe497b 100644 --- a/doc/plugins/anonok.mdwn +++ b/doc/plugins/anonok.mdwn @@ -16,4 +16,4 @@ The plugin has a configuration setting, `anonok_pagespec`. This If you're using the [[comments]] plugin, you can allow anonymous comments to be posted by setting: - anonok_pagespec => "postcomment(*)" + anonok_pagespec: postcomment(*)
poll vote (goldtype.),..'),",)
diff --git a/doc/forum/theme_poll.mdwn b/doc/forum/theme_poll.mdwn index cf4474f81..20588f712 100644 --- a/doc/forum/theme_poll.mdwn +++ b/doc/forum/theme_poll.mdwn @@ -3,7 +3,7 @@ Existing IkiWiki users: which [[themes]] do you use on your site? [[!poll 3 "antitheme (i.e., none)" 1 "actiontabs" 0 "blueview" -3 "goldtype" +2 "goldtype" 0 monochrome 5 "other, including heavily modified versions of the above" ]]
poll vote (goldtype)
diff --git a/doc/forum/theme_poll.mdwn b/doc/forum/theme_poll.mdwn index 20588f712..cf4474f81 100644 --- a/doc/forum/theme_poll.mdwn +++ b/doc/forum/theme_poll.mdwn @@ -3,7 +3,7 @@ Existing IkiWiki users: which [[themes]] do you use on your site? [[!poll 3 "antitheme (i.e., none)" 1 "actiontabs" 0 "blueview" -2 "goldtype" +3 "goldtype" 0 monochrome 5 "other, including heavily modified versions of the above" ]]
poll vote (goldtype)
diff --git a/doc/forum/theme_poll.mdwn b/doc/forum/theme_poll.mdwn index 585d10151..20588f712 100644 --- a/doc/forum/theme_poll.mdwn +++ b/doc/forum/theme_poll.mdwn @@ -3,7 +3,7 @@ Existing IkiWiki users: which [[themes]] do you use on your site? [[!poll 3 "antitheme (i.e., none)" 1 "actiontabs" 0 "blueview" -1 "goldtype" +2 "goldtype" 0 monochrome 5 "other, including heavily modified versions of the above" ]]
poll vote (goldtype)
diff --git a/doc/forum/theme_poll.mdwn b/doc/forum/theme_poll.mdwn index fcae4148d..585d10151 100644 --- a/doc/forum/theme_poll.mdwn +++ b/doc/forum/theme_poll.mdwn @@ -1,10 +1,9 @@ Existing IkiWiki users: which [[themes]] do you use on your site? -[[!poll -3 "antitheme (i.e., none)" +[[!poll 3 "antitheme (i.e., none)" 1 "actiontabs" 0 "blueview" -0 goldtype +1 "goldtype" 0 monochrome 5 "other, including heavily modified versions of the above" ]]
handling plugins/toggle in particular
diff --git a/doc/todo/css_and_javascript_aggregation.mdwn b/doc/todo/css_and_javascript_aggregation.mdwn index 7e38f7600..c0c466590 100644 --- a/doc/todo/css_and_javascript_aggregation.mdwn +++ b/doc/todo/css_and_javascript_aggregation.mdwn @@ -22,3 +22,13 @@ Since this is core functionality, it can hardly be done without touching the cor Alternatively, I guess it *could* be possible to have a format plugin that would *parse* the HTML page, extract CSS and JS resources and replace them with an aggregated copy, but that seems like a really crude hack. Furthermore, there are many different ways Javascript is included into the page right now, and it is not done consistently. For example, [[plugins/osm]] includes it near the end of the page while [[plugins/toggle]] includes it on top, with different regexes that do not match the same way and break differently. Refactoring this would help in making the code more maintainable... Thanks! --[[anarcat]] + +---- + +I think this could be wrapped up with some other Javascript management +issues (see [[todo/javascript management]]). I just wanted to note that +for [[plugins/toggle]] specifically, we might be able to replace many +of its uses with HTML `<details>`, although the toggle plugin has the +(probably rarely used but frustratingly available) ability to have the +toggle and the thing being toggled in different parts of a page. +*— [[Jon]], 2025-09-17*
proposal: central javascript management
diff --git a/doc/todo/javascript_management.mdwn b/doc/todo/javascript_management.mdwn new file mode 100644 index 000000000..79cb1b1df --- /dev/null +++ b/doc/todo/javascript_management.mdwn @@ -0,0 +1,29 @@ +I've begun to think +that some core support for Javascript management could help to address +some of the issues we've had with managing javascript and dependencies. +(this would most likely work as a core feature rather than a plugin +but I'm undecided on that. And this is hardly a novel idea, I'm sure +[[users/anarcat]] has proposed it somewhere already) + +In essence, a central data structure that captures the available +(bundled or referenced) javascript libraries, a function to register +that a page requires a given library, tracking which +libraries are required for a page, then aggregating the requirements +and generating the required `<script>` tags in the `<head>` element, +de-duplicating, preserving any necessary order. This would address +[[bugs/charset attribute on the script element is obsolete]], +[[bugs/duplicate script element for ikiwiki.js]] and +[[bugs/javascript resources placed after html tag]]. + +A suggestion made in Debian bug [#643338](https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=643338) +was to permit users to specify that a given library should be +fetched externally: e.g. from a public CDN URI. Central +management could support that. With some care, it might even +be flexible enough for downstream packagers to de-bundle any +libraries we are shipping and use distribution-packaged copies. + +Managing Javascript in a central place would also make it +easier to implement optional build-time minification, +resolving some of [[todo/css and javascript aggregation]]. + +*— [[Jon]], 2025-09-17*
patches! testing very much appreciated
diff --git a/doc/todo/reconsider_jquery.mdwn b/doc/todo/reconsider_jquery.mdwn index d1dcddf18..f8085168b 100644 --- a/doc/todo/reconsider_jquery.mdwn +++ b/doc/todo/reconsider_jquery.mdwn @@ -44,3 +44,10 @@ sequester the stuff in one place. Or maybe a waste of time. I don't know! *— [[Jon]], 2025-08-28* > Doesn't feel like a waste of time to me at all: reducing the blast radius is a great idea, imho, but it might cause problems for third-party plugins that *assume* jquery is present... maybe that's where it's more of a problem? maybe a progressive deprecation? -- [[anarcat]] + +[[!template id=gitbranch author="[[Jon]]" branch=jon/minimize-jquery]] + +>> Thanks for the encouragement! I've de-jquery'd the login selector. +>> Patches in the branch detailed in the template. If anyone is prepared +>> to give this some basic testing that would be appreciated. [[!tag patch]] +*— [[Jon]], 2025-09-16*
Update location of my ikiwiki Git repository
diff --git a/doc/plugins/po/discussion.mdwn b/doc/plugins/po/discussion.mdwn index 9f99880dc..562b58f17 100644 --- a/doc/plugins/po/discussion.mdwn +++ b/doc/plugins/po/discussion.mdwn @@ -234,7 +234,7 @@ translated with gettext, using [po4a](http://po4a.alioth.debian.org/). More information: * It can be found in my "po" branch: - `git clone git://gaffer.ptitcanardnoir.org/ikiwiki.git` + https://gitlab.com/intrigeri/ikiwiki/-/tree/po * It is self-contained, *i.e.* it does not modify ikiwiki core at all. * It is documented (including TODO and plans for next work steps) in `doc/plugins/po.mdwn`, which can be found in the same branch. diff --git a/doc/users/intrigeri.mdwn b/doc/users/intrigeri.mdwn index ddc5da390..ba82cf926 100644 --- a/doc/users/intrigeri.mdwn +++ b/doc/users/intrigeri.mdwn @@ -1,4 +1,4 @@ intrigeri AT riseup.net, already loving ikiwiki. * [website](https://gaffer.boum.org/intrigeri/) -* Git repository with various ikiwiki {feature, bugfix}-branches : `git://gaffer.ptitcanardnoir.org/ikiwiki.git` +* ikiwiki Git repository: https://gitlab.com/intrigeri/ikiwiki
Update link to my website
diff --git a/doc/users/intrigeri.mdwn b/doc/users/intrigeri.mdwn index 43760ac5e..ddc5da390 100644 --- a/doc/users/intrigeri.mdwn +++ b/doc/users/intrigeri.mdwn @@ -1,4 +1,4 @@ intrigeri AT riseup.net, already loving ikiwiki. -* [gnupg key](http://gaffer.ptitcanardnoir.org/intrigeri/intrigeri.asc) +* [website](https://gaffer.boum.org/intrigeri/) * Git repository with various ikiwiki {feature, bugfix}-branches : `git://gaffer.ptitcanardnoir.org/ikiwiki.git`
Update my primary email address
diff --git a/doc/users/intrigeri.mdwn b/doc/users/intrigeri.mdwn index 8fa9965a5..43760ac5e 100644 --- a/doc/users/intrigeri.mdwn +++ b/doc/users/intrigeri.mdwn @@ -1,4 +1,4 @@ -intrigeri AT boum.org, already loving ikiwiki. +intrigeri AT riseup.net, already loving ikiwiki. * [gnupg key](http://gaffer.ptitcanardnoir.org/intrigeri/intrigeri.asc) * Git repository with various ikiwiki {feature, bugfix}-branches : `git://gaffer.ptitcanardnoir.org/ikiwiki.git`
rework the login-selector highlight method
Rather than manipulate the DOM for each click, just change the
existing element's class names.
Make the adjustments to work from a class name instead of element
id in the CSS.
Rather than manipulate the DOM for each click, just change the
existing element's class names.
Make the adjustments to work from a class name instead of element
id in the CSS.
diff --git a/doc/style.css b/doc/style.css index a2244d13f..e3f75b1d9 100644 --- a/doc/style.css +++ b/doc/style.css @@ -477,7 +477,7 @@ li.L8 { list-style: upper-alpha; } #login_btns, #login_btns br { clear: both; } -#login_highlight { +.login_highlight { background-color: black; float: left; } diff --git a/themes/lightdark/style.css b/themes/lightdark/style.css index fdbe42ca4..b3b5c9ca4 100644 --- a/themes/lightdark/style.css +++ b/themes/lightdark/style.css @@ -69,7 +69,7 @@ input#searchbox .login_large_btn { background-color: Canvas; } -#login_highlight { +.login_highlight { background-color: CanvasText; } diff --git a/underlays/login-selector/ikiwiki/login-selector/login-selector.js b/underlays/login-selector/ikiwiki/login-selector/login-selector.js index 9eff910cc..302b276e9 100644 --- a/underlays/login-selector/ikiwiki/login-selector/login-selector.js +++ b/underlays/login-selector/ikiwiki/login-selector/login-selector.js @@ -78,6 +78,7 @@ var selector = { } }, getBoxHTML: function(selection) { + var div = document.createElement('div'); var a = document.createElement('a'); var img = document.createElement('img'); @@ -92,7 +93,8 @@ var selector = { a.appendChild(img); a.appendChild(document.createTextNode(' ' + selection["name"])); - return a; + div.appendChild(a); + return div; }, /* selection image click */ signin: function(box_id, onload) { @@ -163,14 +165,14 @@ var selector = { } }, highlight: function (box_id) { - - // remove previous highlight. - var highlight = document.getElementById('login_highlight'); - if (highlight) { - highlight.replaceWith($('#login_highlight a')[0]); - } - // add new highlight. - $('.'+box_id).wrap('<div id="login_highlight"></div>'); + for (elem of document.getElementsByClassName('login_large_btn')) { + var div = elem.parentElement; + if(elem.classList.contains(box_id)) { + div.classList.add('login_highlight'); + } else { + div.classList.remove('login_highlight'); + } + } }, setCookie: function (value) {
document Commonmark
diff --git a/CHANGELOG b/CHANGELOG index fe62fd8cc..fd80d2e9a 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,3 +1,9 @@ +ikiwiki (3.20250912) UNRELEASED; urgency=medium + + * Add CommonMark support to mdwn.pm + + -- Jonathan Dowland <jmtd@debian.org> Fri, 12 Sep 2025 21:42:18 +0100 + ikiwiki (3.20250501) upstream; urgency=medium [ Antoine Beaupré ] diff --git a/doc/bugs/Commonmark_support.mdwn b/doc/bugs/Commonmark_support.mdwn index 8cf10e6b7..d084862cf 100644 --- a/doc/bugs/Commonmark_support.mdwn +++ b/doc/bugs/Commonmark_support.mdwn @@ -64,3 +64,5 @@ Patch: <https://github.com/jmtd/ikiwiki/commit/c76eeac8152604ce3d7d1672fe404c8ee >> Embarrassingly, yes. I've just (re-)confirmed this with libcmark0.30.2 and libcommonmark-perl 0.310100-1. >> I should have a fix pushed tonight or Tomorrow. >> — *[[Jon]], 2025-09-12* + +[[done]].
fix incoming
diff --git a/doc/bugs/Commonmark_support.mdwn b/doc/bugs/Commonmark_support.mdwn index da220e906..8cf10e6b7 100644 --- a/doc/bugs/Commonmark_support.mdwn +++ b/doc/bugs/Commonmark_support.mdwn @@ -62,4 +62,5 @@ Patch: <https://github.com/jmtd/ikiwiki/commit/c76eeac8152604ce3d7d1672fe404c8ee > -- j@ustink.org 2024-06-29 >> Embarrassingly, yes. I've just (re-)confirmed this with libcmark0.30.2 and libcommonmark-perl 0.310100-1. +>> I should have a fix pushed tonight or Tomorrow. >> — *[[Jon]], 2025-09-12*
problem reproduced
diff --git a/doc/bugs/Commonmark_support.mdwn b/doc/bugs/Commonmark_support.mdwn index ddf8cf48a..da220e906 100644 --- a/doc/bugs/Commonmark_support.mdwn +++ b/doc/bugs/Commonmark_support.mdwn @@ -60,3 +60,6 @@ Patch: <https://github.com/jmtd/ikiwiki/commit/c76eeac8152604ce3d7d1672fe404c8ee > I don't have a different system to compare if it's specific to the Fedora packages. Did you face this problem? > > -- j@ustink.org 2024-06-29 + +>> Embarrassingly, yes. I've just (re-)confirmed this with libcmark0.30.2 and libcommonmark-perl 0.310100-1. +>> — *[[Jon]], 2025-09-12*
Some more bits
diff --git a/doc/users/jon.mdwn b/doc/users/jon.mdwn index 314c81ef5..a9c5d0924 100644 --- a/doc/users/jon.mdwn +++ b/doc/users/jon.mdwn @@ -22,8 +22,13 @@ triage all the Debian bugs and make sure upstream issues are forwarded to issues recorded here; [[todo/reconsider jquery]]; [[todo/move_doc__47__style.css]] in order to enable dark mode on -<ikiwiki.info>; +<https://ikiwiki.info>; an approach for [[todo/mastodon comments]]; +maintain the project’s stability and backwards compatibility for existing users; +make ikiwiki more attractive to people looking for SSGs; +more prominent / support bits and pieces from IndieWeb; +shrink the delta between ikiwiki and the opinionated-ikiwiki container: +make setuid wrappers optional. ## historic
done - workaround exists
diff --git a/doc/todo/support_Twitter_cards.mdwn b/doc/todo/support_Twitter_cards.mdwn index c02ed6d38..4d83f518c 100644 --- a/doc/todo/support_Twitter_cards.mdwn +++ b/doc/todo/support_Twitter_cards.mdwn @@ -18,3 +18,10 @@ That's what I did on the [donation page of Tails](https://gitlab.tails.boum.org/ > If, instead, you have actually got a patch for the IkiWiki parser, please post it and I can take a > look: I'm not an IkiWiki maintainer but I can review it and give my opinion at least. If that's the > case, please share it, and re-add `\[[!tag patch]]`. Thanks! *—[[Jon]], 2020-10-13* + +---- + +There's a solution for this already at [[ikiwiki/directive/meta]]: one of the examples given is `\[[!meta name="twitter:card" content="..."` +which would result in `<meta name="twitter:card"...`. +[[done]]. +*— [[Jon]], 2025-09-11*.
fix link
diff --git a/doc/users/jon.mdwn b/doc/users/jon.mdwn index 9837668a5..314c81ef5 100644 --- a/doc/users/jon.mdwn +++ b/doc/users/jon.mdwn @@ -23,7 +23,7 @@ recorded here; [[todo/reconsider jquery]]; [[todo/move_doc__47__style.css]] in order to enable dark mode on <ikiwiki.info>; -an approach for [[mastodon comments]]; +an approach for [[todo/mastodon comments]]; ## historic
my priorities
diff --git a/doc/users/jon.mdwn b/doc/users/jon.mdwn index f3e587710..9837668a5 100644 --- a/doc/users/jon.mdwn +++ b/doc/users/jon.mdwn @@ -12,6 +12,19 @@ the [Opinionated Ikiwiki](https://github.com/jmtd/opinionated-ikiwiki/) [[container|containers]]. I have recently taken on the Debian packaging. My current focus is working upstream. +## priorities + +This is an unorganised and unordered stream-of-thought list of the things +I'm interested in addressing at the moment. + +Review all unreviewed [[patches|patch]]; +triage all the Debian bugs and make sure upstream issues are forwarded to issues +recorded here; +[[todo/reconsider jquery]]; +[[todo/move_doc__47__style.css]] in order to enable dark mode on +<ikiwiki.info>; +an approach for [[mastodon comments]]; + ## historic I gave a talk at the [UK UNIX User's Group](http://www.ukuug.org/) annual
deprecate jquery?
diff --git a/doc/todo/reconsider_jquery.mdwn b/doc/todo/reconsider_jquery.mdwn index 3a12a5d45..d1dcddf18 100644 --- a/doc/todo/reconsider_jquery.mdwn +++ b/doc/todo/reconsider_jquery.mdwn @@ -43,4 +43,4 @@ sequester the stuff in one place. Or maybe a waste of time. I don't know! *— [[Jon]], 2025-08-28* -> Doesn't feel like a waste of time to me at all: reducing the blast radius is a great idea, imho, but it might cause problems for third-party plugins that *assume* jquery is present... maybe that's where it's more of a problem? -- [[anarcat]] +> Doesn't feel like a waste of time to me at all: reducing the blast radius is a great idea, imho, but it might cause problems for third-party plugins that *assume* jquery is present... maybe that's where it's more of a problem? maybe a progressive deprecation? -- [[anarcat]]
how about third-party?
diff --git a/doc/todo/reconsider_jquery.mdwn b/doc/todo/reconsider_jquery.mdwn index b9483cedc..3a12a5d45 100644 --- a/doc/todo/reconsider_jquery.mdwn +++ b/doc/todo/reconsider_jquery.mdwn @@ -42,3 +42,5 @@ not have a separate jquery underlay. It would be a small step forward, to sequester the stuff in one place. Or maybe a waste of time. I don't know! *— [[Jon]], 2025-08-28* + +> Doesn't feel like a waste of time to me at all: reducing the blast radius is a great idea, imho, but it might cause problems for third-party plugins that *assume* jquery is present... maybe that's where it's more of a problem? -- [[anarcat]]
some initial analysis of jquery usage
diff --git a/doc/todo/reconsider_jquery.mdwn b/doc/todo/reconsider_jquery.mdwn index 54a3de112..b9483cedc 100644 --- a/doc/todo/reconsider_jquery.mdwn +++ b/doc/todo/reconsider_jquery.mdwn @@ -20,3 +20,25 @@ Jquery, and determine what the best choice is for that functionality in future (which might be to continue with jquery and jquery-ui). *— [[Jon]], 2025-08-27* + +---- + +`loginselector` (no doc page) uses jquery. +There's a tiny use in `templates/login-selector.tmpl` which could easily +be substituted for a longer, standard DOM method of finding the `fieldset`. +The remaining use is in +`underlays/login-selector/ikiwiki/login-selector/login-selector.js`, which +calls `extend` once, and is otherwise just accessors. So for `loginselector`, +it would be easy to remove the jquery dependency. + +[[plugins/attachment]] uses `jquery.fileupload.js`, `jquery.fileupload-ui.js`, +`jquery.iframe-transport.js`, `jquery.tmpl.js` and `jquery-ui.js`. I think +it would be much harder to remove or replace. (I'm at the limit of my JS +knowledge here.) + +However, if it was the only user of jquery, we could at least move the jquery +JS into the attachment underlay, adjacent to the other jquery-related JS, and +not have a separate jquery underlay. It would be a small step forward, to +sequester the stuff in one place. Or maybe a waste of time. I don't know! + +*— [[Jon]], 2025-08-28*
wrong todo!
diff --git a/doc/todo/outdated_jquery-ui.mdwn b/doc/todo/outdated_jquery-ui.mdwn deleted file mode 100644 index bcd44e27d..000000000 --- a/doc/todo/outdated_jquery-ui.mdwn +++ /dev/null @@ -1,16 +0,0 @@ - < thm> joeyh: ping - < thm> can you update the embedded jquery-ui? (for cve - 2010-5312, and/or 2012-6662) - -I'll do this next time I spend some time on ikiwiki unless Joey or -Amitai gets there first. - -It doesn't look as though we actually use the vulnerable functionality. - ---[[smcv]] - -> This is more complicated than it looked at first glance because both -> jquery and jquery-ui have broken API since the version we embed, -> and we also ship other jquery plugins for [[plugins/attachment]]. -> Perhaps someone who knows jquery could check compatibility and -> propose a branch? --[[smcv]] diff --git a/doc/todo/reconsider_jquery.mdwn b/doc/todo/reconsider_jquery.mdwn new file mode 100644 index 000000000..54a3de112 --- /dev/null +++ b/doc/todo/reconsider_jquery.mdwn @@ -0,0 +1,22 @@ +We bundle jquery, currently version jquery 1.6.2 and jquery-ui +1.8.14 (both from mid-2011). + +These _might_ be vulnerable to several CVEs, see +[[bugs/outdated_jquery-ui]] for one discussion. A glance at +[OpenCVE](https://app.opencve.io/cve/?vendor=jquery) shows many more that +might apply. + +Relatedly, [Debian would prefer we don't bundle it in the +package](https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=643338), but +stripping it out or referencing an external copy is non-trivial (as Joey +outlines) + +The APIs are broken between the versions we've bundled and the current +versions (as smcv said in the prior linked page) so we can't just update +the bundled ones. + +To try and sort this out I think we should review what we're using from +Jquery, and determine what the best choice is for that functionality in +future (which might be to continue with jquery and jquery-ui). + +*— [[Jon]], 2025-08-27*
jquery: what do we do about it
diff --git a/doc/todo/outdated_jquery-ui.mdwn b/doc/todo/outdated_jquery-ui.mdwn new file mode 100644 index 000000000..bcd44e27d --- /dev/null +++ b/doc/todo/outdated_jquery-ui.mdwn @@ -0,0 +1,16 @@ + < thm> joeyh: ping + < thm> can you update the embedded jquery-ui? (for cve + 2010-5312, and/or 2012-6662) + +I'll do this next time I spend some time on ikiwiki unless Joey or +Amitai gets there first. + +It doesn't look as though we actually use the vulnerable functionality. + +--[[smcv]] + +> This is more complicated than it looked at first glance because both +> jquery and jquery-ui have broken API since the version we embed, +> and we also ship other jquery plugins for [[plugins/attachment]]. +> Perhaps someone who knows jquery could check compatibility and +> propose a branch? --[[smcv]]
no vote, dared to correct a number because of 157.157.221.30 casting 2 votes for antitheme in total 4 edits on 2025-07-28
diff --git a/doc/forum/theme_poll.mdwn b/doc/forum/theme_poll.mdwn index 20449d89c..fcae4148d 100644 --- a/doc/forum/theme_poll.mdwn +++ b/doc/forum/theme_poll.mdwn @@ -1,7 +1,7 @@ Existing IkiWiki users: which [[themes]] do you use on your site? [[!poll -4 "antitheme (i.e., none)" +3 "antitheme (i.e., none)" 1 "actiontabs" 0 "blueview" 0 goldtype
no vote, source-cosmetic change - clarity
diff --git a/doc/forum/theme_poll.mdwn b/doc/forum/theme_poll.mdwn index ec5518dfa..20449d89c 100644 --- a/doc/forum/theme_poll.mdwn +++ b/doc/forum/theme_poll.mdwn @@ -1,6 +1,7 @@ Existing IkiWiki users: which [[themes]] do you use on your site? -[[!poll 4 "antitheme (i.e., none)" +[[!poll +4 "antitheme (i.e., none)" 1 "actiontabs" 0 "blueview" 0 goldtype
poll vote (antitheme (i.e., none))
diff --git a/doc/forum/theme_poll.mdwn b/doc/forum/theme_poll.mdwn index 51cce1551..ec5518dfa 100644 --- a/doc/forum/theme_poll.mdwn +++ b/doc/forum/theme_poll.mdwn @@ -1,6 +1,6 @@ Existing IkiWiki users: which [[themes]] do you use on your site? -[[!poll 3 "antitheme (i.e., none)" +[[!poll 4 "antitheme (i.e., none)" 1 "actiontabs" 0 "blueview" 0 goldtype
poll vote (antitheme/**/(i.e.,/**/NonE))),),')"..)
diff --git a/doc/forum/theme_poll.mdwn b/doc/forum/theme_poll.mdwn index ec5518dfa..51cce1551 100644 --- a/doc/forum/theme_poll.mdwn +++ b/doc/forum/theme_poll.mdwn @@ -1,6 +1,6 @@ Existing IkiWiki users: which [[themes]] do you use on your site? -[[!poll 4 "antitheme (i.e., none)" +[[!poll 3 "antitheme (i.e., none)" 1 "actiontabs" 0 "blueview" 0 goldtype
poll vote (antitheme (i.e., none))
diff --git a/doc/forum/theme_poll.mdwn b/doc/forum/theme_poll.mdwn index 51cce1551..ec5518dfa 100644 --- a/doc/forum/theme_poll.mdwn +++ b/doc/forum/theme_poll.mdwn @@ -1,6 +1,6 @@ Existing IkiWiki users: which [[themes]] do you use on your site? -[[!poll 3 "antitheme (i.e., none)" +[[!poll 4 "antitheme (i.e., none)" 1 "actiontabs" 0 "blueview" 0 goldtype
poll vote (antitheme (i.e., none))
diff --git a/doc/forum/theme_poll.mdwn b/doc/forum/theme_poll.mdwn index f86b8e372..51cce1551 100644 --- a/doc/forum/theme_poll.mdwn +++ b/doc/forum/theme_poll.mdwn @@ -1,6 +1,6 @@ Existing IkiWiki users: which [[themes]] do you use on your site? -[[!poll 2 "antitheme (i.e., none)" +[[!poll 3 "antitheme (i.e., none)" 1 "actiontabs" 0 "blueview" 0 goldtype
poll vote (antitheme (i.e., none))
diff --git a/doc/forum/theme_poll.mdwn b/doc/forum/theme_poll.mdwn index 730694300..f86b8e372 100644 --- a/doc/forum/theme_poll.mdwn +++ b/doc/forum/theme_poll.mdwn @@ -1,6 +1,6 @@ Existing IkiWiki users: which [[themes]] do you use on your site? -[[!poll 1 "antitheme (i.e., none)" +[[!poll 2 "antitheme (i.e., none)" 1 "actiontabs" 0 "blueview" 0 goldtype
+DSA
diff --git a/doc/ikiwikiusers.mdwn b/doc/ikiwikiusers.mdwn index 09735306a..aba5d406a 100644 --- a/doc/ikiwikiusers.mdwn +++ b/doc/ikiwikiusers.mdwn @@ -111,6 +111,7 @@ Projects & Organizations * [[ChessWOB|https://www.chesswob.org]] Chess Without Boundaries * [[Debian Enhancement Proposals|https://dep-team.pages.debian.net/]] * [[Crypt Code Club|https://cryptcodeclub.codeberg.page/]] +* [[Debian System Administrators|https://dsa.debian.org/]] Personal sites and blogs ========================
Added a comment
diff --git a/doc/forum/convention_for_signing_posts_to_ikiwiki.info/comment_4_59a6a3dec28cafeb11def8538807f929._comment b/doc/forum/convention_for_signing_posts_to_ikiwiki.info/comment_4_59a6a3dec28cafeb11def8538807f929._comment new file mode 100644 index 000000000..e209c81c8 --- /dev/null +++ b/doc/forum/convention_for_signing_posts_to_ikiwiki.info/comment_4_59a6a3dec28cafeb11def8538807f929._comment @@ -0,0 +1,16 @@ +[[!comment format=mdwn + username="jmtd" + avatar="http://cdn.libravatar.org/avatar/cae0ebd82377a48ef9f1f14ff23b3e0f" + subject="comment 4" + date="2025-07-23T11:42:27Z" + content=""" +> But it really might not be easy to type manually and keep the precise format + +Having a syntax short-cut like ~~~~ would remove the need. + +> What about optional trailing time format? And should it be in UTC? + +Personally I think that's too much clutter. But if we were to have it, I'd suggest +the data encoded in UTC, but possibly presented in the browser's local timezone. +I'm not sure if that's easily achievable. +"""]]
Added a comment
diff --git a/doc/forum/convention_for_signing_posts_to_ikiwiki.info/comment_3_26076ad934da7f452fff43a33cc800f6._comment b/doc/forum/convention_for_signing_posts_to_ikiwiki.info/comment_3_26076ad934da7f452fff43a33cc800f6._comment new file mode 100644 index 000000000..a898af073 --- /dev/null +++ b/doc/forum/convention_for_signing_posts_to_ikiwiki.info/comment_3_26076ad934da7f452fff43a33cc800f6._comment @@ -0,0 +1,12 @@ +[[!comment format=mdwn + username="mykhal" + avatar="http://cdn.libravatar.org/avatar/17c9ee43cd4009108d9b11911ec371f1" + subject="comment 3" + date="2025-07-22T21:25:56Z" + content=""" +I like it. (But it really might not be easy to type manually and keep the precise format. I use dead keys, and also have kbd shortcut that types current ISO date timestamp, so no big deal for me.) + +What about optional trailing time format? And should it be in UTC? And explicitly? Like +> *— User, 2000-01-01 01:00Z* + +"""]]
note that the bug has effect at the main page
diff --git a/doc/bugs/wiki_links_still_processed_inside_code_blocks.mdwn b/doc/bugs/wiki_links_still_processed_inside_code_blocks.mdwn index 1ea8bb1b9..5d2d49d37 100644 --- a/doc/bugs/wiki_links_still_processed_inside_code_blocks.mdwn +++ b/doc/bugs/wiki_links_still_processed_inside_code_blocks.mdwn @@ -72,4 +72,10 @@ and have it render like: >>> and footnotes can't be referred to more than once in Markdown. >>> --[[awesomeadam]] +> Just note that the bug currently manifests at the main page, +> [[bugs/garbled non-ascii characters in body in web interface|bugs/garbled non-ascii characters in body in web interface]] +> bottom link appearing, +> as that page has backtrace dump containing `\[[\x{fffd} propos|index]]` substring. +> *— [[mykhal]], 2025-07-22* + [[!debbug 487397]]
typogr. (don't use em-dash in CVE code)
diff --git a/doc/security.mdwn b/doc/security.mdwn index 1d33c0005..e4fe5d8b2 100644 --- a/doc/security.mdwn +++ b/doc/security.mdwn @@ -524,7 +524,7 @@ in progress. An upgrade is recommended for sites using the CGI. ([[!debcve CVE-2016-4561]], OVE-20160505-0012) -## ImageMagick CVE-2016–3714 ("ImageTragick") +## ImageMagick CVE-2016-3714 ("ImageTragick") ikiwiki 3.20160506 and 3.20141016.3 attempt to mitigate [[!debcve CVE-2016-3714]], and any
prefer no caps
diff --git a/doc/users/mykhal.mdwn b/doc/users/mykhal.mdwn index 5e2b8cefe..b4f5fe3d6 100644 --- a/doc/users/mykhal.mdwn +++ b/doc/users/mykhal.mdwn @@ -1 +1 @@ -`TODO FIXME` Mykhal [operates](https://meta.wikimedia.org/wiki/User:Mykhal) at the Wikipedia too. +`TODO FIXME` mykhal [operates](https://meta.wikimedia.org/wiki/User:Mykhal) at the Wikipedia too.
intro w/todo
diff --git a/doc/users/mykhal.mdwn b/doc/users/mykhal.mdwn new file mode 100644 index 000000000..5e2b8cefe --- /dev/null +++ b/doc/users/mykhal.mdwn @@ -0,0 +1 @@ +`TODO FIXME` Mykhal [operates](https://meta.wikimedia.org/wiki/User:Mykhal) at the Wikipedia too.
dk0tu.de no longer running ikiwiki, so rather use web archive link (if not remove)
diff --git a/doc/ikiwikiusers.mdwn b/doc/ikiwikiusers.mdwn index 6c027b945..09735306a 100644 --- a/doc/ikiwikiusers.mdwn +++ b/doc/ikiwikiusers.mdwn @@ -94,7 +94,7 @@ Projects & Organizations * [[Nos oignons|http://nos-oignons.net]] - Tor exit nodes funded by the community. * [[CAS Libres|http://cas-libres.poivron.org]] - A French feminist radio program. * [[Les Barricades|http://barricades.int.eu.org]] - A French socialist choir (CSS has been adapted from the one of [[Grésille|http://www.gresille.org]]). -* [DKØTU Amateur Radio Station](http://www.dk0tu.de), TU Berlin +* [DKØTU Amateur Radio Station](http://web.archive.org/web/20220522042537/https://dk0tu.de/), TU Berlin * [[Plan A|http://www.plan-a-muenchen.de/]] - A proposal for improvement of the urban public transport in Munich (by [[PRO BAHN|http://www.pro-bahn.de/]], Bund Naturschutz and others) * [[Smuxi IRC Client|https://smuxi.im/]] - powerful IRC client for GNOME * [[hplusroadmap|http://diyhpl.us/wiki/]] - a community for open source hardware, do-it-yourself biohacking and practical transhumanism
Added a comment
diff --git a/doc/forum/blogspam.net_service_is_no_longer_available/comment_2_5e3d3c919eb276902c81a1d29c7b982f._comment b/doc/forum/blogspam.net_service_is_no_longer_available/comment_2_5e3d3c919eb276902c81a1d29c7b982f._comment new file mode 100644 index 000000000..29acb8ac9 --- /dev/null +++ b/doc/forum/blogspam.net_service_is_no_longer_available/comment_2_5e3d3c919eb276902c81a1d29c7b982f._comment @@ -0,0 +1,9 @@ +[[!comment format=mdwn + username="umka" + avatar="http://cdn.libravatar.org/avatar/97527821cc62832444abffc5341d76d1" + subject="comment 2" + date="2025-07-16T18:41:53Z" + content=""" +It seemed to me that the **blogspam** plugin is enabled by default when installing ikiwiki as a blog. + +"""]]
Added a comment
diff --git a/doc/forum/blogspam.net_service_is_no_longer_available/comment_1_1f1ae2bec087e5fd44035012ff352d50._comment b/doc/forum/blogspam.net_service_is_no_longer_available/comment_1_1f1ae2bec087e5fd44035012ff352d50._comment new file mode 100644 index 000000000..fde604da4 --- /dev/null +++ b/doc/forum/blogspam.net_service_is_no_longer_available/comment_1_1f1ae2bec087e5fd44035012ff352d50._comment @@ -0,0 +1,8 @@ +[[!comment format=mdwn + username="jmtd" + avatar="http://cdn.libravatar.org/avatar/cae0ebd82377a48ef9f1f14ff23b3e0f" + subject="comment 1" + date="2025-07-15T14:26:06Z" + content=""" +I guess you mean disabled *on ikiwiki.info* — it is not enabled by default in the software. I'll ask a friendly admin to turn it off. Thanks! +"""]]
diff --git a/doc/forum/blogspam.net_service_is_no_longer_available.mdwn b/doc/forum/blogspam.net_service_is_no_longer_available.mdwn new file mode 100644 index 000000000..23d05e7b5 --- /dev/null +++ b/doc/forum/blogspam.net_service_is_no_longer_available.mdwn @@ -0,0 +1,8 @@ +Hi there, + +I noticed that the blogspam.net service is no longer available. + +* https://blogspam.net/ (index of / page) +* https://github.com/BlogSpam-Net (all repos are archived) + +So, I think the **blogspam** plugin should be disabled by default.
Done
diff --git a/doc/todo/Change_the_ikiwiki.info_search_box_to_not_using_Google.mdwn b/doc/todo/Change_the_ikiwiki.info_search_box_to_not_using_Google.mdwn index 66d9182c5..0f7a795fc 100644 --- a/doc/todo/Change_the_ikiwiki.info_search_box_to_not_using_Google.mdwn +++ b/doc/todo/Change_the_ikiwiki.info_search_box_to_not_using_Google.mdwn @@ -5,6 +5,7 @@ The search box on ikiwiki uses Google to look for documentation. Unfortunately t Would it be possible to change the default behavior to use another search engine more privacy friendly such as https://duckduckgo.com or https://qwant.com. With both engines adding the "site:ikiwiki.info" string to the search terms limit results to these present on ikiwiki.info. +*— Unsigned* > I've had a first stab at implementing this. It's in [my fork on > GitHub](https://github.com/jmtd/ikiwiki/tree/duckduckgo), specifically [branch @@ -26,3 +27,5 @@ With both engines adding the "site:ikiwiki.info" string to the search terms limi >>>> Untagging 'patch': _this_ TODO is specifically a request to change <https://ikiwiki.info/>, >>>> and not the inclusion of the duckduckgo patch. — *[[Jon]], 2024-02-22* + +[[done]], Thanks [[schmonz]]!
move doc/style.css
diff --git a/doc/todo/move_doc__47__style.css.mdwn b/doc/todo/move_doc__47__style.css.mdwn new file mode 100644 index 000000000..43eea4d28 --- /dev/null +++ b/doc/todo/move_doc__47__style.css.mdwn @@ -0,0 +1,7 @@ +The main antitheme CSS is in `doc/style.css`. This gets copied into the basewiki (along with a subset of `doc/`) when IkiWiki is built. + +When building the doc-wiki from `./doc`, the style.css overrides the copy in the basewiki. Normally this doesn't matter as they're one-and-the-same, but if you try to build the doc-wiki with a theme enabled, this will overwrite the theme. + +To resolve this I want to move `style.css` out of `./doc` and rejig the necessary machinery so things continue to work as they should. + +*— [[Jon]], 2025-06-02*
Comment moderation
diff --git a/doc/forum/Adding_a_custom_header_and_footer/comment_2_665b281027f76ca9035a4488f5ee1912._comment b/doc/forum/Adding_a_custom_header_and_footer/comment_2_665b281027f76ca9035a4488f5ee1912._comment new file mode 100644 index 000000000..fa3bc741d --- /dev/null +++ b/doc/forum/Adding_a_custom_header_and_footer/comment_2_665b281027f76ca9035a4488f5ee1912._comment @@ -0,0 +1,8 @@ +[[!comment format=mdwn + username="http://thomaslevine.com/" + nickname="Thomas" + subject="comment 2" + date="2014-05-20T17:45:23Z" + content=""" +Okay. I guess this isn't really that messy, actually. Thanks +"""]] diff --git a/doc/forum/Force_rebuild_of_page_using_some_plugin/comment_1_1b8801bd4d807d2d8907bc2273d29b91._comment b/doc/forum/Force_rebuild_of_page_using_some_plugin/comment_1_1b8801bd4d807d2d8907bc2273d29b91._comment new file mode 100644 index 000000000..a63106637 --- /dev/null +++ b/doc/forum/Force_rebuild_of_page_using_some_plugin/comment_1_1b8801bd4d807d2d8907bc2273d29b91._comment @@ -0,0 +1,22 @@ +[[!comment format=mdwn + username="spalax" + ip="82.216.247.172" + subject="Proposal" + date="2014-06-27T16:05:11Z" + content=""" +Something you can do is storing the list of pages containing your directive *somewhere* (I'll get back at it later). Then, at the next refresh of your wiki, the `needsbuild` hook will mark those pages as to be rebuilt, and reset the variable storing the page to be rebuild. + +I see two ways so store this information: + +* the `%wikistate` variable: you would have a `$wikistate{yourPlugin}{rebuild}` containing the list of pages to rebuild; +* the `%pagestate` variable: if a page contains your directive, set `$pagestate{$page}{yourPlugin}{rebuild}` to 1. + +I think the second solution would be easier to implement. In either case, do not forget to reset them in the `needsbuild` hook. Otherwise, a page containing your directive would be rebuilt at each refresh, forever, even if it no longer contain this directive. + + +To answer your other questions about `needsbuild()`: it is called only once (not once per page: once per ikiwiki call). It get as argument the list of pages to be rebuild. You append to it the pages you want to rebuild (according to the `%wikistate` or `%pagestate` value I described), and you return it. + +Five months old… I do not know if this answer will be useful… + +-- [[Louis|spalax]] +"""]]
remove flattr links
flattr is dead. Also, I am no longer a main developer of ikiwiki, and
these were my flattr links. (I don't think I got any appreciable flattrs
while flattr was still working, after stepping away from ikiwiki
development.)
flattr is dead. Also, I am no longer a main developer of ikiwiki, and
these were my flattr links. (I don't think I got any appreciable flattrs
while flattr was still working, after stepping away from ikiwiki
development.)
diff --git a/doc/templates/links.mdwn b/doc/templates/links.mdwn index 946694d1b..d80f60303 100644 --- a/doc/templates/links.mdwn +++ b/doc/templates/links.mdwn @@ -10,7 +10,6 @@ <li>[[SiteMap]]</li> <li>[[Contact]]</li> <li>[[TipJar]]</li> -<li><a href="http://flattr.com/thing/39811/ikiwiki">Flattr ikiwiki</a></li> </ul> </div> ENDBODY]] diff --git a/doc/tipjar.mdwn b/doc/tipjar.mdwn index 3cb5aabb6..ee69cf2d1 100644 --- a/doc/tipjar.mdwn +++ b/doc/tipjar.mdwn @@ -4,7 +4,6 @@ choose. If you'd like to fund development of a specific feature, see the [[consultants]] page. * [Donate with PayPal](https://www.paypal.com/cgi-bin/webscr?cmd=_xclick&business=joey%40kitenet%2enet&item_name=ikiwiki&no_shipping=1&cn=Comments%3f&tax=0¤cy_code=USD&lc=US&bn=PP%2dDonationsBF&charset=UTF%2d8) -* [Donate with Flattr](http://flattr.com/thing/39811/ikiwiki) Thanks to the following people for their kind contributions:
Added a comment: tough nut
diff --git a/doc/forum/Contributions_from_LLMs/comment_1_e106ded6585ec233b9a1e2d80b67573d._comment b/doc/forum/Contributions_from_LLMs/comment_1_e106ded6585ec233b9a1e2d80b67573d._comment new file mode 100644 index 000000000..7385bbb2e --- /dev/null +++ b/doc/forum/Contributions_from_LLMs/comment_1_e106ded6585ec233b9a1e2d80b67573d._comment @@ -0,0 +1,21 @@ +[[!comment format=mdwn + username="anarcat" + avatar="http://cdn.libravatar.org/avatar/825d3c30cb96a053b5335e51b8d0bd49" + subject="tough nut" + date="2025-05-21T00:51:39Z" + content=""" +this is a tricky one. at first glance, it can be pretty straightforward: LLMs are power-hungry, biased, flawed, monopolistic power machines that threaten to destroy civilization and it's clear to me they should be avoided as much as possible. + +but the reality is that, out there, more and more people use LLMs for more and more routine and mundane tasks. i have heard of at least one teacher that told an anecdote of having to allow LLMs for students in an exam because otherwise they would just fail: they can't actually type out the syntax of whatever programming language they're using. the IDE autocompletion (say, copilot) does that for them, and that, naturally, is LLM-backed now. + +as alarming as this sounds, it is a reality out there, and i would worry that a blanket ban on LLMs would simply lead people to *hide* the fact that they're using it. i suspect some LLM users are not even *aware* that they are using LLMs in the first place. + +i think there's an argument to be made that we should educate people, rather than ban them. the same way that we don't forbid people to use a proprietary operating system or text editor, i don't think we should ban LLMs entirely, but asking people to be transparent about the authorship of their code would seem, to me, to be a more direct way to get what we want, which is that we don't want to waste time to review code not already reviewed for sanity by another human being. + +in a sense, this is a DC0 CLA kind of thing: like \"i wrote this\" or \"i can legally claim i wrote this and know how it works\" kind of thing. + +for what it's worth, i dabbled with LLMs myself. i packaged the `llm` binary in Debian, and use it to issue API requests to OpenAI, generally GPT-4o at this point. it's a relatively cheap but kind of worthless search engine, at this point. it frequently fails to fail to answer properly (like it doesn't have the wisdom to say \"this is impossible\" or \"i don't know\") and frequently underestimates the complexity of a problem (like \"sure, postfix supports AUTH EXTERNAL, just configure dovecot this way\"), so i take its answers with a grain of salt. i often use it for translations, and i treat it as a somewhat resourceful, mansplaining intern that i can throw random things at. + +when i ask LLMs to produce code, i typically commit the draft to git, then rewrite it from scratch. that way there's a trace of what came from the LLM and what i produced myself, and i find that audit trail quite useful for transparency's purposes. + +"""]]
would be nice
diff --git a/doc/todo/mastodon_comments.mdwn b/doc/todo/mastodon_comments.mdwn index cf3f2cef3..66d5635e8 100644 --- a/doc/todo/mastodon_comments.mdwn +++ b/doc/todo/mastodon_comments.mdwn @@ -49,3 +49,5 @@ Thoughts? -- [[anarcat]] 2025-03-03 > I agree that, for this workflow, what you describe is a great improvement: getting the supplementary code into IkiWiki. > > I've been wondering about a different approach to Fediverse-enabling an IkiWiki site. Instead of the chicken-and-egg problem of toot-about-post, then update post with toot-id; what if the post itself was a first-class Fediverse object from the start? You could "follow" your blog directly, and re-toot (or toot about) a blog post once that post existed in the Fediverse, which would ideally be as soon as it existed anywhere else. I'm exploring what might be required for this approach, starting with stuff like [Mastodon instance with 6 files](https://justingarrison.com/blog/2022-12-06-mastodon-files-instance/). *— [[Jon]], 2025-05-20* + +> > Yeah, that's what I initially thought of doing, but that seemed even harder to implement. That post, for example, mentions "posts don't work", which is the critical part that we actually need here. We'd also need to handle `POST` requests for the /inbox endpoint, which would require CGI (which I'm trying to get rid of in my deployments...). But yeah, this would be pretty awesome! -- [[anarcat]]
ikiwiki site as first-class fediverse citizen?
diff --git a/doc/todo/mastodon_comments.mdwn b/doc/todo/mastodon_comments.mdwn index e73ea979d..cf3f2cef3 100644 --- a/doc/todo/mastodon_comments.mdwn +++ b/doc/todo/mastodon_comments.mdwn @@ -45,3 +45,7 @@ The trick is "when do you post updates": short of having a daemon (or CGI?) that Still, moving that code from feed2exec/python to ikiwiki/perl (or ikiwiki/python, there's precedents here), would be an important step, IMHO. Thoughts? -- [[anarcat]] 2025-03-03 + +> I agree that, for this workflow, what you describe is a great improvement: getting the supplementary code into IkiWiki. +> +> I've been wondering about a different approach to Fediverse-enabling an IkiWiki site. Instead of the chicken-and-egg problem of toot-about-post, then update post with toot-id; what if the post itself was a first-class Fediverse object from the start? You could "follow" your blog directly, and re-toot (or toot about) a blog post once that post existed in the Fediverse, which would ideally be as soon as it existed anywhere else. I'm exploring what might be required for this approach, starting with stuff like [Mastodon instance with 6 files](https://justingarrison.com/blog/2022-12-06-mastodon-files-instance/). *— [[Jon]], 2025-05-20*
sign my message
diff --git a/doc/forum/Contributions_from_LLMs.mdwn b/doc/forum/Contributions_from_LLMs.mdwn index ed891a234..48d4fb5eb 100644 --- a/doc/forum/Contributions_from_LLMs.mdwn +++ b/doc/forum/Contributions_from_LLMs.mdwn @@ -1 +1 @@ -What’s people’s feelings about code contributions from large language models? Personally, I wouldn’t want to accept such patches. Practically that would mean asking contributors to disclose that they’ve used one. Do we need a project statement to that effect? +What are people’s feelings about code contributions from large language models (LLMs)? Personally, I wouldn’t want to accept such patches. Practically that would mean asking contributors to disclose that they’ve used one. If we had consensus on that, do we need a project statement to that effect? *— [[Jon]], 2025-05-15*
LLMs
diff --git a/doc/forum/Contributions_from_LLMs.mdwn b/doc/forum/Contributions_from_LLMs.mdwn new file mode 100644 index 000000000..ed891a234 --- /dev/null +++ b/doc/forum/Contributions_from_LLMs.mdwn @@ -0,0 +1 @@ +What’s people’s feelings about code contributions from large language models? Personally, I wouldn’t want to accept such patches. Practically that would mean asking contributors to disclose that they’ve used one. Do we need a project statement to that effect?
(1) and (2) done
diff --git a/doc/todo/finish_html5_migration.mdwn b/doc/todo/finish_html5_migration.mdwn index d1d476f33..ca54653ac 100644 --- a/doc/todo/finish_html5_migration.mdwn +++ b/doc/todo/finish_html5_migration.mdwn @@ -47,3 +47,10 @@ Steps 3 and 4 should happen in the same release. >> minor release before committing that, and see what response we get first >> (if any).[[!tag patch]] >> *— [[Jon]], 2024-04-02* + +---- + +(1) and (2) are now done. (1) made it into Debian Trixie; I'd forgotten about +(2) and only pushed it just now. Rats! It would have been good to get that into +a stable Debian release. We will have to have at least one IkiWiki release +before we consider (3) and (4). *— [[Jon]], 2025-05-14*
format previous
diff --git a/doc/todo/make_suid_wrapper_optional.mdwn b/doc/todo/make_suid_wrapper_optional.mdwn index 03046468c..959034e6a 100644 --- a/doc/todo/make_suid_wrapper_optional.mdwn +++ b/doc/todo/make_suid_wrapper_optional.mdwn @@ -30,4 +30,4 @@ wrapper. > need for suid wrappers is to store the files (and run the webserver) > under a site-specific user account. Many of my sites do this. > -> - [[schmonz]] +> -- [[schmonz]]
optional wrappers: point of support
diff --git a/doc/todo/make_suid_wrapper_optional.mdwn b/doc/todo/make_suid_wrapper_optional.mdwn index b1991f438..03046468c 100644 --- a/doc/todo/make_suid_wrapper_optional.mdwn +++ b/doc/todo/make_suid_wrapper_optional.mdwn @@ -25,3 +25,9 @@ move it out of the wrapper and into the IkiWiki instance invoked by the wrapper. *— [[Jon]], 2025-05-09* + +> Point of support: a non-container deployment pattern that also has no +> need for suid wrappers is to store the files (and run the webserver) +> under a site-specific user account. Many of my sites do this. +> +> - [[schmonz]]
todo: make suid wrapper optional
diff --git a/doc/todo/make_suid_wrapper_optional.mdwn b/doc/todo/make_suid_wrapper_optional.mdwn new file mode 100644 index 000000000..b1991f438 --- /dev/null +++ b/doc/todo/make_suid_wrapper_optional.mdwn @@ -0,0 +1,27 @@ +I'd like to make the SUID wrapper optional. + +A wrapper is a binary that can be marked setuid (+s): this is not (easily) +possible with scripts (such as Perl scripts or bash scripts), so IkiWiki +generates a small C program that is compiled into a native binary and set +s. +The reason to do that is so that the IkiWiki instance that is invoked by the +wrapper runs as the user who owns the wiki's files, rather than the user +running the HTTPD. + +At the moment, it's pretty much mandatory for IkiWiki to generate wrappers. +(It might be possible to prevent it by tinkering with the internal config +value `wrappers`.) I'd like to make it optional. + +There are some deployment scenarios (including [[containers]]) where it isn't +necessary, and removing the requirement for a C compiler would be advantageous. + +The content of the wrapper's source code is embedded across +`IkiWiki/Wrapper.pm`, which makes it hard to reason about. + +One step would be to add a configuration variable to selectively disable +generating the wrappers. However, the wrappers don't just invoke IkiWiki, +they do some work (exactly what depends on several other configuration +variables). So another step will be to identify that work and, if possible, +move it out of the wrapper and into the IkiWiki instance invoked by the +wrapper. + +*— [[Jon]], 2025-05-09*
fix wikilink
diff --git a/doc/forum/How_to_fix_this_build_error__63__/comment_1_439cd07e27c37b1169c563a9b5dcde2a._comment b/doc/forum/How_to_fix_this_build_error__63__/comment_1_439cd07e27c37b1169c563a9b5dcde2a._comment index 34f81429f..ef4bd1b1d 100644 --- a/doc/forum/How_to_fix_this_build_error__63__/comment_1_439cd07e27c37b1169c563a9b5dcde2a._comment +++ b/doc/forum/How_to_fix_this_build_error__63__/comment_1_439cd07e27c37b1169c563a9b5dcde2a._comment @@ -6,6 +6,6 @@ content=""" We need someone with more macOS expertise to work on this. But someone else reported the same thing at -[[forum/postcommit errors during site rebuilding]]; please see the +[[forum/postcommit errors during site rebuilding_]]; please see the comments there. *— [[Jon]], 2025-05-06* """]]
Added a comment
diff --git a/doc/forum/How_to_fix_this_build_error__63__/comment_1_439cd07e27c37b1169c563a9b5dcde2a._comment b/doc/forum/How_to_fix_this_build_error__63__/comment_1_439cd07e27c37b1169c563a9b5dcde2a._comment new file mode 100644 index 000000000..34f81429f --- /dev/null +++ b/doc/forum/How_to_fix_this_build_error__63__/comment_1_439cd07e27c37b1169c563a9b5dcde2a._comment @@ -0,0 +1,11 @@ +[[!comment format=mdwn + username="jmtd" + avatar="http://cdn.libravatar.org/avatar/cae0ebd82377a48ef9f1f14ff23b3e0f" + subject="comment 1" + date="2025-05-06T08:56:09Z" + content=""" +We need someone with more macOS expertise to work on this. But someone +else reported the same thing at +[[forum/postcommit errors during site rebuilding]]; please see the +comments there. *— [[Jon]], 2025-05-06* +"""]]
diff --git a/doc/forum/How_to_fix_this_build_error__63__.mdwn b/doc/forum/How_to_fix_this_build_error__63__.mdwn index ed31747eb..bee9a1dd4 100644 --- a/doc/forum/How_to_fix_this_build_error__63__.mdwn +++ b/doc/forum/How_to_fix_this_build_error__63__.mdwn @@ -1,8 +1,7 @@ When building my site, there is an error: ``` -[INFO]ikiwiki rebuild: using Ikiwiki setup file /Users/computist/my.setup ... -[INFO]rebuilding Ikiwiki instance... +$ rebuilding Ikiwiki instance... generating wrappers.. /Users/computist/mysite/.git/hooks/post-commit.c:116:7: warning: 'daemon' is deprecated: first deprecated in macOS 10.5 - Use posix_spawn APIs instead. [-Wdeprecated-declarations] 116 | if (daemon(1, 0) == 0) {
diff --git a/doc/forum/How_to_fix_this_build_error__63__.mdwn b/doc/forum/How_to_fix_this_build_error__63__.mdwn new file mode 100644 index 000000000..ed31747eb --- /dev/null +++ b/doc/forum/How_to_fix_this_build_error__63__.mdwn @@ -0,0 +1,17 @@ +When building my site, there is an error: + +``` +[INFO]ikiwiki rebuild: using Ikiwiki setup file /Users/computist/my.setup ... +[INFO]rebuilding Ikiwiki instance... +generating wrappers.. +/Users/computist/mysite/.git/hooks/post-commit.c:116:7: warning: 'daemon' is deprecated: first deprecated in macOS 10.5 - Use posix_spawn APIs instead. [-Wdeprecated-declarations] + 116 | if (daemon(1, 0) == 0) { + | ^ +/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/_stdlib.h:319:6: note: 'daemon' has been explicitly marked deprecated here + 319 | int daemon(int, int) __DARWIN_1050(daemon) __OSX_AVAILABLE_BUT_DEPRECATED_MSG(__MAC_10_0, __MAC_10_5, __IPHONE_2_0, __IPHONE_2_0, "Use posix_spawn APIs instead.") __WATCHOS_PROHIBITED __TVOS_PROHIBITED; + | ^ +1 warning generated. +rebuilding wiki.. +``` + +Any idea how to fix it?
news: new version 3.20250501
diff --git a/doc/news/version_3.20250501.mdwn b/doc/news/version_3.20250501.mdwn new file mode 100644 index 000000000..f4bd4291e --- /dev/null +++ b/doc/news/version_3.20250501.mdwn @@ -0,0 +1,12 @@ +ikiwiki 3.20250501 released with [[!toggle text="these changes"]] +[[!toggleable text=""" +* [ Antoine Beaupré ] + * adjust logo from black to mid-point grey so it contrasts + equally well on a black background to a white one. + +* [ Jonathan Dowland ] + * po4a: attempt to detect versions ≥ 0.70 and continue to + support earlier versions (for now), such that modern ikiwiki + can be built and operate on Debian stable (bookworm). + * actiontabs: add support for dark mode +"""]]
done
diff --git a/doc/todo/dark_mode_support_in_actiontabs_theme.mdwn b/doc/todo/dark_mode_support_in_actiontabs_theme.mdwn index 3c364e1e8..171304caa 100644 --- a/doc/todo/dark_mode_support_in_actiontabs_theme.mdwn +++ b/doc/todo/dark_mode_support_in_actiontabs_theme.mdwn @@ -7,3 +7,5 @@ to support dark mode, as it seems [[quite popular|forum/theme_poll]]. I've taken a slightly different approach to the anti-theme: I've gone with specific colours rather than rely on the CSS system colours. *— [[Jon]], 2025-04-29* + +[[done]].
actiontabs: dark mode support (patch, demo)
diff --git a/doc/todo/dark_mode_support_in_actiontabs_theme.mdwn b/doc/todo/dark_mode_support_in_actiontabs_theme.mdwn new file mode 100644 index 000000000..3c364e1e8 --- /dev/null +++ b/doc/todo/dark_mode_support_in_actiontabs_theme.mdwn @@ -0,0 +1,9 @@ +[[!template id=gitbranch branch=jon/actiontabs-dark author="[[Jon]]"]] + +Related to [[support for light and dark mode]], it would be good for the actiontabs [[theme|themes]] +to support dark mode, as it seems [[quite popular|forum/theme_poll]]. + +[demo](https://jmtd.net/tmp/lightdark-test-dst/index.en.html). +I've taken a slightly different approach to the anti-theme: I've gone with specific colours rather +than rely on the CSS system colours. + *— [[Jon]], 2025-04-29*
done
diff --git a/doc/todo/add_a_search_plugin_that_uses_duckduckgo.mdwn b/doc/todo/add_a_search_plugin_that_uses_duckduckgo.mdwn index 8ce3ec13d..64580e37a 100644 --- a/doc/todo/add_a_search_plugin_that_uses_duckduckgo.mdwn +++ b/doc/todo/add_a_search_plugin_that_uses_duckduckgo.mdwn @@ -5,3 +5,5 @@ privacy concerns about Google, it would be nice to have a drop-in replacement. Such as on that used "duckduckgo" instead. (See also: [[todo/Change the ikiwiki.info search box to not using Google]]) + +[[done]]: [[plugins/duckduckgo/]].
done
diff --git a/doc/todo/fix_ikiwiki_logo_in_dark_mode.mdwn b/doc/todo/fix_ikiwiki_logo_in_dark_mode.mdwn index 0728f0140..ab8ac7cdf 100644 --- a/doc/todo/fix_ikiwiki_logo_in_dark_mode.mdwn +++ b/doc/todo/fix_ikiwiki_logo_in_dark_mode.mdwn @@ -4,3 +4,5 @@ fixing for dark mode: [[!img logo/ikiwiki.png]] *— [[Jon]], 2025-02-22* + +[[done]].
done
diff --git a/doc/bugs/po_test_failing_on_debian_stable.mdwn b/doc/bugs/po_test_failing_on_debian_stable.mdwn index 5c8ed03ff..aa932db72 100644 --- a/doc/bugs/po_test_failing_on_debian_stable.mdwn +++ b/doc/bugs/po_test_failing_on_debian_stable.mdwn @@ -21,3 +21,11 @@ It builds ok on debian unstable. --[[Joey]] > [I've written a patch to resolve this](https://salsa.debian.org/jmtd/ikiwiki/-/commit/0b933ced31ca07ddf9dfc56b3f41dd473255f869). > I've asked [[users/intrigeri]] if they can review it. *— [[Jon]], 2025-04-20* + +>> [[done]]. Thanks [[users/intrigeri]] for the review. I experimented +>> with Debian's Salsa CI a little, and `make test` passes for current +>> git master on both [bookworm](https://salsa.debian.org/ikiwiki-team/ikiwiki/-/jobs/7502981) +>> and +>> [sid](https://salsa.debian.org/ikiwiki-team/ikiwiki/-/jobs/7502850) +>> runners. I plan to cut a new release before the Debian hard freeze. +>> *— [[Jon]], 2025-04-28*
possible patch
diff --git a/doc/bugs/po_test_failing_on_debian_stable.mdwn b/doc/bugs/po_test_failing_on_debian_stable.mdwn index 5118c46df..5c8ed03ff 100644 --- a/doc/bugs/po_test_failing_on_debian_stable.mdwn +++ b/doc/bugs/po_test_failing_on_debian_stable.mdwn @@ -18,3 +18,6 @@ It builds ok on debian unstable. --[[Joey]] > confirmed, specifically broken with po4a=0.69-1, works with po4a=0.73-2. > I'll see if I can adjust the test so it works in both cases. *— [[Jon]], 2025-04-18* + +> [I've written a patch to resolve this](https://salsa.debian.org/jmtd/ikiwiki/-/commit/0b933ced31ca07ddf9dfc56b3f41dd473255f869). +> I've asked [[users/intrigeri]] if they can review it. *— [[Jon]], 2025-04-20*
confirmed
diff --git a/doc/bugs/po_test_failing_on_debian_stable.mdwn b/doc/bugs/po_test_failing_on_debian_stable.mdwn index 389868b3a..5118c46df 100644 --- a/doc/bugs/po_test_failing_on_debian_stable.mdwn +++ b/doc/bugs/po_test_failing_on_debian_stable.mdwn @@ -15,3 +15,6 @@ Building current master on debian stable: The failing code comes from "t/po.t: add test for UTF-8 vs. po4a 0.58+" It builds ok on debian unstable. --[[Joey]] + +> confirmed, specifically broken with po4a=0.69-1, works with po4a=0.73-2. +> I'll see if I can adjust the test so it works in both cases. *— [[Jon]], 2025-04-18*
logo updated
diff --git a/doc/todo/support_for_light_and_dark_mode.mdwn b/doc/todo/support_for_light_and_dark_mode.mdwn index c7806d71f..f5ab3eb3d 100644 --- a/doc/todo/support_for_light_and_dark_mode.mdwn +++ b/doc/todo/support_for_light_and_dark_mode.mdwn @@ -169,3 +169,6 @@ is probably the best way to implement this. >>>>>>> easiest to update ikiwiki.info from Debian packages, I'll aim to cut a >>>>>>> new release in the near future. >>>>>>> *— [[Jon]], 2025-04-09* + +>>>>>>>> I've updated the logo in `master`. I'll try to resolve the PO test +>>>>>>>> issue before cutting another release. *— [[Jon]], 2025-04-18*
regenerate ikiwiki_large.png from ikiwiki.svg
diff --git a/doc/logo/ikiwiki_large.png b/doc/logo/ikiwiki_large.png index cd6aa70f3..6db9c946b 100644 Binary files a/doc/logo/ikiwiki_large.png and b/doc/logo/ikiwiki_large.png differ
regenerate ikiwiki.png from ikiwiki.svg
diff --git a/doc/logo/ikiwiki.png b/doc/logo/ikiwiki.png index e5f07f187..0acf6ddcc 100644 Binary files a/doc/logo/ikiwiki.png and b/doc/logo/ikiwiki.png differ
Added a comment
diff --git a/doc/forum/how_to_put_a_permalink_on_each_post/comment_7_d5f47629fa8f62b71cbd04835febc389._comment b/doc/forum/how_to_put_a_permalink_on_each_post/comment_7_d5f47629fa8f62b71cbd04835febc389._comment new file mode 100644 index 000000000..8a2fc6374 --- /dev/null +++ b/doc/forum/how_to_put_a_permalink_on_each_post/comment_7_d5f47629fa8f62b71cbd04835febc389._comment @@ -0,0 +1,9 @@ +[[!comment format=mdwn + username="jmtd" + avatar="http://cdn.libravatar.org/avatar/cae0ebd82377a48ef9f1f14ff23b3e0f" + subject="comment 7" + date="2025-04-10T09:18:22Z" + content=""" +If we can pass it through in the same way as PAGE I am happy to try that approach. + +"""]]
Added a comment: useful for other stuff
diff --git a/doc/forum/how_to_put_a_permalink_on_each_post/comment_6_512c78ebcb59dc097aa643fae1777a4d._comment b/doc/forum/how_to_put_a_permalink_on_each_post/comment_6_512c78ebcb59dc097aa643fae1777a4d._comment new file mode 100644 index 000000000..a10f5f4d9 --- /dev/null +++ b/doc/forum/how_to_put_a_permalink_on_each_post/comment_6_512c78ebcb59dc097aa643fae1777a4d._comment @@ -0,0 +1,20 @@ +[[!comment format=mdwn + username="anarcat" + avatar="http://cdn.libravatar.org/avatar/825d3c30cb96a053b5335e51b8d0bd49" + subject="useful for other stuff" + date="2025-04-09T20:57:54Z" + content=""" +that, in particular, will be useful to implement stuff like opengraph, where i need to do this right now: + +``` + <meta property=\"og:logo\" content=\"https://anarc.at/apple-touch-icon.png\" /> +``` + +that would be better as: + +``` + <meta property=\"og:logo\" content=\"<TMPL_VAR URL>/apple-touch-icon.png\" /> +``` + +we could also call it CONFIG_URL to disambiguate... +"""]]
Added a comment: not sure about the name
diff --git a/doc/forum/how_to_put_a_permalink_on_each_post/comment_5_1b42f86001874abdd8472e678edf98e9._comment b/doc/forum/how_to_put_a_permalink_on_each_post/comment_5_1b42f86001874abdd8472e678edf98e9._comment new file mode 100644 index 000000000..0b3ab4c32 --- /dev/null +++ b/doc/forum/how_to_put_a_permalink_on_each_post/comment_5_1b42f86001874abdd8472e678edf98e9._comment @@ -0,0 +1,36 @@ +[[!comment format=mdwn + username="anarcat" + avatar="http://cdn.libravatar.org/avatar/825d3c30cb96a053b5335e51b8d0bd49" + subject="not sure about the name" + date="2025-04-09T20:55:38Z" + content=""" +it looks like the `PERMALINK` variable is set elsewhere, see [[bugs/inline_breaks_PERMALINK_variable]] for example. + +grepping around, it looks like it is set in the plugins aggregate, comments, inline, meta, recentchanges, and search, all in different contexts, but it seems precarious to set it globally, i'd say. + +with [[todo/include_page_variable_in_base_templates]], we have PAGE already... don't we just need the url config to be passed down to the template here? + +maybe something like [this patch](https://gitlab.com/anarcat/ikiwiki/-/commit/c2e63cbd195db95115fe4e1e1ef591bfdf290135): + +```patch +publish the URL variable for the absolute URL of the site + +Combined with PAGE, it provides us with a way to access the permalink +of a page within templates. + +1 file changed, 1 insertion(+) +IkiWiki/Render.pm | 1 + + +modified IkiWiki/Render.pm +@@ -134,6 +134,7 @@ sub genpage ($$) { + mtime => displaytime($pagemtime{$page}), + ctime => displaytime($pagectime{$page}, undef, 1), + baseurl => baseurl($page), ++ url => $config{url}, + html5 => $config{html5}, + responsive_layout => $config{responsive_layout}, + ); +``` + +no? +"""]]
Updated logo proposal
diff --git a/doc/todo/support_for_light_and_dark_mode.mdwn b/doc/todo/support_for_light_and_dark_mode.mdwn index 8389f3e39..c7806d71f 100644 --- a/doc/todo/support_for_light_and_dark_mode.mdwn +++ b/doc/todo/support_for_light_and_dark_mode.mdwn @@ -162,3 +162,10 @@ is probably the best way to implement this. >>>>>> adding just a small white border would suffice), and smcv and schmonz >>>>>> both have the admin bit to do it. Or feel free to reach out to me by email. >>>>>> --[[Joey]] + +>>>>>>> [[anarcat]] [modified the logo to use a mid-grey](https://gitlab.com/anarcat/ikiwiki/-/blob/ec6182dfeea08dda2e8c341fe091d0ee6e22b59a/doc/logo/ikiwiki.svg) which contrasts nicely +>>>>>>> with black and white backgrounds: [[!img 2logos.png]]. If you are happy +>>>>>>> with that (I think it looks good) I can merge that to master and if its +>>>>>>> easiest to update ikiwiki.info from Debian packages, I'll aim to cut a +>>>>>>> new release in the near future. +>>>>>>> *— [[Jon]], 2025-04-09* diff --git a/doc/todo/support_for_light_and_dark_mode/2logos.png b/doc/todo/support_for_light_and_dark_mode/2logos.png new file mode 100644 index 000000000..6bd43430b Binary files /dev/null and b/doc/todo/support_for_light_and_dark_mode/2logos.png differ
more messing around mastodon
diff --git a/doc/todo/mastodon_comments.mdwn b/doc/todo/mastodon_comments.mdwn index cd9aaa145..e73ea979d 100644 --- a/doc/todo/mastodon_comments.mdwn +++ b/doc/todo/mastodon_comments.mdwn @@ -13,3 +13,35 @@ Or maybe i just need to make a new template and insert it in my blog posts... po >> I'm not even sure this is a good idea. The first test I did was a "test comment" which led to half a dozen "test reply" and then I realized i couldn't redact individual posts from there. Ugh. I don't even know if, when I mute a user, it actually gets hidden from everyone else too... >> >> So I'll test this for a while, I guess. + +# Update: the feed2exec diversion + +There's another thing that's needed to make this work, which I didn't mention above, which is to automatically *post* new entries to Mastodon when they show up, because otherwise the above needs you to manually post the thing to Mastodon. It's kind of a mess. At first, I implemented this as a [feed2exec](https://gitlab.com/anarcat/feed2exec) plugin called [ikiwikitoot.py](https://gitlab.com/anarcat/feed2exec/-/blob/main/feed2exec/plugins/ikiwikitoot.py) but that didn't work reliably: there was this horrible bootstrapping issue that you had to first post the article, then run the RSS feed, and that modifies the article again. + +This didn't work reliably for me, so I added more duct-tape so you can now run the command directly without going through the RSS feed. I ended up with the following post-receive hook in my `source.git`: + +``` +w-anarcat@marcos:~/source.git$ cat hooks/post-receive +#!/bin/sh + +/home/anarcat/src/feed2exec/feed2exec/plugins/ikiwikitoot.py --post-receive --base-url https://anarc.at/ +``` + +And the code still lives in feed2exec... It makes use of my second Python parser for ikiwiki directives (ugh) which really makes me feel like this should be implemented natively as a real ikiwiki plugin instead. + +I'm not sure how this would work: we'd need to somehow keep state of which page is associated with which mastodon post. In theory, this could be kept in .ikiwiki, but i find that iffy: i really like the idea of having the mastodon post directly in the git source, but i'm not aware of any ikiwiki plugin actually modifying the source, that seems to be traditionnally a "no no". + +I would also really like ikiwiki to render comments as static HTML. This would add a couple benefits over the current approach: + + 1. no javascript necessary + 2. reduce load on the mastodon server (the current approach hits the server for every *visitor* that hits the "load comments" button, which is not kind to the mastodon server) + 3. reduce reliance on the upstream mastodon server to be up (right now, if mastodon goes away, comments disappear) + 4. allow for moderation on the ikiwiki side (right now, we're completely subject to the mastodon server moderation, if we don't like a comment, we can't remove it without removing it from the mastodon server) + +But that's even more work. I definitely like the idea of adding `!comment` directives to existing posts though, this feels nice, and it's easy to remove them to do moderation. + +The trick is "when do you post updates": short of having a daemon (or CGI?) that receives activitypub pushes, we'd need *something* that pulls new updates on a regular basis anyways, so it's not clear how easy it would be to actually implement. + +Still, moving that code from feed2exec/python to ikiwiki/perl (or ikiwiki/python, there's precedents here), would be an important step, IMHO. + +Thoughts? -- [[anarcat]] 2025-03-03
comments
diff --git a/doc/todo/support_for_light_and_dark_mode.mdwn b/doc/todo/support_for_light_and_dark_mode.mdwn index 5e4b408c3..8389f3e39 100644 --- a/doc/todo/support_for_light_and_dark_mode.mdwn +++ b/doc/todo/support_for_light_and_dark_mode.mdwn @@ -106,6 +106,8 @@ is probably the best way to implement this. >> [[support dark mode in antitheme]]: making the other existing themes >> support light-and-dark mode. That could be valuable, at least in the >> short term. +>> +>>> actiontabs strikes me as a good one to support it. --[[Joey]] >> >> I concur that adjusting the antitheme to support light/dark mode could >> be regarded as a breaking change for existing users. I think we should @@ -150,3 +152,13 @@ is probably the best way to implement this. >>>>> switch <https://ikiwiki.info> over to it. One thing that will need >>>>> adjusting for that, though, is the ikiwiki logo: [[ikiwiki_logo|logo/ikiwiki.png]] >>>>> — [[Jon]], *2024-10-09* + +>>>>>> I am game for switching ikiwiki.info over to it. Indeed I plan to +>>>>>> switch a lot of little websites like that over to it. +>>>>>> +>>>>>> My time and attention for this is sadly limited. Thanks for doing this work. +>>>>>> I have upgraded ikiwiki on branchable, so it should be possible to +>>>>>> change the ikiwiki.info setup once you sort out the icon (maybe +>>>>>> adding just a small white border would suffice), and smcv and schmonz +>>>>>> both have the admin bit to do it. Or feel free to reach out to me by email. +>>>>>> --[[Joey]]
po test bug report
diff --git a/doc/bugs/po_test_failing_on_debian_stable.mdwn b/doc/bugs/po_test_failing_on_debian_stable.mdwn new file mode 100644 index 000000000..389868b3a --- /dev/null +++ b/doc/bugs/po_test_failing_on_debian_stable.mdwn @@ -0,0 +1,17 @@ +Building current master on debian stable: + + Failed test at t/po.t line 538. + # '<p>Tails takes <BD> hour to install</p> + # ' + # doesn't match '(?^usx: + # .* + # L'installation\sde\sTails\sdure\s<BD>\sheure + # .* + # )' + # Looks like you failed 1 test of 126. + t/po.t ......................... + Dubious, test returned 1 (wstat 256, 0x100) + +The failing code comes from "t/po.t: add test for UTF-8 vs. po4a 0.58+" + +It builds ok on debian unstable. --[[Joey]]
done
diff --git a/doc/todo/admonitions.mdwn b/doc/todo/admonitions.mdwn index 16f0b00ee..9350e154e 100644 --- a/doc/todo/admonitions.mdwn +++ b/doc/todo/admonitions.mdwn @@ -168,3 +168,5 @@ the actiontab theme enabled: >> It turned out to be a simple fix, a missing semicolon. [patch here](https://github.com/jmtd/ikiwiki/commit/3e31200ed258ba1f7ab1652d6bc2d035a9e5c990). The rest of that branch is just your admonitions branch rebased onto `3.20200202.3`. *—[[Jon]], 2021-02-18* >>> Interesting. That was of course, a missing semicolon, not sure how I missed that. I cherry-picked your patch, but I wonder why I wasn't seeing the problem on my end... Maybe I had other padding that was covering for this... Thanks, in any case! :) -- [[anarcat]] + +[[done]]. *— [[Jon]], 2025-02-22*
rm 'review requested': all done
diff --git a/doc/users/jon.mdwn b/doc/users/jon.mdwn index 0e825b28d..f3e587710 100644 --- a/doc/users/jon.mdwn +++ b/doc/users/jon.mdwn @@ -22,11 +22,3 @@ piece of software for this task. * slides at <http://www.staff.ncl.ac.uk/jon.dowland/unix/docs/>. -## Review requested - -I prefer to have another pair of eyeballs ACK my own patches where -possible. These are ready for a look: - - * [[bugs/backlinks onhover thing can go weird]] - * [[todo/don't generate an empty parentlink span]] - * [[todo/add a search plugin that uses duckduckgo]]
logo needs fixing
diff --git a/doc/todo/fix_ikiwiki_logo_in_dark_mode.mdwn b/doc/todo/fix_ikiwiki_logo_in_dark_mode.mdwn new file mode 100644 index 000000000..0728f0140 --- /dev/null +++ b/doc/todo/fix_ikiwiki_logo_in_dark_mode.mdwn @@ -0,0 +1,6 @@ +[[As mentioned here|support for light and dark mode]], the logo needs +fixing for dark mode: + +[[!img logo/ikiwiki.png]] + +*— [[Jon]], 2025-02-22*
add news item for ikiwiki 3.20250221
diff --git a/doc/news/version_3.20250221.mdwn b/doc/news/version_3.20250221.mdwn new file mode 100644 index 000000000..cd6cd7b6d --- /dev/null +++ b/doc/news/version_3.20250221.mdwn @@ -0,0 +1,25 @@ +ikiwiki 3.20250221 released with [[!toggle text="these changes"]] +[[!toggleable text=""" +* [ Jonathan Dowland ] + * po.pm: fixes for po4a ≥ 0.70. + * CGI::printheader: optional HTTP status argument + * comments: return HTTP 202 for moderated comments + * page.tmpl: don't generate an empty parentlinks span + * new plugins: + * Jason Blevins' h1title plugin (previously external/contrib) + * DuckDuckGo plugin for site searching + * new theme: lightdark. Supports browse preferences for light or + dark mode. + * Default html5 to '1' + * Remove charset attribute from forms + * Use the HTML5 details tag for more backlinks + +* [ Paul Wise ] + * Remove extra quote character from date spans + +* [ intrigeri ] + * t/po.t: Add missing PO header + +* [ Antoine Beaupré ] + * admonitions plugin +"""]]
todo: fix assumption git branch is master
diff --git a/doc/todo/fix_assumption_git_branch_is_master.mdwn b/doc/todo/fix_assumption_git_branch_is_master.mdwn new file mode 100644 index 000000000..cbf655c7e --- /dev/null +++ b/doc/todo/fix_assumption_git_branch_is_master.mdwn @@ -0,0 +1,7 @@ +`Git.pm` and several tests (and perhaps other things) implicitly assume +the default branch for a repository is `master`. This is currently still +the Git default, but can be overridden by a user (`init.defaultBranch`: +try setting it and running the test suite!). We should make `Git.pm` +more robust by settings `init.defaultBranch` on locally-created repos to +match our assumption (or to match setup's `gitmaster_branch`) +*— [[Jon]], 2025-02-18*
Document duckduckgoform.tmpl
diff --git a/doc/templates.mdwn b/doc/templates.mdwn index 378e579ba..f5e47e7d5 100644 --- a/doc/templates.mdwn +++ b/doc/templates.mdwn @@ -74,8 +74,8 @@ Here is a full list of the template files used: * `feedlink.tmpl` - Used to add rss/atom links if `blogpost.tmpl` is not used. * `aggregatepost.tmpl` - Used by the aggregate plugin to create a page for a post. -* `searchform.tmpl`, `googleform.tmpl` - Used by the search plugin - and google plugin to add search forms to wiki pages. +* `searchform.tmpl`, `googleform.tmpl`, `duckduckgoform.tmpl` - Used by the + search plugin, google and duckduckgo plugins to add search forms to wiki pages. * `searchquery.tmpl` - This is a Omega template, used by the search plugin. * `comment.tmpl` - Used by the comments plugin to display a comment.
Add alternatives to broken download links
diff --git a/doc/plugins/contrib/album.mdwn b/doc/plugins/contrib/album.mdwn index 9fac11164..9bdb304f4 100644 --- a/doc/plugins/contrib/album.mdwn +++ b/doc/plugins/contrib/album.mdwn @@ -59,15 +59,21 @@ First, you need a version of ikiwiki with the [[trail]] plugin merged in Manual installation requires these files (use the "raw" link in gitweb to download): -* [album.pm](http://git.pseudorandom.co.uk/smcv/ikiwiki.git/blob/album5:/IkiWiki/Plugin/album.pm) +* [album.pm](http://git.pseudorandom.co.uk/smcv/ikiwiki.git/blob/album5:/IkiWiki/Plugin/album.pm) / + [cbaine's album.pm](https://git.cbaines.net/ikiwiki/plain/IkiWiki/Plugin/album.pm?h=git-annex-album) in an `IkiWiki/Plugin` subdirectory of your configured `plugindir` -* [albumviewer.tmpl](http://git.pseudorandom.co.uk/smcv/ikiwiki.git/blob/album5:/templates/albumviewer.tmpl), - [albumitem.tmpl](http://git.pseudorandom.co.uk/smcv/ikiwiki.git/blob/album5:/templates/albumitem.tmpl), - [albumnext.tmpl](http://git.pseudorandom.co.uk/smcv/ikiwiki.git/blob/album5:/templates/albumnext.tmpl) and - [albumprev.tmpl](http://git.pseudorandom.co.uk/smcv/ikiwiki.git/blob/album5:/templates/albumprev.tmpl), +* [albumviewer.tmpl](http://git.pseudorandom.co.uk/smcv/ikiwiki.git/blob/album5:/templates/albumviewer.tmpl) / + [cbaine's albumviewer.tmpl](https://git.cbaines.net/ikiwiki/plain/templates/albumviewer.tmpl?h=git-annex-album), + [albumitem.tmpl](http://git.pseudorandom.co.uk/smcv/ikiwiki.git/blob/album5:/templates/albumitem.tmpl) / + [cbaine's albumitem.tmpl](https://git.cbaines.net/ikiwiki/plain/templates/albumitem.tmpl?h=git-annex-album), + [albumnext.tmpl](http://git.pseudorandom.co.uk/smcv/ikiwiki.git/blob/album5:/templates/albumnext.tmpl) / + [cbaine's albumnext.tmpl](https://git.cbaines.net/ikiwiki/plain/templates/albumnext.tmpl?h=git-annex-album) and + [albumprev.tmpl](http://git.pseudorandom.co.uk/smcv/ikiwiki.git/blob/album5:/templates/albumprev.tmpl) / + [cbaine's albumprev.tmpl](https://git.cbaines.net/ikiwiki/plain/templates/albumprev.tmpl?h=git-annex-album), in your configured `templatedir`, or a `templates` subdirectory of your wiki repository * the album-related bits from the end of the - [stylesheet](http://git.pseudorandom.co.uk/smcv/ikiwiki.git/blob/album5:/doc/style.css) + [stylesheet](http://git.pseudorandom.co.uk/smcv/ikiwiki.git/blob/album5:/doc/style.css) / + [cbaine's stylesheet](https://git.cbaines.net/ikiwiki/plain/doc/style.css?h=git-annex-album-2-rebased) (put them in your local.css) ## Changing the templates
Ask question about where to download the album plugin
diff --git a/doc/plugins/contrib/album/discussion.mdwn b/doc/plugins/contrib/album/discussion.mdwn index a60de0b2a..2c33b7e71 100644 --- a/doc/plugins/contrib/album/discussion.mdwn +++ b/doc/plugins/contrib/album/discussion.mdwn @@ -1,3 +1,6 @@ +## working download links +Does anyone have a git repo of the album plugin with the template files? It seems that all of the download links on the page are broken. + ## installation queries from brush thanks for this plugin. it might help me in my application, which is to provide album/galleries which can be edited (ie. new images added, taken away, etc.) through web interface.
Add Crypt Code Club wiki
diff --git a/doc/ikiwikiusers.mdwn b/doc/ikiwikiusers.mdwn index c0b987b82..6c027b945 100644 --- a/doc/ikiwikiusers.mdwn +++ b/doc/ikiwikiusers.mdwn @@ -110,6 +110,7 @@ Projects & Organizations * [[guppy|http://guppy.branchable.com/index.en.html]] an internationalized modular Python IRC bot * [[ChessWOB|https://www.chesswob.org]] Chess Without Boundaries * [[Debian Enhancement Proposals|https://dep-team.pages.debian.net/]] +* [[Crypt Code Club|https://cryptcodeclub.codeberg.page/]] Personal sites and blogs ========================
now testing this plugin on my site
diff --git a/doc/todo/extend_match__95__ip_for_netblocks_and_possibly_AS_ranges.mdwn b/doc/todo/extend_match__95__ip_for_netblocks_and_possibly_AS_ranges.mdwn index e0dc2053d..9d439455d 100644 --- a/doc/todo/extend_match__95__ip_for_netblocks_and_possibly_AS_ranges.mdwn +++ b/doc/todo/extend_match__95__ip_for_netblocks_and_possibly_AS_ranges.mdwn @@ -5,48 +5,44 @@ Perhaps not in the same PageSpec, but it might also be useful to support looking *— [[Jon]], 2025-01-24* -Untested: - ``` -diff --git a/IkiWiki.pm b/IkiWiki.pm -index e0d4e2d31..e1344758e 100644 ---- a/IkiWiki.pm -+++ b/IkiWiki.pm -@@ -8,6 +8,7 @@ use Encode; - use Fcntl q{:flock}; - use URI::Escape q{uri_escape_utf8}; - use POSIX (); -+use Net::Netmask; - use Storable; - use open qw{:utf8 :std}; - -@@ -3210,6 +3211,25 @@ sub match_admin ($$;@) { - } - } - -+sub match_ipblock ($$;@) { -+ shift; -+ my $string=shift; -+ my %params=@_; -+ -+ if (! exists $params{ip}) { -+ return IkiWiki::ErrorReason->new("no IP specified"); -+ } -+ my $block = Net::Netmask->safe_new($string); -+ unless $block { -+ return IkiWiki::ErrorReason->new("invalid netmask specified"); -+ } -+ if ($block->match($params{ip})) { -+ return IkiWiki::SuccessReason->new("IP is $ip"); -+ } else { -+ return IkiWiki::FailReason->new("IP is $params{ip}, not $ip"); -+ } -+} -+ - sub match_ip ($$;@) { - shift; - my $ip=shift; +#!/usr/bin/perl +# Copyright © 2008 Joey Hess <joey@ikiwiki.info> +# Copyright © 2025 Jonathan Dowland <jon@dow.land> +# Licensed under the GNU GPL, version 2, or any later version published by the +# Free Software Foundation + +use warnings; +use strict; +use IkiWiki 3.00; +use Net::Netmask; + +package IkiWiki::PageSpec; + +sub match_ipblock ($$;@) { + shift; + my $string=shift; + my %params=@_; + + if (! exists $params{ip}) { + return IkiWiki::ErrorReason->new("no IP specified"); + } + my $block = Net::Netmask->safe_new($string); + unless ($block) { + return IkiWiki::ErrorReason->new("invalid netmask specified"); + } + if ($block->match($params{ip})) { + return IkiWiki::SuccessReason->new("IP is in block $string"); + } else { + return IkiWiki::FailReason->new("IP is $params{ip}, not in block $string"); + } +} + +1 ``` If I look at this further I'd move it into a plugin rather than add `Net::Netmask` to `IkiWiki.pm`. *— [[Jon]], 2025-01-24* + +> I've altered the code block above; I'm now testing this plugin on my +> site. *— [[Jon]], 2025-01-27*
untested patch
diff --git a/doc/todo/extend_match__95__ip_for_netblocks_and_possibly_AS_ranges.mdwn b/doc/todo/extend_match__95__ip_for_netblocks_and_possibly_AS_ranges.mdwn index 7b5d9e7ea..e0dc2053d 100644 --- a/doc/todo/extend_match__95__ip_for_netblocks_and_possibly_AS_ranges.mdwn +++ b/doc/todo/extend_match__95__ip_for_netblocks_and_possibly_AS_ranges.mdwn @@ -4,3 +4,49 @@ PageSpec `ip()` (implementation `match_ip`) supports globs, but it would be usef Perhaps not in the same PageSpec, but it might also be useful to support looking up AS assignments and blocking ranges that way, see <https://feeding.cloud.geek.nz/posts/blocking-comment-spammers-ikiwiki/>. For the example IP above, this would be 6,171 IP ranges, and considerably more lines in `banned_users` without features like these. *— [[Jon]], 2025-01-24* + +Untested: + +``` +diff --git a/IkiWiki.pm b/IkiWiki.pm +index e0d4e2d31..e1344758e 100644 +--- a/IkiWiki.pm ++++ b/IkiWiki.pm +@@ -8,6 +8,7 @@ use Encode; + use Fcntl q{:flock}; + use URI::Escape q{uri_escape_utf8}; + use POSIX (); ++use Net::Netmask; + use Storable; + use open qw{:utf8 :std}; + +@@ -3210,6 +3211,25 @@ sub match_admin ($$;@) { + } + } + ++sub match_ipblock ($$;@) { ++ shift; ++ my $string=shift; ++ my %params=@_; ++ ++ if (! exists $params{ip}) { ++ return IkiWiki::ErrorReason->new("no IP specified"); ++ } ++ my $block = Net::Netmask->safe_new($string); ++ unless $block { ++ return IkiWiki::ErrorReason->new("invalid netmask specified"); ++ } ++ if ($block->match($params{ip})) { ++ return IkiWiki::SuccessReason->new("IP is $ip"); ++ } else { ++ return IkiWiki::FailReason->new("IP is $params{ip}, not $ip"); ++ } ++} ++ + sub match_ip ($$;@) { + shift; + my $ip=shift; +``` + +If I look at this further I'd move it into a plugin rather than add `Net::Netmask` to `IkiWiki.pm`. +*— [[Jon]], 2025-01-24*
propose supporting netmasks, and/or looking up AS assignments
diff --git a/doc/todo/extend_match__95__ip_for_netblocks_and_possibly_AS_ranges.mdwn b/doc/todo/extend_match__95__ip_for_netblocks_and_possibly_AS_ranges.mdwn new file mode 100644 index 000000000..7b5d9e7ea --- /dev/null +++ b/doc/todo/extend_match__95__ip_for_netblocks_and_possibly_AS_ranges.mdwn @@ -0,0 +1,6 @@ +PageSpec `ip()` (implementation `match_ip`) supports globs, but it would be useful to be able to write say +`154.12.192.0/22` to block a range of addresses that aren't matchable with a simple glob. + +Perhaps not in the same PageSpec, but it might also be useful to support looking up AS assignments and blocking ranges that way, see <https://feeding.cloud.geek.nz/posts/blocking-comment-spammers-ikiwiki/>. For the example IP above, this would be 6,171 IP ranges, and considerably more lines in `banned_users` without features like these. + +*— [[Jon]], 2025-01-24*
lighten ikiwiki text to work better in dark mode
This turns the "iki" (and its reverse) letters, currently fully black, in a complete gray.
This works in both light and dark mode pretty well, as it is #80, which is right in the middle between #00 and #ff.
This turns the "iki" (and its reverse) letters, currently fully black, in a complete gray.
This works in both light and dark mode pretty well, as it is #80, which is right in the middle between #00 and #ff.
diff --git a/doc/logo/ikiwiki.svg b/doc/logo/ikiwiki.svg index dbf124dc5..a940cc8fa 100644 --- a/doc/logo/ikiwiki.svg +++ b/doc/logo/ikiwiki.svg @@ -266,7 +266,7 @@ <path id="text2081" d="M 471.8376,621.04327 L 471.8376,554.67904 L 461.12899,554.67904 L 461.12899,543.02341 L 485.8972,543.02341 L 485.8972,621.04327 L 471.8376,621.04327 M 558.08925,621.04327 L 533.61243,581.99692 L 521.51972,594.45387 L 521.51972,621.04327 L 507.67866,621.04327 L 507.67866,511.04328 L 521.51972,511.04328 L 521.51972,579.30155 L 551.38727,543.02341 L 567.55945,543.02341 L 542.5727,572.67241 L 573.09588,621.04327 L 558.08925,621.04327 M 589.85084,621.04327 L 589.85084,554.67904 L 579.14223,554.67904 L 579.14223,543.02341 L 603.91044,543.02341 L 603.91044,621.04327 L 589.85084,621.04327" - style="font-size:149.19204712px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:black;fill-opacity:1;stroke:none;stroke-width:1pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Trebuchet MS" /> + style="font-size:149.19204712px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#808080;fill-opacity:1;stroke:none;stroke-width:1pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Trebuchet MS" /> <path id="rect2087" d="M 697.65887,17.409769 L 712.24488,17.409769 L 712.24488,32.021817 L 697.65887,32.021817 L 697.65887,17.409769 z " @@ -284,7 +284,7 @@ <path id="text2097" d="M -328.19676,621.04327 L -328.19676,554.67904 L -338.90537,554.67904 L -338.90537,543.02341 L -314.13716,543.02341 L -314.13716,621.04327 L -328.19676,621.04327 M -241.94511,621.04327 L -266.42193,581.99692 L -278.51464,594.45387 L -278.51464,621.04327 L -292.3557,621.04327 L -292.3557,511.04328 L -278.51464,511.04328 L -278.51464,579.30155 L -248.6471,543.02341 L -232.47491,543.02341 L -257.46166,572.67241 L -226.93849,621.04327 L -241.94511,621.04327 M -210.18352,621.04327 L -210.18352,554.67904 L -220.89213,554.67904 L -220.89213,543.02341 L -196.12392,543.02341 L -196.12392,621.04327 L -210.18352,621.04327" - style="font-size:149.19204712px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:black;fill-opacity:1;stroke:none;stroke-width:1pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Trebuchet MS" + style="font-size:149.19204712px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#808080;fill-opacity:1;stroke:none;stroke-width:1pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Trebuchet MS" transform="scale(-1,1)" /> <path id="rect2103"
update SVG to latest inkscape version, noop
This should get rid of warnings when we open the file.
This should get rid of warnings when we open the file.
diff --git a/doc/logo/ikiwiki.svg b/doc/logo/ikiwiki.svg index ecad86a45..dbf124dc5 100644 --- a/doc/logo/ikiwiki.svg +++ b/doc/logo/ikiwiki.svg @@ -1,21 +1,21 @@ <?xml version="1.0" encoding="UTF-8" standalone="no"?> <!-- Created with Inkscape (http://www.inkscape.org/) --> + <svg - xmlns:dc="http://purl.org/dc/elements/1.1/" - xmlns:cc="http://web.resource.org/cc/" - xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" - xmlns:svg="http://www.w3.org/2000/svg" - xmlns="http://www.w3.org/2000/svg" - xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" - xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" width="882.78107" height="855.25427" id="svg6600" sodipodi:version="0.32" - inkscape:version="0.44.1" + inkscape:version="1.2.2 (b0a8486541, 2022-12-01)" version="1.0" - sodipodi:docbase="/home/roktas/Contrib/ikiwiki/upstream/doc/logo" - sodipodi:docname="ikiwiki.svg"> + sodipodi:docname="ikiwiki.svg" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/"> <defs id="defs6602" /> <sodipodi:namedview @@ -28,19 +28,23 @@ objecttolerance="10" inkscape:pageopacity="0.0" inkscape:pageshadow="2" - inkscape:zoom="0.65312309" - inkscape:cx="351.70406" - inkscape:cy="711.38497" + inkscape:zoom="0.82579931" + inkscape:cx="441.39053" + inkscape:cy="427.46463" inkscape:document-units="px" - inkscape:current-layer="layer1" + inkscape:current-layer="logo" width="1000px" - inkscape:window-width="1012" - inkscape:window-height="691" + inkscape:window-width="1278" + inkscape:window-height="1412" inkscape:window-x="0" - inkscape:window-y="25" + inkscape:window-y="0" showgrid="true" showguides="false" - height="1000px" /> + height="1000px" + inkscape:showpageshadow="2" + inkscape:pagecheckerboard="0" + inkscape:deskcolor="#d1d1d1" + inkscape:window-maximized="1" /> <metadata id="metadata6605"> <rdf:RDF>
uncompress our logo so we get diffs
Before: 6.2K, after: 32K, so we're adding 28K to our git history,
permanently. But then this is compressed by git and now we get
meaningful diffs: i think in the long run it's a huge win.
It should also make it readable in a web browser: Firefox currently
chokes on the .svgz.
Before: 6.2K, after: 32K, so we're adding 28K to our git history,
permanently. But then this is compressed by git and now we get
meaningful diffs: i think in the long run it's a huge win.
It should also make it readable in a web browser: Firefox currently
chokes on the .svgz.
diff --git a/doc/logo.mdwn b/doc/logo.mdwn index 3608cb382..af4bd7210 100644 --- a/doc/logo.mdwn +++ b/doc/logo.mdwn @@ -10,19 +10,19 @@ added). [[ikiwiki_logo_large|ikiwiki_large.png]] [[ikiwiki_button|ikiwiki_button.png]] - [[SVG_source|ikiwiki.svgz]], can be used to generate a logo at any size + [[SVG_source|ikiwiki.svg]], can be used to generate a logo at any size with a command like: - inkscape -w 90 -i logo -e ikiwiki.png ikiwiki.svgz - inkscape -w 150 -i logo -e ikiwiki_large.png ikiwiki.svgz + inkscape -w 90 -i logo -e ikiwiki.png ikiwiki.svg + inkscape -w 150 -i logo -e ikiwiki_large.png ikiwiki.svg The [[favicon.ico]] can also be generated from this file, as follows: - inkscape -w 16 -i favicon -e favicon.ico ikiwiki.svgz + inkscape -w 16 -i favicon -e favicon.ico ikiwiki.svg The button can also be generated as follows: - inkscape -w 80 -i button -e ikiwiki_button.png ikiwiki.svgz + inkscape -w 80 -i button -e ikiwiki_button.png ikiwiki.svg Some other alternate icons and buttons are also included in the svg file and can be extracted by specifying their names. diff --git a/doc/logo/ikiwiki.svg b/doc/logo/ikiwiki.svg new file mode 100644 index 000000000..ecad86a45 --- /dev/null +++ b/doc/logo/ikiwiki.svg @@ -0,0 +1,359 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://web.resource.org/cc/" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + width="882.78107" + height="855.25427" + id="svg6600" + sodipodi:version="0.32" + inkscape:version="0.44.1" + version="1.0" + sodipodi:docbase="/home/roktas/Contrib/ikiwiki/upstream/doc/logo" + sodipodi:docname="ikiwiki.svg"> + <defs + id="defs6602" /> + <sodipodi:namedview + id="base" + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1.0" + gridtolerance="10000" + guidetolerance="10" + objecttolerance="10" + inkscape:pageopacity="0.0" + inkscape:pageshadow="2" + inkscape:zoom="0.65312309" + inkscape:cx="351.70406" + inkscape:cy="711.38497" + inkscape:document-units="px" + inkscape:current-layer="layer1" + width="1000px" + inkscape:window-width="1012" + inkscape:window-height="691" + inkscape:window-x="0" + inkscape:window-y="25" + showgrid="true" + showguides="false" + height="1000px" /> + <metadata + id="metadata6605"> + <rdf:RDF> + <cc:Work + rdf:about=""> + <dc:format>image/svg+xml</dc:format> + <dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + <cc:license + rdf:resource="http://creativecommons.org/licenses/GPL/2.0/" /> + <dc:title>IkiWiki</dc:title> + <dc:creator> + <cc:Agent> + <dc:title>Recai Oktaş</dc:title> + </cc:Agent> + </dc:creator> + <dc:rights> + <cc:Agent> + <dc:title>GPL</dc:title> + </cc:Agent> + </dc:rights> + <dc:subject> + <rdf:Bag> + <rdf:li>ikiwiki</rdf:li> + </rdf:Bag> + </dc:subject> + </cc:Work> + <cc:License + rdf:about="http://creativecommons.org/licenses/GPL/2.0/"> + <cc:permits + rdf:resource="http://web.resource.org/cc/Reproduction" /> + <cc:permits + rdf:resource="http://web.resource.org/cc/Distribution" /> + <cc:requires + rdf:resource="http://web.resource.org/cc/Notice" /> + <cc:permits + rdf:resource="http://web.resource.org/cc/DerivativeWorks" /> + <cc:requires + rdf:resource="http://web.resource.org/cc/ShareAlike" /> + <cc:requires + rdf:resource="http://web.resource.org/cc/SourceCode" /> + </cc:License> + </rdf:RDF> + </metadata> + <g + inkscape:label="Layer 1" + inkscape:groupmode="layer" + id="layer1" + transform="translate(-196.1239,-511.0432)"> + <path + style="font-size:149.19204712px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:black;fill-opacity:1;stroke:none;stroke-width:1pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Trebuchet MS" + d="M 712.20531,840.86542 L 712.20531,774.50118 L 701.4967,774.50118 L 701.4967,762.84555 L 726.26491,762.84555 L 726.26491,840.86542 L 712.20531,840.86542 M 798.45696,840.86542 L 773.98014,801.81906 L 761.88743,814.27601 L 761.88743,840.86542 L 748.04637,840.86542 L 748.04637,730.86542 L 761.88743,730.86542 L 761.88743,799.1237 L 791.75497,762.84555 L 807.92716,762.84555 L 782.9404,792.49456 L 813.46358,840.86542 L 798.45696,840.86542 M 830.21854,840.86542 L 830.21854,774.50118 L 819.50994,774.50118 L 819.50994,762.84555 L 844.27815,762.84555 L 844.27815,840.86542 L 830.21854,840.86542" + id="text2145" /> + <path + style="fill:#c00040;fill-opacity:0.94117647;stroke:none;stroke-width:1pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + d="M 1022.877,-0.80123305 L 1037.463,-0.80123305 L 1037.463,13.810815 L 1022.877,13.810815 L 1022.877,-0.80123305 z " + id="rect2151" + transform="matrix(0.699056,0.715067,-0.715067,0.699056,0,0)" /> + <path + style="fill:#c00040;fill-opacity:0.94117647;stroke:none;stroke-width:1pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + d="M 1105.5886,-85.40728 L 1120.1746,-85.40728 L 1120.1746,-70.795231 L 1105.5886,-70.795231 L 1105.5886,-85.40728 z " + id="rect2153" + transform="matrix(0.699056,0.715067,-0.715067,0.699056,0,0)" /> + <path + style="font-size:145.65322876px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#c00040;fill-opacity:1;stroke:none;stroke-width:1pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Trebuchet MS" + d="M 666.12036,841.37393 L 662.56438,841.37393 L 640.23278,789.52764 L 617.9723,841.37393 L 614.41631,841.37393 L 587.17745,763.56894 L 601.61476,763.56894 L 617.90118,813.56611 L 638.17031,763.56894 L 641.72629,763.56894 L 662.6355,813.56611 L 680.13095,763.56894 L 693.43035,763.56894 L 666.12036,841.37393" + id="text2155" /> + <g + id="logo-bracket"> + <g + id="g2234"> + <path + transform="scale(-1,1)" + style="font-size:270.54162598px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#c00040;fill-opacity:1;stroke:none;stroke-width:1pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Courier New" + d="M -873.347,697.34823 L -873.347,875.02327 L -846.39852,875.02327 C -843.75662,875.02325 -841.86319,875.50762 -840.7182,876.47638 C -839.57345,877.53315 -839.00101,878.89819 -839.00089,880.57149 C -839.00101,882.24473 -839.57345,883.56573 -840.7182,884.5345 C -841.86319,885.59127 -843.75662,886.11967 -846.39852,886.11971 L -884.44343,886.11971 L -884.44343,686.11969 L -846.39852,686.11969 C -843.75662,686.11986 -841.86319,686.64826 -840.7182,687.7049 C -839.57345,688.76187 -839.00101,690.1269 -839.00089,691.80001 C -839.00101,693.38538 -839.57345,694.70638 -840.7182,695.76302 C -841.86319,696.81998 -843.75662,697.34838 -846.39852,697.34823 L -873.347,697.34823" + id="text2133" /> + <path + style="font-size:270.54162598px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#c00040;fill-opacity:1;stroke:none;stroke-width:1pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Courier New" + d="M 401.68181,697.34823 L 401.68181,875.02327 L 428.63029,875.02327 C 431.27218,875.02325 433.16562,875.50762 434.31061,876.47638 C 435.45536,877.53315 436.02779,878.89819 436.02792,880.57149 C 436.02779,882.24473 435.45536,883.56573 434.31061,884.5345 C 433.16562,885.59127 431.27218,886.11967 428.63029,886.11971 L 390.58538,886.11971 L 390.58538,686.11969 L 428.63029,686.11969 C 431.27218,686.11986 433.16562,686.64826 434.31061,687.7049 C 435.45536,688.76187 436.02779,690.1269 436.02792,691.80001 C 436.02779,693.38538 435.45536,694.70638 434.31061,695.76302 C 433.16562,696.81998 431.27218,697.34838 428.63029,697.34823 L 401.68181,697.34823" + id="text2137" /> + </g> + <path + transform="scale(-1,1)" + id="text2161" + d="M -568.56435,840.86542 L -568.56435,774.50118 L -579.27295,774.50118 L -579.27295,762.84555 L -554.50474,762.84555 L -554.50474,840.86542 L -568.56435,840.86542 M -482.31269,840.86542 L -506.78951,801.81906 L -518.88223,814.27601 L -518.88223,840.86542 L -532.72329,840.86542 L -532.72329,730.86542 L -518.88223,730.86542 L -518.88223,799.1237 L -489.01468,762.84555 L -472.84249,762.84555 L -497.82925,792.49456 L -467.30607,840.86542 L -482.31269,840.86542 M -450.55111,840.86542 L -450.55111,774.50118 L -461.25972,774.50118 L -461.25972,762.84555 L -436.49151,762.84555 L -436.49151,840.86542 L -450.55111,840.86542" + style="font-size:149.19204712px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:black;fill-opacity:1;stroke:none;stroke-width:1pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Trebuchet MS" /> + </g> + <path + style="fill:#c00040;fill-opacity:0.94117647;stroke:none;stroke-width:1pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + d="M 127.54727,915.03485 L 142.13327,915.03485 L 142.13327,929.6469 L 127.54727,929.6469 L 127.54727,915.03485 z " + id="rect2167" + transform="matrix(-0.699056,0.715067,0.715067,0.699056,0,0)" /> + <path + style="fill:#c00040;fill-opacity:0.94117647;stroke:none;stroke-width:1pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + d="M 210.25894,830.42883 L 224.84494,830.42883 L 224.84494,845.04088 L 210.25894,845.04088 L 210.25894,830.42883 z " + id="rect2169" + transform="matrix(-0.699056,0.715067,0.715067,0.699056,0,0)" /> + <g + id="logo-bracket-more" + inkscape:label="#logo-bracket"> + <g + id="g2244"> + <path + style="font-size:149.19204712px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:black;fill-opacity:1;stroke:none;stroke-width:1pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Trebuchet MS" + d="M 711.30803,1105.8268 L 711.30803,1039.4625 L 700.59942,1039.4625 L 700.59942,1027.8069 L 725.36763,1027.8069 L 725.36763,1105.8268 L 711.30803,1105.8268 M 797.55968,1105.8268 L 773.08286,1066.7804 L 760.99015,1079.2374 L 760.99015,1105.8268 L 747.14909,1105.8268 L 747.14909,995.82679 L 760.99015,995.82679 L 760.99015,1064.0851 L 790.8577,1027.8069 L 807.02988,1027.8069 L 782.04313,1057.4559 L 812.5663,1105.8268 L 797.55968,1105.8268 M 829.32127,1105.8268 L 829.32127,1039.4625 L 818.61266,1039.4625 L 818.61266,1027.8069 L 843.38087,1027.8069 L 843.38087,1105.8268 L 829.32127,1105.8268" + id="text2229" /> + <path + transform="matrix(0.699056,0.715067,-0.715067,0.699056,0,0)" + style="fill:#c00040;fill-opacity:0.94117647;stroke:none;stroke-width:1pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + d="M 1211.7147,185.06317 L 1226.3007,185.06317 L 1226.3007,199.67522 L 1211.7147,199.67522 L 1211.7147,185.06317 z " + id="rect2235" /> + <path + transform="matrix(0.699056,0.715067,-0.715067,0.699056,0,0)" + style="fill:#c00040;fill-opacity:0.94117647;stroke:none;stroke-width:1pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + d="M 1294.4264,100.45712 L 1309.0124,100.45712 L 1309.0124,115.06917 L 1294.4264,115.06917 L 1294.4264,100.45712 z " + id="rect2237" /> + <path + style="font-size:145.65322876px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#c00040;fill-opacity:1;stroke:none;stroke-width:1pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Trebuchet MS" + d="M 665.22309,1106.3352 L 661.6671,1106.3352 L 639.3355,1054.4889 L 617.07502,1106.3352 L 613.51904,1106.3352 L 586.28018,1028.5302 L 600.71748,1028.5302 L 617.0039,1078.5274 L 637.27303,1028.5302 L 640.82902,1028.5302 L 661.73822,1078.5274 L 679.23368,1028.5302 L 692.53307,1028.5302 L 665.22309,1106.3352" + id="text2239" /> + <path + transform="scale(-1,1)" (Diff truncated)
pagespec_alias: document plugin
diff --git a/doc/plugins/pagespec_alias.mdwn b/doc/plugins/pagespec_alias.mdwn new file mode 100644 index 000000000..2f0175dc6 --- /dev/null +++ b/doc/plugins/pagespec_alias.mdwn @@ -0,0 +1,23 @@ +[[!template id=plugin name=pagespec_alias author="[[Jon]]"]] +[[!tag type/meta]] + +The pagespec_alias plugin allows the administrator(s) of a wiki to define +[[PageSpec]] aliases: short names for PageSpecs to ease re-use. + +Within the setup file, the `pagespec_aliases` value is treated as a list +of key/value pairs. The keys define alias names, the values the pagespecs +to which they refer. + +For example: + + pagespec_aliases: + image: "*.png or *.jpg or *.jpeg or *.gif or *.ico" + helper: "*.css or *.js" + boring: "image() or helper() or internal(*)" + +With the above, you could use the pagespec aliases such as + + \[[!map pages="!boring()"]] + +To define a site map which excluded various page names which might be +uninteresting to include in a site map.