This file describes significant changes to Coauthor to an audience of both everyday users and administrators running their own Coauthor server. To see every change with descriptions aimed at developers, see the Git log. As a continuously updated web app, Coauthor uses dates instead of version numbers.
- Fix embedding of historical images (internal files)
- Security fix for pdfjs, fixing vulnerability to malicious PDF
- You can now select and copy text from PDFs.
- Clicking on a link in PDF now draws an arrow at the specific location linked to, in addition to flipping to the relevant page.
- Fix the wrong page's PDF links sometimes showing up when quickly flipping through the pages of a PDF file, especially for slow-to-render pages. [#534]
- PDFs now support typing a page number manually, which makes it easier to navigate large documents. [#346]
- PDFs remember your previous page when you click on a link, adding back/forward navigation buttons similar to browser back/forward.
- + and - keys now advance pages in the current PDF. (Click or mouse over a PDF to make it the current PDF.)
- Superusers can now make private replies (e.g. for student feedback) from the "Reply/Attach" dropdown.
\begin{tabular}
improvements:p{width}
,m{width}
, andb{width}
columns supported*
repetitions supported:*3c
is shorthand forccc
,*3{lr}
is shorthand forlrlrlr
,*{10}{c}
is shorthand forcccccccccc
.
- Copy/pasting a URL from a message no longer adds extraneous zero-width spaces
\verb|$|
now works both inside and outside math mode
- Remove small (100ms) race where Stop Editing could lose your changes
- Only cluster by leading tags in the sort order, so if you click to sort by e.g. Updated then there's no longer awkward clustering by repeated tags.
- Search improvements: [#29]
- Search no longer supports quoting phrases with single quotes, so that it's
easier to search for possessives (e.g.
Erik's
). [#638] - Search now sorts by the group's default sort, instead of by title.
- Fix escaping search queries with backslash:
\:
,\"
,\|
,\(
,\)
,\\
- Newly allow escaping of
*
with\*
- Search no longer supports quoting phrases with single quotes, so that it's
easier to search for possessives (e.g.
- Author view no longer lists messages multiple times
- Fix scrolling to a message when clicking on it in table of contents (a long-standing but rare bug). [#608]
- Support
\begin{hint}
/\begin{hint+}
environments (for problem hints). - Support extra text after theorem-like environments, for finer control.
For example,
\begin{theorem 1}
produces "Theorem 1", and\begin{proof sketch}
produces "Proof sketch". By contrast, optional arguments add parentheses:\begin{theorem 1}
produces "Theorem (1)", and\begin{proof}[sketch]
produces "Proof (sketch)". \begin{tabular}
improvements:- Skip over
\&
, HTML tags/character codes, and braced content, which makes it possible to include URLs with&
s. - Fix column computations when using both
\multirow
and\multicolumn
(in separate cells).
- Skip over
- Support
\begin{remark}
and\begin{note}
theorem-like environments, without the enlargement that theorem environments normally get.\begin{example}
is also no longer large.
- Warn about private images inlined within public messages [#635]
- Warn about deleted/unpublished images only when inlined within deleted/unpublished messages
- Simplify and improve dragging/pasting behavior of Coauthor messages/images:
- Dragging or pasting an embedded image, or a message with an embedded image, will inline the image only if you're dragging/pasting at the beginning of a line (possibly with indentation).
- When dragging a message (not embedded image), the message must also have no body and no children to be considered for inlining.
- Raw
coauthor:...
links now get rendered with message title when available - Improve dragging/pasting behavior of Coauthor messages/images:
- Dragging or pasting a message's embedded image will always inline the image
(
![](coauthor:...)
in Markdown,\includegraphics{coauthor:...}
in LaTeX, and<img src="coauthor:...">
in HTML). - Dragging or pasting a message that has an embedded image will inline the image if the message has no body (description) and no children, and the cursor is at a space or table delimiter.
- Dragging or pasting a message's embedded image will always inline the image
(
- New LaTeX forms of
HTML
<details>
/<summary>
tags:-
\begin{details}...\end{details}
or\begin{+}...\end{+}
to make basic<details>...</details>
text that's hidden until clicked. -
\begin{details}[header]
or\begin{+}[header]
to change the default "Details" text to desired header. -
\begin{proof+}
,\begin{theorem+}
, etc. to make a proof that's hidden with header "Proof", "Theorem", etc. (essentially shorthand for\begin{+}\begin{proof}
).
-
- Fix multiple
$math$ chunks connected only by punctuation [#636]
- Superusers can now start private threads (e.g. for course staff discussion) from the "New Thread" dropdown on the Group page
- Fix bugs in Since sorting [#634]
- Private root messages now sort between minimized and deleted
- Embedded images, videos, and PDFs now all generate warnings if the embedded
message is unpublished or deleted, even with
https://coauthor
URLs. [#633] - Fix math sometimes being incorporated into a link (e.g.
$foo$.In
)
- Image messages no longer "auto-fold" when they're embedded in another message when the image message has a body (description). [#632]
- Fix bugs where message editor tries and fails to load, and never gives up. [#631] [#630]
- Fix paste enhancements (e.g. Coauthor URL simplification) when using multiple editor cursors (via Ctrl-click) [#629]
- When sorting a group by one or more tags (as the most significant sort), unpublished and pinned messages are sorted higher, and minimized and deleted messages are sorted lower, within each tag cluster. (Previously, this message status sorting was done at a global level.)
- Pinned messages get colored bright yellow in group view
- Since view now sorts by group's default sort, instead of increasing title. [#600]
- Improve title sorting to ignore leading nonprinting characters:
whitespace,
\
, entering math mode ($
,\(
,\[
), starting Markdown formatting (*
,_
,~~
,`
).
- Fix clipping of Rotate and File dropdowns which made them nonfunctional [#627]
- Fix excess horizontal scrollbars in messages, especially with display math
- More File UI redesign:
[#624]
- "Extract File" lets you move an embedded file from a message into its own reply message.
- "Extract File" from History view lets you copy an old embedded file into its own reply message.
- File UI redesign:
[#624]
- New "File" dropdown next to every embedded file description and when editing
- Replaces old "Add File" and "Replace File" buttons
- "Embed One File" makes clear that only one file can be embedded
- You can drag and drop a file onto the File dropdown, like before.
- You can now Remove a file, or Restore a previous version from History.
- Fix viewing old PDF files in History
- Fix sticky header in group view getting covered up by math in thread titles.
- Fix sorting a group by multiple fields, some in reverse [#623]
- Fix reactivity of fullname and email when administering Users
- Rename replies from "Another" to "New". (In particular, makes more sense with threads with private replies.)
- Editor no longer considers foreign (non-ASCII) characters spelling errors. (They are simply ignored, as the dictionary is English only.) [#615]
- Regular messages can now gain a file attachment later in life, via a new Add File button. Note that each message can still only have one file attachment (use more messages for more files, e.g. via Reply/Attach). Also, it's not yet possible to remove the file attachment. [#588]
- Placement of Replace File button changed (and now matches Add File).
- Fix for Safari 16.4+
- New administrative interface for managing Users in a group
- Split into multiple sections (members of various types vs. other users to add)
- More consistent (and faster) layout of table
- Initially show only latest 10 users, with buttons for more/all
- Support for searching among users
- Visual warning when embedding image that is deleted or unpublished, so unlikely to be visible to other users. [#574]
- White border around images in dark mode is now thinner and no longer overlaps neighboring content.
- Table of contents displays all message coauthors instead of creator. For more than two coauthors, it just shows last names. [#607]
- Support folding of LaTeX
\section
,\begin{itemize}
, etc. in Markdown format (not just LaTeX), as it supports this syntax too. - Bug fixes in LaTeX folding
- Fix folding when changing between formats in message editor via CodeMirror 5.65.8
- Improve wording in email notifications for thread creation ("created thread" instead of "created root message in thread").
- URLs with "false Markdown" in them fixed thanks to updated markdown-it [#426]
- Small message editor bug fixes via CodeMirror 5.65.7
- Better copy/pasting behavior with messages containing mathematics, thanks to KaTeX 0.16.0.
- Link to better ways to input accented characters
- Search now supports parentheses for mixing AND and OR queries arbitrarily.
For example,
always (this | that)
searches for messages containing both wordalways
and eitherthis
orthat
.
- When filling in the search box in a thread view, the search is automatically restricted to that thread. [#282]
- New search operator
root:id
restricts to messages within the thread rooted at message with specifiedid
. [#29]
- Switch to DOMPurify HTML sanitizer,
which should make Coauthor faster overall and permit some more (safe)
HTML/SVG features than before. One new restriction is that SVG
<use>
can only use local hrefs, but this is necessary for security. [#508] - Further reduction in JavaScript bundle size, for faster loading of Coauthor. [#218]
- Fix "Replace File" button and improve behavior of clicking on message header to highlight corresponding item in Table of Contents. [#598]
- Hovering over a message highlights the corresponding item of the table of contents, or if that item is out of visual range, the relevant border. [#598]
- Hovering over a table-of-contents item highlights the corresponding message. [#552]
- Messages can now be pinned to highlight them as "important" (like the opposite of "minimized"). Pinned messages get a pin icon and yellow color. Pinned root messages get their threads sorted to the top in group view. [#599]
- The icons for whether a message is being edited or is a file now show up in the group view.
- Messages can now use internal hash links.
Markdown headings get automatic
id
s (like GitHub); for example,## Here
becomes<h2 id="here">Here</h2>
. Alternatively, you can add anid
attribute to any HTML tag. Then you can link to thisid
via<a href="#here">
or[link](#here)
in Markdown. Theid
gets prefixed by the message ID and an underscore, to avoidid
conflicts between messages. You can link to a different message's internal link via#OTHERID_here
. [#586]
- Table of contents highlights all messages that are visible in the main view, so it's much easier to tell where you are. The color is more intense for messages fully in view. [#597]
- Clicking on a message header scrolls the table of contents to align the corresponding item, to the extent possible, and pulses that item. [#598]
- Scrolling to messages or table-of-contents items now respects the browser's
prefers-reduced-motion
setting, avoiding smooth scrolling in that case for improved accessibility.
- Group view's header restyled, with headings sticking to the top of the page as you scroll.
- Group view lists all features that messages are sorted by, so you can more easily control this order. You can drag features to re-order priority, click on features to flip increasing vs. decreasing, remove features, add features (as usual), and reset to default view.
- Clicking on a header like Updated will now sort by that as primary. When used with tag sorting, this will show more clusters than is optimum, but is useful for seeing what threads were updated most recently. Re-order the sorts to put tags in front if you want the fewest clusters.
- Notifications now show which tags were added/removed/changed. [#520]
- Many bug fixes and improvements around message tag values. [#520]
- Tags on messages can now have values. For example, each thread root can have
a
category
,week
, ortype
tag with a value. The group view can then be clustered by one or more of these values, using the new "By tag" dropdown. [#520] [#522] - The group view can now be sorted by multiple features at once, like a
spreadsheet. Click the least significant feature to sort by first,
then click each subsequent feature.
The URL now has a sequence of
+
s and-
s to indicate the various sorts. [#349]
- Allow superusers to add arbitrary users (not necessarily group members) as coauthors or private-message visibility. This is useful when prewriting group content before releasing it to users. [#503]
- Restore human-readable date formatting
- Fix file uploads for partial members
-
Rewrote the file uploading system (which was necessary for modern Meteor, MongoDB, etc.). If you're running your own server, you may need to execute some of the following MongoDB commands to let Coauthor rebuild indexes:
db.users.dropIndexes() db.fs.files.dropIndexes() db.fs.chunks.dropIndexes() db.fs.locks.drop() // no longer needed
This also adds support for MongoDB Atlas. [#472]
-
More improvements to automatic image reloading when file gets replaced. [#163]
-
Fix import functionality
- Users view should be faster, especially reacting to button presses, thanks to SolidJS. [#595]
- Fix s key not working in message editor on iOS
- Fix page title when switching between groups [#587]
- Fix bug when switching between the Users view of multiple groups (partial access to messages didn't update)
- Clarify that
author
view lists posts by and @mentioning the user
- Fix bug in finding editor folds when editing a message in LaTeX mode that
uses
\begin{foo}
wherefoo
has weird characters in it.
- Fix behavior of links to messages with correct group name when message gets moved across groups.
- Fix accidental Reply buttons when user has no Post permission (at the bottom of message with children). [#585]
- Improve automatic image reloading when file gets replaced. [#163]
- Tweak dark-mode scrollbar colors on Firefox mode so they don't disappear when clicking on them.
- Further speed up Coauthor server restart.
- Email notifications include message body when message becomes visible for the first time to a user (e.g. via Actions / Publish). [#438]
- Avoid duplicate email notifications, even under heavy server load. [#562]
- Fix
\colorbox
which allows specifying background colors in LaTeX and Markdown formats:\colorbox{color}{text}
. - Allow
<sup>
and<sub>
for HTML superscripts and subscripts in messages. [#572]
- Add dark mode for PDF documents by inverting and hue-shifting 180 degrees. Set your default preference in Settings, and/or toggle individual documents via new sun/moon icon. [#569]
- Fix bug when following links between different Coauthor groups
- Fix PDF/image resizing when toggling TOC [#568]
- Support for
\begin{example} ... \end{example}
theorem-like environment. [#563] - At-mentions no longer expand in verbatim contexts
[#533],
and can be escaped via
\@
. [#563] - Table of contents won't be completely folded when zooming into/focusing on a minimized message. [#564]
- Table of contents links are now direct links to messages (instead of hash links), so you can copy them to clipboard and paste them into a message, or control/shift/middle-click to open them in a new window.
- Fix an old bug where the message body editor sometimes shows
loading...
forever. [#559]
- Improve scrolling behavior when using browser back and forward. [#557]
- Small visual improvements: navbar extends the full page width, reduced space between messages and table of contents.
- Preserve which messages were folded or in Raw view across server restarts.
- Fix accidental scrolling when adding emoji responses.
- When clicking on a link to a message within the currently visible (sub)thread, scroll to the message instead of zooming in to its subthread. If you'd like to zoom in, you can click on the Zoom In/Focus button. [#553]
- Fix scrolling to message specified by hash in URL. [#553]
- Automatically focus on title of message when we start editing it, including when we start a new reply or thread.
- Improve table of contents layout [#486] and highlighting of top message [#552]
- You can now fold a section of the table of contents by clicking on one of the vertical lines. [#551]
- Display equations now get their own horizontal scrollbars, for easier scrolling within large messages.
- Fix embedding of PDF Coauthor files within a message. (This has been broken since 2021 because of the React port.)
- Support empty
{align}
environments again (thanks to KaTeX 0.13.3). - Use Font Awesome icons for GitHub Flavored Markdown checkbox icons, fixing their rendering on Android.
- Rename main branch from
master
tomain
. The link to this Changelog has changed (but the old link redirects).
- Equation numbering with
\begin{align/alignat/equation/eqnarray/gather}
environments. Use\begin{align*}
etc. to prevent equation numbers. (Further incorporating KaTeX 0.13.) - Fix horizontal scrollbar when editing wide formulas (say) in side-by-side mode.
- When starting a New Thread, automatically focus on the message title for more immediate typing.
- Add support for LaTeX amsmath environments
\begin{alignat}
,\begin{gather}
, and\begin{CD}
(thanks to KaTeX 0.13). [#531]
- Custom scrollbars should look nicer especially in dark mode. [#548]
- Syntax highlighting should fail less often now, by telling
highlight.js
to keep highlighting even if it encounters what it considers a syntax error.
- Further improved visual styling of GitHub Flavored Markdown checkboxes in lists, now using Unicode symbols instead of actual disabled checkboxes. It's now much easier to distinguish the checked vs. unchecked state.
- Further speed up Coauthor server restart.
- Improved visual styling of GitHub Flavored Markdown checkboxes in lists, in particular rendering both a number and a checkbox for ordered lists, and fix multiparagraph checkbox items. [#545]
- You can use GitHub Flavored Markdown checkboxes in lists (again) via
* [ ]
and* [x]
. (The checkboxes can't be clicked, but are still useful visual indicators for to-do lists.) - You can see and add emoji responses to messages while editing them. (This restores functionality removed on 2020-11-02 in an experiment for #488.) [#543]
- Messages with file attachments now consistently link to the latest version in non-history view, and to a specific version in history view. (This bug was introduced during the React port.)
- Raw view of messages with image attachments now shows a clean
<img>
embed command, without the file size which can get out of date. [#536]
- For server administrators, the backup script in
.backup/backup.sh
got refactored to be easier to configure to your specific setup (server, backup directory, backup server, etc.). It's also now easier to adapt to other servers like Cocreate and Comingle.
- Message reply button labels and tooltips are somewhat improved: "Reply All" became "Reply" for symmetry / less confusion, tooltips use more adjectives to clarify what each button will do, and buttons that generate private replies are colored the private color.
- Coauthor server restart time should be much faster, via a better choice for index of notifications.
- If the Coauthor server has restarted and you have changes that would be lost in reload, you now get an alert at the bottom of the window (in addition to alerts within the relevant messages).
- Markdown lists can start at a number other than 1 (e.g.
0.
or2.
). (Later numbers still automatically increment by 1, whatever you write, following the CommonMark spec.) - Coauthor server restarts no longer cause you to lose unsaved changes in a message editor (by reloading the page). Instead, Coauthor will prompt you to save your unsaved changes in another file or your clipboard, manually reload, and put your changes back in. Coauthor will also warn you before you manually close the tab or reload a page that has unsaved changes. [#125]
- Server administrators: Automatic database format upgrade from older version
of Coauthor is no longer always automatic; it is controlled by the
presence/absence of the
COAUTHOR_SKIP_UPGRADE_DB
environement variable in.deploy/mup.js
; see INSTALL.md. This speeds up typical server restarts which don't need database upgrades. - Server administrators: The default MongoDB version is now 4.4.4. If you already have MongoDB installed, the version shouldn't change.
- Fix the wrong page's PDF links sometimes showing up when quickly flipping through the pages of a PDF file. [#534]
- Allow line breaks in math with punctuation after it, like
$O(m+n)$,
(which, as in LaTeX, can break after+
). [#465] - Fix handling of math in HTML comments like
<!--$math$-->
. [#535]
- If a user edits a message, then removes themselves as a coauthor on the message, you'll see their name in parentheses in History view.
- Fix incorrect labels and tags on the root message in a zoomed-in view of a subthread.
- Improvements to Coauthor's
\def
processing (when outside math mode):\foobar
no longer triggers expansion of a defined\foo
macro- You can use
\foo{}
or{\foo}
to avoid eating the whitespace after\foo
.
- Protected messages no longer have a "Protected" label (in particular in the group view). Instead, there's a lock icon on the Edit button of the message, and the button is disabled if the user can't edit the message (they aren't a coauthor or a superuser). [#530]
- Edit and Stop Editing buttons have tooltips to explain their behavior, in particular that messages are automatically saved and thereby visible to everyone immediately (unless unpublished or deleted).
- You can now create a new thread in a new browser tab by middle clicking or Ctrl clicking one of the New Root Message buttons. [#482]
- Fix all messages disappearing when setting "Preview while editing" to "No".
- Superusers can now toggle superuser mode (the equivalent of the Become/Leave Superuser button) via the keyboard shortcut s.
- Email notifications now use all-caps adjectives like DELETED, UNPUBLISHED, and PRIVATE so that they stand out more.
- Messages can now be marked as Protected, meaning that only coauthors and superusers can edit the message. This does not affect the ability to see the message, nor the ability to reply (including emoji responses). This is useful for preventing user error, e.g., to avoid accidentally adding coauthors to root messages to threads with private replies (e.g. solved problems), or to avoid accidentally unminimizing a minimized hint message. [#507]
- Table of contents now correctly underlines messages with math in their titles.
- "Add emoji response" tooltip closes after selecting an emoji to add.
- Fix navbar dropdown menus getting covered up by the table of contents.
- Fix errors in
`
processing. [#527]
- Clicking on a message in the table of contents scrolls to that message (as it used to).
- Replace group-level "Pose New Problem / Discussion" button with "New Thread" dropdown, making it easy to start an (un)published thread. [#524]
- Replying to an unpublished or deleted message makes an unpublished or deleted reply message. [#525]
- Prevent deleting or unpublishing messages that you're not a coauthor on. This prevents accidental loss of access to a message, where you accidentally delete or unpublish a message and then can't see it anymore, so can't fix your mistake. (If you need to work around this, you can always become a coauthor (or superuser) before deleting or unpublishing.)
https://coauthor.../group/stats/me
is now a link to your own stats (me
expands to your own username). Useful for sending the link to others.
- Replace Reply and Attach buttons with a Reply/Attach menu, making it harder to accidentally add a new reply and easier to start an (un)published reply. [#523]
- Add more tooltips to Reply options to clarify what they do. [#396]
- Next/previous message buttons at top of a thread now show the target message title, including Markdown/LaTeX formatting.
- Keyboard shortcut t toggles whether to show the Table of Contents (so that you don't have to scroll up to toggle)
- Email notifications now color adjectives like deleted, unpublished, and private so that they stand out more.
- Support embedding Coauthor files into Cocreate boards (e.g., via copy/paste)
- Highlight at-mentions that refer to you within email notifications [#384]
- Highlight at-mentions that refer to you, so that you can more easily see people mentioning you while scrolling.
- Prevent
$
from triggering math mode within Markdown code blocks, so e.g.`$x$`
doesn't italicize thex
. [#387] - Security fix for HTML in user's real names; and forbid Markdown special characters from usernames. [#516]
- Allow manual toggling of Table of Contents (by clicking on the header at the top of a thread), so you can show it on narrow displays or hide it on wide displays. [#324]
- Search supports notation
by:me
to find messages by yourself, andemoji:@me
to find messages that you responded to with emoji:me
automatically expands to your username. - Prevent a nonsuperuser from making private the root message of a thread that has public and private replies allowed, because root message isn't a reply.
- Add tooltips explaining all remaining Action buttons [#396]
- Search supports
by:username
to find messages coauthored by a particular username. [#29] - Search supports
emoji:heart
to find messages with heart emoji responses,emoji:@username
to find messages with emoji responses by a particular username, andemoji:heart@username
to find heart emoji responses by a particular username. [#29] - Search supports
isnt:
andnot:
short forms for-is:
. For example,isnt:file
matches messages that aren't file messages. [#29] - Fix highlighting of emoji responses that include yourself. [#511]
- Prevent history slider tooltips from overlapping with content or falling outside the window.
- Fix History view not loading correctly on second try.
- Authorship and Access list major revamp.
[#503]
- Every message now has an explicit coauthor list which you can manipulate: add to it to represent who you worked with in a live session, or remove your own name if you're just fixing a typo. (Only superusers can remove other people who did actual edits.)
- Private messages have an access list for who to share the message with, which activates only when the message is published (so you can still draft private messages, accessible only to the coauthors).
- At-mentions no longer have any effect on who can see a message (but they will trigger automatic suggestions for people to add to the access list in a private message). Old at-mentions are converted to coauthorship.
Refer to the Git log for changes older than listed in this document.