minimedit.git
3 years agoissue: secure against external form submissions v5.2
Mischa POSLAWSKY [Mon, 22 Feb 2021 00:46:44 +0000 (01:46 +0100)]
issue: secure against external form submissions

Ignore api requests (preview from (failed) login),
and require subject field to be sure.

Fixes empty issues after failed logins.

3 years agologin/mailpass: case-insensitive match of requested address
Mischa POSLAWSKY [Mon, 8 Mar 2021 18:10:26 +0000 (19:10 +0100)]
login/mailpass: case-insensitive match of requested address

3 years agowidget/reply: identify subject changes
Mischa POSLAWSKY [Wed, 24 Feb 2021 09:47:18 +0000 (10:47 +0100)]
widget/reply: identify subject changes

3 years agowidget/reply: link non-image uploads instead
Mischa POSLAWSKY [Thu, 25 Feb 2021 13:08:27 +0000 (14:08 +0100)]
widget/reply: link non-image uploads instead

3 years agositemap.xml: fix access to searched page objects
Mischa POSLAWSKY [Sat, 6 Feb 2021 23:28:58 +0000 (00:28 +0100)]
sitemap.xml: fix access to searched page objects

Broken since commit v4.5-30-gee9702f9ff (2020-12-21)
[page: search results as article objects].

3 years agocontact: save email contents to log file
Mischa POSLAWSKY [Tue, 8 Jan 2019 23:32:17 +0000 (00:32 +0100)]
contact: save email contents to log file

Backup in case of undelivered or otherwise lost messages.

3 years agowidget/contact: client ip address in received mail header
Mischa POSLAWSKY [Mon, 25 Jan 2021 23:35:41 +0000 (00:35 +0100)]
widget/contact: client ip address in received mail header

Do not record technical identification in message body, instead emulate as
mail sender hidden for common consumption.

3 years agowidget/contact: reduce code indentation of post check
Mischa POSLAWSKY [Mon, 25 Jan 2021 23:13:59 +0000 (00:13 +0100)]
widget/contact: reduce code indentation of post check

Minor code cleanup.

3 years agopage: url encode widget attributes
Mischa POSLAWSKY [Mon, 25 Jan 2021 23:43:03 +0000 (00:43 +0100)]
page: url encode widget attributes

Support spaces and delimiters in values, such as spaces in contact addresses.

3 years agowidget/contact: subject and recipient address from call options
Mischa POSLAWSKY [Mon, 25 Jan 2021 22:55:24 +0000 (23:55 +0100)]
widget/contact: subject and recipient address from call options

Custom variables instead of hardcoding each case.

3 years agowidget/contact: send from given name
Mischa POSLAWSKY [Mon, 25 Jan 2021 23:05:30 +0000 (00:05 +0100)]
widget/contact: send from given name

Apply naam input to sender email address.

3 years agologin/edit: share user override with widget
Mischa POSLAWSKY [Sat, 23 Jan 2021 12:30:09 +0000 (13:30 +0100)]
login/edit: share user override with widget

Fix admin editing of other profiles.

3 years agofoto: inline showthumb function to format img elements
Mischa POSLAWSKY [Fri, 15 Jan 2021 10:25:14 +0000 (11:25 +0100)]
foto: inline showthumb function to format img elements

Slight code simplification.

3 years agofoto: escape html (ampersands) in album links
Mischa POSLAWSKY [Fri, 15 Jan 2021 10:23:19 +0000 (11:23 +0100)]
foto: escape html (ampersands) in album links

Fix broken entity Lijtweg directory <verbouw&opknap>.

3 years agologin/admin: refer to edit link by updated appearance
Mischa POSLAWSKY [Fri, 15 Jan 2021 12:25:19 +0000 (13:25 +0100)]
login/admin: refer to edit link by updated appearance

Outdated since commit v4.4-16-gb168fd753d (2020-12-05)
[head: icons to abbreviate user and edit].

3 years agomake: fix missing domain name of fontello download
Mischa POSLAWSKY [Tue, 12 Jan 2021 02:38:21 +0000 (03:38 +0100)]
make: fix missing domain name of fontello download

Missing (and unnecessary) variable in commit v5.0-26-g38cf6657d2
(2021-01-10) [make rules to download fontello glyphs].

3 years agosearch: input form and extended results
Mischa POSLAWSKY [Mon, 11 Jan 2021 19:08:59 +0000 (20:08 +0100)]
search: input form and extended results

Already referenced from 404 page as ui for additional queries.

3 years agoedit/page: nbsp after initials, not unrelated abbreviations
Mischa POSLAWSKY [Mon, 11 Jan 2021 19:37:17 +0000 (20:37 +0100)]
edit/page: nbsp after initials, not unrelated abbreviations

Case-sensitive match; fix space after "i.v.m." not "I.V.M.".

3 years agoedit/page: ignore saving unaltered body
Mischa POSLAWSKY [Mon, 11 Jan 2021 18:52:34 +0000 (19:52 +0100)]
edit/page: ignore saving unaltered body

Do not overwrite an unaltered file, preventing mtime update and noop commit
(minor speedup).

3 years agoedit/page: save original request for commit message v5.1
Mischa POSLAWSKY [Thu, 7 Jan 2021 20:07:43 +0000 (21:07 +0100)]
edit/page: save original request for commit message

Minor code cleanup in not recreating the earlier name.

3 years agoedit/page: git directory relative to site root
Mischa POSLAWSKY [Thu, 7 Nov 2019 08:36:31 +0000 (09:36 +0100)]
edit/page: git directory relative to site root

No longer a subdirectory in Lijtweg since commit v2.6-134-g7b106a3076
(2018-09-21) [move www subdirectory to root].

3 years agoedit/head: keep login containers only if editable
Mischa POSLAWSKY [Thu, 7 Jan 2021 19:57:59 +0000 (20:57 +0100)]
edit/head: keep login containers only if editable

Fix logout hiding for admins with missing edit stylesheet.

3 years agomake rules to download fontello glyphs
Mischa POSLAWSKY [Tue, 5 Jan 2021 19:26:26 +0000 (20:26 +0100)]
make rules to download fontello glyphs

Common "build" code to obtain assets for site styling.

3 years agopage: allow remote access for xml requests
Mischa POSLAWSKY [Mon, 28 Dec 2020 02:41:50 +0000 (03:41 +0100)]
page: allow remote access for xml requests

Made for inclusion from scripts such as dashboard page.

3 years agoissue/activity: group replies by message topic
Mischa POSLAWSKY [Sat, 2 Jan 2021 04:28:52 +0000 (05:28 +0100)]
issue/activity: group replies by message topic

Keep selected threads chronologically, similar to Redmine activity.

3 years agoissue: drop report template of activity widget
Mischa POSLAWSKY [Mon, 28 Dec 2020 02:40:37 +0000 (03:40 +0100)]
issue: drop report template of activity widget

Page container to be implemented at sites.

3 years agopage: call handler through index method
Mischa POSLAWSKY [Tue, 29 Dec 2020 00:53:49 +0000 (01:53 +0100)]
page: call handler through index method

3 years agopage: only html body on application/xml requests
Mischa POSLAWSKY [Mon, 28 Dec 2020 02:33:21 +0000 (03:33 +0100)]
page: only html body on application/xml requests

3 years agopage: text/plain request triggers api mode
Mischa POSLAWSKY [Sun, 27 Dec 2020 18:46:06 +0000 (19:46 +0100)]
page: text/plain request triggers api mode

3 years agoprogress: disable submit button while posting
Mischa POSLAWSKY [Sun, 27 Dec 2020 02:46:55 +0000 (03:46 +0100)]
progress: disable submit button while posting

Prevent duplicates from unavoidable double clicks.

3 years agowidget/reply: redirect to created comment
Mischa POSLAWSKY [Sun, 27 Dec 2020 01:32:00 +0000 (02:32 +0100)]
widget/reply: redirect to created comment

Undo initial design of continuous uploads, rather have normal form behaviour
of showing feedback/results.

3 years agowidget/reply: load file upload progress indicator
Mischa POSLAWSKY [Thu, 9 Jan 2020 10:04:07 +0000 (11:04 +0100)]
widget/reply: load file upload progress indicator

Extend image upload script for any user form, with global support for
text/plain post interface (copied from Lijtweg upload controller designed
in v2.6-167-gd6338eb73e (2018-11-04) [hijack file input to show progress]).

3 years agoprogress: javascript to post image uploads
Mischa POSLAWSKY [Sun, 4 Nov 2018 15:29:29 +0000 (16:29 +0100)]
progress: javascript to post image uploads

Track code written for contact form at Lijtweg commit v2.6-167-gd6338eb73e
(2018-11-04) [upload: hijack file input to show progress] with updates until
v2.6-171-gb68eaa5bbd (2018-11-05) [upload: support multiple files]
in preparation of general reuse.

3 years agopage: api attribute indicate index requests
Mischa POSLAWSKY [Sun, 27 Dec 2020 18:33:48 +0000 (19:33 +0100)]
page: api attribute indicate index requests

Replaces userless calls for better fault tolerance and permission support.

3 years agoedit/foto/cover: replace fatal exceptions by abort()
Mischa POSLAWSKY [Fri, 26 Oct 2018 18:48:48 +0000 (20:48 +0200)]
edit/foto/cover: replace fatal exceptions by abort()

Code cleanup, identical behaviour.

3 years agopage: redirect location option in abort()
Mischa POSLAWSKY [Sun, 27 Dec 2020 18:44:33 +0000 (19:44 +0100)]
page: redirect location option in abort()

3 years agothumb: append .jpg extension to match file type
Mischa POSLAWSKY [Tue, 29 Dec 2020 00:08:11 +0000 (01:08 +0100)]
thumb: append .jpg extension to match file type

Rename example.png paths to example.png.jpg so its name corresponds to mime
type as warned by Dareboost.

3 years agothumb: content-length http header
Mischa POSLAWSKY [Tue, 29 Dec 2020 00:22:18 +0000 (01:22 +0100)]
thumb: content-length http header

Match [Apache] server output for cached files.
Still lacks ETag because PHP cannot calculate this (needs μs mtime).

3 years agothumb: only shrink larger images
Mischa POSLAWSKY [Sun, 27 Dec 2020 02:58:32 +0000 (03:58 +0100)]
thumb: only shrink larger images

Support smaller user uploads unscaled (with smaller file sizes), expecting
browser upscaling if necessary (lower quality should not be a problem).

3 years agothumb: validate path before extracting missing parts
Mischa POSLAWSKY [Sun, 27 Dec 2020 01:36:04 +0000 (02:36 +0100)]
thumb: validate path before extracting missing parts

Silence PHP warning about undefined offset on invalid requests.

3 years agoedit/page: ignore missing edit target
Mischa POSLAWSKY [Sun, 27 Dec 2020 01:35:14 +0000 (02:35 +0100)]
edit/page: ignore missing edit target

Silence javascript warning on uneditable pages.

3 years agoedit/page: describe hotkey letter in save plugin
Mischa POSLAWSKY [Sun, 27 Dec 2020 01:39:12 +0000 (02:39 +0100)]
edit/page: describe hotkey letter in save plugin

Minor code cleanup of a magic value.

3 years agoedit/page: allow image uploads through easyimage
Mischa POSLAWSKY [Sun, 17 May 2020 00:40:31 +0000 (02:40 +0200)]
edit/page: allow image uploads through easyimage

Fix local files shown as blobs in testing.

3 years agoedit/page: disable pdf plugin for ckeditor
Mischa POSLAWSKY [Tue, 22 Dec 2020 23:20:13 +0000 (00:20 +0100)]
edit/page: disable pdf plugin for ckeditor

Imposed in Full release since version 4.15.1, causing license warning
despite being unused and unwanted.

3 years agoedit/page: ckeditor image upload to user dir, returned as thumb
Mischa POSLAWSKY [Tue, 22 Dec 2020 23:35:42 +0000 (00:35 +0100)]
edit/page: ckeditor image upload to user dir, returned as thumb

3 years agoedit/page: disable image size attributes in editor
Mischa POSLAWSKY [Tue, 22 Dec 2020 12:33:24 +0000 (13:33 +0100)]
edit/page: disable image size attributes in editor

Disallow width and height, with Advanced Content Filtering enabled following
<https://ckeditor.com/docs/ckeditor4/latest/guide/dev_disallowed_content.html
#how-to-allow-everything-except>.

3 years agoedit/page: fix ckeditor [json] upload response
Mischa POSLAWSKY [Tue, 22 Dec 2020 12:11:54 +0000 (13:11 +0100)]
edit/page: fix ckeditor [json] upload response

One incompatibility in commit v4.4-28-gdd363674c2 (2020-12-05)
[update remote ckeditor to version 4.15.1] after all, according to
https://ckeditor.com/docs/ckeditor4/latest/guide/dev_file_browser_api.html:

> Since CKEditor 4.9 all file uploads, including those initiated by the File
> Browser plugin, expect a JSON response

3 years agoedit/page: include admin stylesheet in editor ui
Mischa POSLAWSKY [Tue, 22 Dec 2020 18:34:53 +0000 (19:34 +0100)]
edit/page: include admin stylesheet in editor ui

Fix dialog style separated in the previous commit.

3 years agoedit/head: optional admin stylesheet for editor overrides v5.0
Mischa POSLAWSKY [Sun, 20 Dec 2020 15:55:24 +0000 (16:55 +0100)]
edit/head: optional admin stylesheet for editor overrides

Fix logout hiding if logged out.

3 years agoedit/head: ckeditor script url in data attribute
Mischa POSLAWSKY [Sun, 20 Dec 2020 01:16:19 +0000 (02:16 +0100)]
edit/head: ckeditor script url in data attribute

3 years agoedit/head: check original file request for writability
Mischa POSLAWSKY [Sun, 20 Dec 2020 00:58:13 +0000 (01:58 +0100)]
edit/head: check original file request for writability

3 years agopage: rename page method to file
Mischa POSLAWSKY [Sun, 20 Dec 2020 00:56:50 +0000 (01:56 +0100)]
page: rename page method to file

More descriptive of requested file name, avoiding duplicate $Page->page.

3 years agoedit/page: add edit button in javascript
Mischa POSLAWSKY [Sat, 19 Dec 2020 14:40:52 +0000 (15:40 +0100)]
edit/page: add edit button in javascript

3 years agoedit/head: move admin preparation to separate include
Mischa POSLAWSKY [Sat, 19 Dec 2020 14:29:03 +0000 (15:29 +0100)]
edit/head: move admin preparation to separate include

3 years agoissue/report: activity widget to list latest messages
Mischa POSLAWSKY [Fri, 3 Jan 2020 08:46:05 +0000 (09:46 +0100)]
issue/report: activity widget to list latest messages

3 years agoedit/page: enforce relative links to local domain
Mischa POSLAWSKY [Wed, 16 Dec 2020 13:05:11 +0000 (14:05 +0100)]
edit/page: enforce relative links to local domain

Replace <a href> and <img src> urls on save to fix common user mistake
breaking site deployment on a different [dev] domain.

3 years agoedit/page: replace format selection by style options
Mischa POSLAWSKY [Wed, 16 Dec 2020 12:54:24 +0000 (13:54 +0100)]
edit/page: replace format selection by style options

Save one button (fitting in 2 rows on 420px width) by getting rid of the
arbitrary distinction between formatting and styles, the latter having
equally semantic elements and capable of toggling headers.

3 years agoedit/page: rename and append editor style options
Mischa POSLAWSKY [Wed, 16 Dec 2020 12:52:45 +0000 (13:52 +0100)]
edit/page: rename and append editor style options

Support previously manual elements on Lijtweg: p.nav, s, span.right.
Prepare options to be displayed in 2 columns (frontend style).

3 years agopage: retain conditional login elements in editor
Mischa POSLAWSKY [Wed, 16 Dec 2020 12:49:14 +0000 (13:49 +0100)]
page: retain conditional login elements in editor

Fix losing logout parts on save.

3 years agopage: quote link name fallback
Mischa POSLAWSKY [Sat, 12 Dec 2020 16:23:42 +0000 (17:23 +0100)]
page: quote link name fallback

Match title from page html.

3 years agositemap: nested index of handler subpages results
Mischa POSLAWSKY [Sat, 12 Dec 2020 15:02:35 +0000 (16:02 +0100)]
sitemap: nested index of handler subpages results

3 years agopage: search results as article objects
Mischa POSLAWSKY [Sat, 12 Dec 2020 14:41:39 +0000 (15:41 +0100)]
page: search results as article objects

Wanted to determine page link, but also afterwards in sitemap
and likely most other uses.

3 years agopage: index method to call metadata handler
Mischa POSLAWSKY [Sat, 12 Dec 2020 14:29:24 +0000 (15:29 +0100)]
page: index method to call metadata handler

Clean up duplicate code on login and sitemap.

3 years agonieuws: article index on sitemap request
Mischa POSLAWSKY [Sat, 12 Dec 2020 14:16:29 +0000 (15:16 +0100)]
nieuws: article index on sitemap request

Restore subpages ignored since previous commit.

3 years agopage: skip directory handlers in search
Mischa POSLAWSKY [Wed, 9 Dec 2020 09:38:06 +0000 (10:38 +0100)]
page: skip directory handlers in search

Code can alter file behaviour, so should be omitted from sitemap results
(to be replaced by custom index in following commit).

Removes wanted nieuws articles, but also random foto descriptions and
some accidental html files.

3 years agopage: retain thumb subhandlers over invalid resize
Mischa POSLAWSKY [Wed, 9 Dec 2020 08:01:49 +0000 (09:01 +0100)]
page: retain thumb subhandlers over invalid resize

Ignore non-static files such as /thumb/qr on Lijtweg.

3 years agositemap: apply link metadata from handler call
Mischa POSLAWSKY [Wed, 9 Dec 2020 07:56:42 +0000 (08:56 +0100)]
sitemap: apply link metadata from handler call

Execute generic index code introduced in commit v4.5-23-gb9757db578
(2020-12-19) [login: userless handler call to obtain metadata].

3 years agomail: support invalid and repeated requests
Mischa POSLAWSKY [Wed, 9 Dec 2020 09:38:56 +0000 (10:38 +0100)]
mail: support invalid and repeated requests

Fix random sitemap pages.

3 years agologin: userless handler call to obtain metadata
Mischa POSLAWSKY [Wed, 9 Dec 2020 07:55:48 +0000 (08:55 +0100)]
login: userless handler call to obtain metadata

Generic solution (previously hardcoded to only /melding) to run code of any
forwarding request, returning at least custom title, teaser, and image,
without having to construct full html.

3 years agonieuws: fix relative image paths in toc
Mischa POSLAWSKY [Sun, 6 Dec 2020 08:18:16 +0000 (09:18 +0100)]
nieuws: fix relative image paths in toc

Current path does not apply with trailing /.

3 years agowidget: unnamed options as placeholders instead of path
Mischa POSLAWSKY [Sun, 6 Dec 2020 08:08:38 +0000 (09:08 +0100)]
widget: unnamed options as placeholders instead of path

3 years agomail: navigation links to earlier files
Mischa POSLAWSKY [Sun, 6 Dec 2020 07:40:32 +0000 (08:40 +0100)]
mail: navigation links to earlier files

3 years agologin/commits: nav widget for common pagination links
Mischa POSLAWSKY [Sun, 6 Dec 2020 07:28:11 +0000 (08:28 +0100)]
login/commits: nav widget for common pagination links

3 years agomail: lay out sender and date as subheader
Mischa POSLAWSKY [Sun, 6 Dec 2020 06:33:51 +0000 (07:33 +0100)]
mail: lay out sender and date as subheader

Similar to the GMail interface.

3 years agomail: imap function to parse sender addresses
Mischa POSLAWSKY [Sun, 6 Dec 2020 06:31:32 +0000 (07:31 +0100)]
mail: imap function to parse sender addresses

Require built-in imap module instead of the mailparse extension.
Either can be installed on Debian (or enabled on Vimexx servers)
so prefer the more complete solution.

3 years agomail: ignore unreadable files
Mischa POSLAWSKY [Sun, 6 Dec 2020 06:11:06 +0000 (07:11 +0100)]
mail: ignore unreadable files

Incorrect installation should be obvious without fatal errors.

3 years agopage: showsize() to format file sizes
Mischa POSLAWSKY [Sat, 9 Sep 2017 00:08:33 +0000 (02:08 +0200)]
page: showsize() to format file sizes

Copied from Lijtweg [doclist precursor] introduced in commit
v2.0-12-g040c5406df (2017-09-18) [com/bewoners: group file types by date];
unaltered since but no longer used.  Could prove useful later, so move here
to merge identically named files and share with other projects.

3 years agopage: move showdate() into formatting include
Mischa POSLAWSKY [Sat, 5 Dec 2020 08:15:51 +0000 (09:15 +0100)]
page: move showdate() into formatting include

Do not enforce presentation style in articles.  Separate from class,
allowing site override if wanted.

3 years agopage: delay loading user code until after page
Mischa POSLAWSKY [Sat, 5 Dec 2020 07:57:52 +0000 (08:57 +0100)]
page: delay loading user code until after page

Improved presentation on failure.

3 years agopage: move custom error handling to include
Mischa POSLAWSKY [Sat, 5 Dec 2020 07:56:52 +0000 (08:56 +0100)]
page: move custom error handling to include

3 years agologin: preview teaser metadata of goto target
Mischa POSLAWSKY [Sat, 5 Dec 2020 03:15:09 +0000 (04:15 +0100)]
login: preview teaser metadata of goto target

Assume the introduction paragraph does not contain restricted contents
(also included in public sitemap) and wanted as contents for social media
links instead of unrelated login description.

3 years agoedit/page: common retrieval of contents element
Mischa POSLAWSKY [Mon, 7 Dec 2020 14:25:29 +0000 (15:25 +0100)]
edit/page: common retrieval of contents element

3 years agoedit/page: copy static contents before dynamic alterations
Mischa POSLAWSKY [Fri, 10 Jan 2020 21:16:11 +0000 (22:16 +0100)]
edit/page: copy static contents before dynamic alterations

Revert javascript alterations before starting edits, preventing them being
saved on lijtweg.nl/doc/splitsing and various Excelsior pages.

3 years agohead: load edit script before body
Mischa POSLAWSKY [Mon, 7 Dec 2020 14:23:49 +0000 (15:23 +0100)]
head: load edit script before body

Introduce $Page->head for html head output.

Allows editor setup before running other javascript.

3 years agopage: prepend 404 contents to admin template
Mischa POSLAWSKY [Fri, 4 Dec 2020 22:50:39 +0000 (23:50 +0100)]
page: prepend 404 contents to admin template

Preview actual output on edit.

3 years agopage: ignore output buffer in article render
Mischa POSLAWSKY [Fri, 4 Dec 2020 00:30:17 +0000 (01:30 +0100)]
page: ignore output buffer in article render

Operate on object property [raw] only.

Stops preliminary output (such as in nieuws code) being injected inside the
html body, probably something to restore later for improved behaviour of
errors and broken code.

3 years agowidget/page: apply nested placeholders
Mischa POSLAWSKY [Thu, 3 Dec 2020 21:57:06 +0000 (22:57 +0100)]
widget/page: apply nested placeholders

Similar to article rendering added in commit v3.5-16-g9e9882d6f2
(2018-08-07) [nieuws: replace placeholders in article contents].

3 years agopage: store placeholder values in $Page object
Mischa POSLAWSKY [Thu, 3 Dec 2020 21:22:28 +0000 (22:22 +0100)]
page: store placeholder values in $Page object

3 years agopage: move getoutput() to render method
Mischa POSLAWSKY [Thu, 3 Dec 2020 20:22:27 +0000 (21:22 +0100)]
page: move getoutput() to render method

3 years agopage: move placeholder_include() to widget method
Mischa POSLAWSKY [Thu, 3 Dec 2020 21:28:09 +0000 (22:28 +0100)]
page: move placeholder_include() to widget method

3 years agopage: replace global variables by $Page object
Mischa POSLAWSKY [Thu, 3 Dec 2020 19:59:58 +0000 (20:59 +0100)]
page: replace global variables by $Page object

Former $Article is sufficient to provide all derived values:

$Page       = $Page->handler
$Args       = $Page->path
$PageAccess = $Page->restricted
$Article    = $Page

Swap with more appropriate (and short) $Page name and replace any usage.
Major incompatible cleanup before other upcoming behavioural changes.

3 years agofoto: fix colon separator after empty root title v4.5
Mischa POSLAWSKY [Wed, 9 Dec 2020 09:38:31 +0000 (10:38 +0100)]
foto: fix colon separator after empty root title

3 years agofoto: replace deprecated <strike> element by <s>
Mischa POSLAWSKY [Thu, 3 Dec 2020 19:26:59 +0000 (20:26 +0100)]
foto: replace deprecated <strike> element by <s>

Identical results conforming to the HTML5 standard.

Obsolete HTML 3 spelling is not recognised by ckeditor
so cannot be used in static html.

3 years agoedit/page: update remote ckeditor to version 4.15.1
Mischa POSLAWSKY [Thu, 3 Dec 2020 19:00:01 +0000 (20:00 +0100)]
edit/page: update remote ckeditor to version 4.15.1

Over 3 years since original implementation.
No notable config incompatibilities.

3 years agomail: primitive maildir message reader
Mischa POSLAWSKY [Sat, 28 Nov 2020 23:48:38 +0000 (00:48 +0100)]
mail: primitive maildir message reader

Minimal admin interface to access site emails;
formatted similarly to issue page.

3 years agoedit/page: empty target argument for index
Mischa POSLAWSKY [Thu, 3 Dec 2020 18:59:27 +0000 (19:59 +0100)]
edit/page: empty target argument for index

Fix saving of /index broken by parameter fix in commit v4.0-30-ga66a71bc45
(2019-11-09) [keep page named after existing directory].

Dropping argument requirement fail-safe seems only a slight regression
in case of future bugs.

3 years agonieuws/feed: prefer article dates from metadata
Mischa POSLAWSKY [Thu, 3 Dec 2020 02:49:20 +0000 (03:49 +0100)]
nieuws/feed: prefer article dates from metadata

Frequently available since the previous commit.

3 years agopage: record creation time in template meta tag
Mischa POSLAWSKY [Wed, 2 Dec 2020 22:46:30 +0000 (23:46 +0100)]
page: record creation time in template meta tag

Another https://ogp.me/#no_vertical object for availability start.
May be distinct from chosen (eg historic) dates shown for news articles.

Values may be reconstructed for existing files from Git history:

perl -i -pE '
close ARGV if eof;  # reset line number
$. == 1 or next;  # ignore consecutive lines
my $first = qx{git log --follow --pretty=%ai -- "$ARGV" | tail -n1}
or next;  # find earliest commit time
chomp $first;
print qq{<meta property="article:published_time" content="$first" />};
say "" unless /^<meta/;
' **/*.html

3 years agopage: record author metadata on creation
Mischa POSLAWSKY [Sun, 7 Jun 2020 05:26:53 +0000 (07:26 +0200)]
page: record author metadata on creation

Alter initial template html to include a link to the current admin,
retained by ckeditor and available in meta for optional crediting of
different sources.

Named according to https://ogp.me/#no_vertical specification, except target
does not contain the required Open Graph profile tags yet.

3 years agopage: extract metadata after reading template
Mischa POSLAWSKY [Wed, 2 Dec 2020 22:39:34 +0000 (23:39 +0100)]
page: extract metadata after reading template

Retain headers in edit if any; prepare for common modification.