aboutsummaryrefslogtreecommitdiff
path: root/doc/ref/javascript
diff options
context:
space:
mode:
authorHugo Hörnquist <hugo@lysator.liu.se>2023-09-05 11:41:46 +0200
committerHugo Hörnquist <hugo@lysator.liu.se>2023-09-05 11:41:46 +0200
commitf653a01328be3b8be6af35c0c96867623765ca5b (patch)
treeaee9a5d3abfc39270f55defd7bc1a7e47920ffc3 /doc/ref/javascript
parentMinor whitespace cleanup. (diff)
downloadcalp-f653a01328be3b8be6af35c0c96867623765ca5b.tar.gz
calp-f653a01328be3b8be6af35c0c96867623765ca5b.tar.xz
Move JS documentation into the JS-code.
Texinfo was a bad match for how TypeScript is structured. This also allows generation of jsdoc pages, which can be nice. Another large win is that this opens up for the texinfo pages to replace the Guile heading with different subheadings, including - external library - internal library - C library - ...
Diffstat (limited to 'doc/ref/javascript')
-rw-r--r--doc/ref/javascript/clock.texi78
-rw-r--r--doc/ref/javascript/components/changelog.texi10
-rw-r--r--doc/ref/javascript/components/date_time_input.texi34
-rw-r--r--doc/ref/javascript/components/edit_rrule.texi10
-rw-r--r--doc/ref/javascript/components/input_list.texi16
-rw-r--r--doc/ref/javascript/components/popup_element.texi40
-rw-r--r--doc/ref/javascript/components/tab_group_element.texi46
-rw-r--r--doc/ref/javascript/components/vevent.texi23
-rw-r--r--doc/ref/javascript/components/vevent_block.texi10
-rw-r--r--doc/ref/javascript/components/vevent_description.texi16
-rw-r--r--doc/ref/javascript/components/vevent_dl.texi11
-rw-r--r--doc/ref/javascript/components/vevent_edit.texi9
-rw-r--r--doc/ref/javascript/eventCreator.texi15
-rw-r--r--doc/ref/javascript/formatters.texi23
-rw-r--r--doc/ref/javascript/globals.texi41
-rw-r--r--doc/ref/javascript/jcal.texi7
-rw-r--r--doc/ref/javascript/lib.texi148
-rw-r--r--doc/ref/javascript/server_connect.texi22
-rw-r--r--doc/ref/javascript/types.texi95
-rw-r--r--doc/ref/javascript/user-additions.texi18
-rw-r--r--doc/ref/javascript/vevent.texi113
21 files changed, 0 insertions, 785 deletions
diff --git a/doc/ref/javascript/clock.texi b/doc/ref/javascript/clock.texi
deleted file mode 100644
index 10ab7d4e..00000000
--- a/doc/ref/javascript/clock.texi
+++ /dev/null
@@ -1,78 +0,0 @@
-@node clock
-@subsection clock.js
-
-@deftp {abstract class} Clock
-Interface for ``things'' which wants to get updated on a human timescale.
-
-@defmethod Clock update now
-@c abstract method
-Called every now and then, with @var{now} being the current time.
-@end defmethod
-@end deftp
-
-@deftp {class} Timebar @extends{Clock}
-The (blue) vertical line which show the current time in the current day.
-
-@c @defmethod Timebar constructor ∅
-@c @end defmethod
-@c
-@c @defmethod Timebar update now
-@c @end defmethod
-@end deftp
-
-@deftp {class} SmallcalCellHighlight @extends{Clock}
-Highlights the current date in the small calendar to the side.
-Currently directly sets a border
-@TODO{but should preferably set a class instead}.
-
-@defmethod SmallcalCellHighlight constructor small_cal
-@var{small_cal} is the DOM-node of the calendar.
-(it should support querySelector).
-@end defmethod
-
-@c @defmethod SmallcalCellHighlight update now
-@c @end defmethod
-@end deftp
-
-@deftp {class} ButtonUpdater @extends{Clock}
-Updates the ``Today'' link in the side panel to point directly to the
-correct web-address. The link works without JavaScript, but then
-requires a redirect from the server.
-
-All actual updating logic is already abstracted away. It would be
-desirable if something more was done with this.
-
-@defmethod ButtonUpdater el proc
-Takes the element @var{el} to be updated, and the procedure @var{proc}
-which will be called with the element, and the current time.
-@end defmethod
-@end deftp
-
-
-As of commit
-@githash{c9719ce7937f0f0f2aa371ced1d585f67af22457,static/script.js,231}
-all objects required manual setup. See static/script.js:
-
-@verbatim
- 231 let start_time = document.querySelector("meta[name='start-time']").content;
- 232 let end_time = document.querySelector("meta[name='end-time']").content;
- 233
- 234 const button_updater = new ButtonUpdater(
- 235 document.getElementById("today-button"),
- 236 (e, d) => e.href = d.format('~Y-~m-~d') + ".html"
- 237 );
- 238
- 239 const sch = new SmallcalCellHighlight(
- 240 document.querySelector('.small-calendar'))
- 241
- 242 const timebar = new Timebar(start_time, end_time);
- 243
- 244 timebar.update(new Date);
- 245 window.setInterval(() => {
- 246 let d = new Date;
- 247 timebar.update(d);
- 248 button_updater.update(d);
- 249 sch.update(d);
- 250 }, 1000 * 60);
- 251
-@end verbatim
diff --git a/doc/ref/javascript/components/changelog.texi b/doc/ref/javascript/components/changelog.texi
deleted file mode 100644
index d14fb84e..00000000
--- a/doc/ref/javascript/components/changelog.texi
+++ /dev/null
@@ -1,10 +0,0 @@
-@subsection Changelog
-
-@deftp {Web Component for VEvent} VEventChangelog
-@wcindex <vevent-changelog>
-@wcindex vevent-changelog
-@anchor{VEventChangelog}
-@code{<vevent-changelog>}
-
-Display of a VEvents changelog. @ref{ChangeLogEntry}
-@end deftp
diff --git a/doc/ref/javascript/components/date_time_input.texi b/doc/ref/javascript/components/date_time_input.texi
deleted file mode 100644
index f26627d2..00000000
--- a/doc/ref/javascript/components/date_time_input.texi
+++ /dev/null
@@ -1,34 +0,0 @@
-@subsection date-time-input
-
-@deftp {Web Component} DateTimeInput
-@wcindex <date-time-input>
-@wcindex date-time-input
-@code {<date-time-input>}
-
-An element for input for date-times. Similar to
-@example
-<input type="date"/>
-<input type="time"/>
-@end example
-But as a single unit.
-
-@deftypeivar DateTimeInput boolean dateonly
-Setting this to true disabled the time part of the input, and makes
-any output only have date components (alternativly, the time component
-set to zero).
-@end deftypeivar
-
-@defcv {Attribute} DateTimeInput dateonly
-Same data as the field dateonly, but as an attribute. Present means
-true, absent means false.
-@end defcv
-
-@deftypeivar DateTimeInput Date value
-Returns current value as a Date object.
-@end deftypeivar
-
-@deftypeivar DateTimeInput string stringValue
-Returns current value as an ISO-8601 formatted string.
-@end deftypeivar
-
-@end deftp
diff --git a/doc/ref/javascript/components/edit_rrule.texi b/doc/ref/javascript/components/edit_rrule.texi
deleted file mode 100644
index 21437863..00000000
--- a/doc/ref/javascript/components/edit_rrule.texi
+++ /dev/null
@@ -1,10 +0,0 @@
-@subsection Edit RRule
-
-@deftp {Web Component for VEvent} EditRRule
-@wcindex <vevent-edit-rrule>
-@wcindex vevent-edit-rrule
-@code{<vevent-edit-rrule>}
-
-An edit form for a recurrence rule. Searches its template for elements
-with @code{[name="<<field name>>"]}, and binds to those.
-@end deftp
diff --git a/doc/ref/javascript/components/input_list.texi b/doc/ref/javascript/components/input_list.texi
deleted file mode 100644
index bdc00ecb..00000000
--- a/doc/ref/javascript/components/input_list.texi
+++ /dev/null
@@ -1,16 +0,0 @@
-@subsection input_list.js
-
-@deftp {Web Component} InputList
-@wcindex <input-list>
-@wcindex input-list
-@code{<input-list>}
-
-A list of identical input fields, which forms a group. For example
-useful to handle keywords.
-
-@deftypeivar DateTimeInput {any[]} value
-The value from each element, except the last which should always be empty.
-Has an unspecified type, since children:s value field might give non-strings.
-@end deftypeivar
-
-@end deftp
diff --git a/doc/ref/javascript/components/popup_element.texi b/doc/ref/javascript/components/popup_element.texi
deleted file mode 100644
index 2b76b347..00000000
--- a/doc/ref/javascript/components/popup_element.texi
+++ /dev/null
@@ -1,40 +0,0 @@
-@subsection Popup
-
-@deftp {Web Component for VEvent} PopupElement
-@wcindex <popup-element>
-@wcindex popup-element
-@code{<popup-element>}
-
-A (small) floating window containing information, which can be dragged
-arround. Consists of a navigation bar with a few buttons for
-controlling the window, which also works as a drag handle, along with
-an area for contents, which can be resized by the user.
-
-Currently tightly coupled to VEvent's, since their color
-profile is derived from their owning events calendar, and they have
-action buttons for the event in their navigation bar.
-
-@deftypecv {Static Member} PopupElement {PopupElement?} activePopup
-The popup which was most recently interacted with by the user. Used to
-move it on top of all others, as well as sending relevant key events there.
-@end deftypecv
-
-@defcv {Attribute} PopupElement visible
-Present is the popup is currently visible, absent otherwise.
-@end defcv
-
-@deftypeivar PopupElement boolean visible
-See the attribute of the same name.
-@end deftypeivar
-
-@defmethod PopupElement maximize
-Resize the popup window to fill the current viewport (mostly). Is
-probably bonud to the maximize button in the navigation bar.
-@end defmethod
-@end deftp
-
-@deftypefun PopupElement setup_popup_element VEvent
-Create a new popup element for the given VEvent, and ready it for
-editing the event. Used when creating event (through the frontend).
-The return value can safely be ignored.
-@end deftypefun
diff --git a/doc/ref/javascript/components/tab_group_element.texi b/doc/ref/javascript/components/tab_group_element.texi
deleted file mode 100644
index 7e0b190a..00000000
--- a/doc/ref/javascript/components/tab_group_element.texi
+++ /dev/null
@@ -1,46 +0,0 @@
-@subsection Tab Group Element
-
-@deftp {Web Component for VEvent} TabGroupElement
-@wcindex <tab-group>
-@wcindex tab-group
-@code{<tab-group>}
-
-A group of tabs, where only one can be visible at a time.
-
-@c TODO which form does the HTML document have? For CSS purposes
-
-Each tab consists of two parts, a label which is used for selecting
-it, and a tab-element, which contains the actual content. These two
-should refer to each other as follows:
-
-@example
-+---------------+ +-----------------+
-| TabLabel | | Tab |
-+---------------+ +-----------------+
-| id |<----| aria-labelledby |
-| aria-controls |---->| id |
-+---------------+ +-----------------+
-@end example
-
-Further information about tabs in HTML can be found here:
-@url{https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Roles/Tab_Role}
-
-@defvr {CSS Variable} {--tabcount}
-Each tab element has the style property @code{--tabcount} set to how
-many tabs it has. This is mostly useful to make sure the tab context
-is large enough to fit all tab labels without overflowing.
-@end defvr
-
-@deftypemethod TabGroupElement void addTab {HTMLElement} {label: string?} {title: string?}
-Adds a new tab to the group. The first parameter will make up the body
-of the tab. The label is whath should be shown in the tab selector,
-but defaults to the first letter of the text content of the body node.
-Title is the hoover text of the label.
-@end deftypemethod
-
-@deftypemethod TabGroupElement void removeTab {HTMLElement}
-HTMLElement must be one of the tab bodies in this group. This method
-removes it, along with its TabLabel.
-@end deftypemethod
-
-@end deftp
diff --git a/doc/ref/javascript/components/vevent.texi b/doc/ref/javascript/components/vevent.texi
deleted file mode 100644
index be53a46e..00000000
--- a/doc/ref/javascript/components/vevent.texi
+++ /dev/null
@@ -1,23 +0,0 @@
-@subsection vevent
-
-@deftp {Abstract Web Component} ComponentVEvent {uid: string?}
-
-@c TODO what is done in the default constructor,
-@c and the default connectedCallback
-
-This registeres itself, but doesn't redraw
-We do however redraw in connectedCallback
-
-@deftypeivar ComponentVEvent uid uid
-@end deftypeivar
-
-@deftypeivar ComponentVEvent {HTMLTemplateElement?} template
-@end deftypeivar
-
-@deftypemethod ComponentVEvent void redraw (data: VEvent)
-While abstract for this, @emph{must} be overridden for everyone else
-@end deftypemethod
-@end deftp
-
-Note that many of these assume that their initial children are
-configured specifically, that is however not completely documented.
diff --git a/doc/ref/javascript/components/vevent_block.texi b/doc/ref/javascript/components/vevent_block.texi
deleted file mode 100644
index 1a0ef160..00000000
--- a/doc/ref/javascript/components/vevent_block.texi
+++ /dev/null
@@ -1,10 +0,0 @@
-@subsection VEvent Block
-
-@deftp {Web Component for VEvent} ComponentBlock
-@wcindex <vevent-block>
-@wcindex vevent-block
-@code{<vevent-block>}
-A block in our graphical view.
-
-Unique in that it works quite differently between the week and month view.
-@end deftp
diff --git a/doc/ref/javascript/components/vevent_description.texi b/doc/ref/javascript/components/vevent_description.texi
deleted file mode 100644
index 54dda7e3..00000000
--- a/doc/ref/javascript/components/vevent_description.texi
+++ /dev/null
@@ -1,16 +0,0 @@
-@subsection VEvent Description
-
-@deftp {Web Component for VEvent} ComponentDescription
-@wcindex <vevent-description>
-@wcindex vevent-description
-@code{<vevent-description>}
-
-A text representation of a VEvent. Used as the summary tab of our
-popup windows, and in the sidebar.
-
-When redrawn, it looks for an HTML-tag inside its template having the
-attribute @code{data-property} matching the properties name. If one is
-found, it looks in the @code{formatters} table
-(@ref{formatters-proc}), for a field matching the property value, and
-defaults to the key @code{default}.
-@end deftp
diff --git a/doc/ref/javascript/components/vevent_dl.texi b/doc/ref/javascript/components/vevent_dl.texi
deleted file mode 100644
index 26bc8fd4..00000000
--- a/doc/ref/javascript/components/vevent_dl.texi
+++ /dev/null
@@ -1,11 +0,0 @@
-@subsection VEvent Description List
-
-@deftp {Web Component for VEvent} VEventDL
-@wcindex <vevent-dl>
-@wcindex vevent-dl
-@code{<vevent-dl>}
-A description list of a vevent, used for debugging.
-
-No guarantees are given about the contents of the data fields, more
-than that they are related to the value in question.
-@end deftp
diff --git a/doc/ref/javascript/components/vevent_edit.texi b/doc/ref/javascript/components/vevent_edit.texi
deleted file mode 100644
index 67e9f6b3..00000000
--- a/doc/ref/javascript/components/vevent_edit.texi
+++ /dev/null
@@ -1,9 +0,0 @@
-@subsection VEvent Edit
-
-@deftp {Web Component for VEvent} ComponentEdit
-@wcindex <vevent-edit>
-@wcindex vevent-edit
-@code{<vevent-edit>}
-Edit form for a vevent, designed for useful human interaction (and
-thereby not being all-encompassing).
-@end deftp
diff --git a/doc/ref/javascript/eventCreator.texi b/doc/ref/javascript/eventCreator.texi
deleted file mode 100644
index 164d1335..00000000
--- a/doc/ref/javascript/eventCreator.texi
+++ /dev/null
@@ -1,15 +0,0 @@
-@deftp {class} EventCreator
-
-@defmethod EventCreator create_empty_event
-@end defmethod
-
-@defmethod EventCreator create_event_down intended_target
-@end defmethod
-
-@defmethod EventCreator create_event_move pos_in [round=1] [wide_element=false]
-@end defmethod
-
-@defmethod EventCreator create_event_finisher callback
-@end defmethod
-
-@end deftp
diff --git a/doc/ref/javascript/formatters.texi b/doc/ref/javascript/formatters.texi
deleted file mode 100644
index a3086aa9..00000000
--- a/doc/ref/javascript/formatters.texi
+++ /dev/null
@@ -1,23 +0,0 @@
-@node formatters
-@subsection formatters
-
-Formatting procedures used by some components.
-@c TODO can we have a backref of every node containing @ref{formatters-proc}?
-
-@deftypefun void format(targetElement:HTMLElement, data:VEvent, key:string)
-Checks if a specific formatter exists for the given key, and executes
-it.
-Defaults to 'default', and also runs that if the regular formatter throws.
-@end deftypefun
-
-@deftypevar {Map<string, (e:HTMLElement, d:VEvent, s:any) => void>} formatters
-@anchor{formatters-proc}
-
-Each procedure takes three arguments. The HTML-element which contents
-should be replaced, the VEvent containing all data, and the target
-value, as returned by @ref{VEvent.getProperty}.
-@end deftypevar
-
-@deftypevr {Window Value} {Map<string, (e:HTMLElement, d:VEvent, s:string) => void>} formatters
-Same object as @xref{formatters-proc}. Provided for @xref{user-additions.js}.
-@end deftypevr
diff --git a/doc/ref/javascript/globals.texi b/doc/ref/javascript/globals.texi
deleted file mode 100644
index 5ef7a43b..00000000
--- a/doc/ref/javascript/globals.texi
+++ /dev/null
@@ -1,41 +0,0 @@
-@node globals
-@subsection globals.ts
-
-Different variables and values which for different reasons needs to be
-global. Window Value's are those that are bound to the @code{window}
-context in JavaScript, so is really always available, no opt out.
-
-@deftypevar {Map<uid, VEvent>} vcal_objects
-All VEvent objects on current page, indexed by their unique identifiers.
-
-A global object store.
-@end deftypevar
-
-@deftypevar {Map<uid, string>} event_calendar_mapping
-Mapping from VEvent unique identifier, to name of its calendar. Should
-probably not be global, so refrain from using it.
-@end deftypevar
-
-@deftypevr {Window Value} {Map<uid, VEvent>} vcal_objects
-The exact same object store as the regular variable of the same
-name. Mostly here for human debugability.
-@end deftypevr
-
-@deftypevr {Window Value} {@code{'month'} | @code{'string'}} VIEW
-How the calendar is currently formatted. Should be set by the backend
-through a simple @code{script}-tag.
-@end deftypevr
-
-@deftypevr {Window Value} {boolean} EDIT_MODE
-However editing of events is enabled or not.
-Should be set by the backend through a simple @code{script}-tag.
-@end deftypevr
-
-@deftypevr {Window Value} {string} default_calendar
-Name of the calendar to assume when creating new events.
-Should be set by the backend through a simple @code{script}-tag.
-@end deftypevr
-
-@c TODO addNewEvent
-@c @deftypevr {Window Value} {string} default_calendar
-@c @end deftypevr
diff --git a/doc/ref/javascript/jcal.texi b/doc/ref/javascript/jcal.texi
deleted file mode 100644
index 997b4d59..00000000
--- a/doc/ref/javascript/jcal.texi
+++ /dev/null
@@ -1,7 +0,0 @@
-@node jcal
-@subsection jcal.js
-
-@deftypefun Document jcal_to_xcal {JCal ...}
-A document with the xcal namespace, and @code{icalendar} as its root
-element. Each child is a valid xcal representation of our JCal object.
-@end deftypefun
diff --git a/doc/ref/javascript/lib.texi b/doc/ref/javascript/lib.texi
deleted file mode 100644
index a3fb0697..00000000
--- a/doc/ref/javascript/lib.texi
+++ /dev/null
@@ -1,148 +0,0 @@
-
-@node lib
-@subsection lib.js
-
-General procedures which in theory could be used anywhere.
-
-
-@node Default prototype extensions
-@subsubsection Default prototype extensions
-
-HTMLElement extensions
-
-@defmethod HTMLElement addEventListener name proc
-Replace the default @code{addEventListener} with a version that stores
-all listeners in the dictionary @var{listeners}.
-@end defmethod
-
-@defivar HTMLElement listeners
-Dictionary of all registered listeners to this element.
-Keys are taken from @code{addEventListener}.
-@end defivar
-
-@defmethod DOMTokenList find regexp
-Finds the first element of the DOMTokenList whichs value matches
-the supplied regexp. Returns a pair of the index and the value.
-@end defmethod
-
-@defmethod Object format args ...
-Returns a string representation of the given object.
-Allows extending for custom types,
-@ref{date-format}
-@end defmethod
-
-@node General
-@subsubsection General
-
-@defun zip args ...
-Takes a list of lists, and returns a single list of tuples.
-@example
-» zip([1,2,3,4,5], "Hello")
-← [[1,'H'],[2,'e'],[3,'l'],[4,'l'],[5,'o']]
-@end example
-@end defun
-
-@defun makeElement name [attr=@{@}]
-Creates a new DOM element of type @var{name}, with all keys in
-@var{attr} transfered to it. For example, the equivalent of
-@example
-<input type='number'/>
-@end example
-would be
-@verbatim
-values.push(makeElement('input', {
- type: 'number',
-}));
-@end verbatim
-.
-@end defun
-
-@defun round_time time fraction
-TODO
-@end defun
-
-@defun date_to_percent date
-Retuns how far along the date specified by @var{date} is, between 0
-and 100, where 00:00 maps to 0, and 23:59 to ~100.
-@end defun
-
-@defun gensym [pxrefix='gensym']
-Generates a new string which is (hopefully) globally unique.
-Compare with @code{gensym} from Lisp.
-@end defun
-
-@defun asList thing
-Ensures that @var{thing} is a list. Returning it outright if it
-already is one, otherwise wrapping it in a list.
-@end defun
-
-@node Date
-@subsubsection Date
-
-Some extensions to the builtin class ``Date'' is made.
-
-@defivar Date utc
-Boolean indicating if the given timestamp is in UTC or local time.
-true means UTC.
-@end defivar
-
-@defivar Date dateonly
-Boolean indicating if the time component of the Date object should be disregarded.
-@end defivar
-
-@defun parseDate str
-Takes a string @var{str}, which should be in ISO-8601 date-format, and
-returns a javascript Date object.
-Handles date-times, with and without seconds, trailing `Z' for
-time-zones, and dates without times.
-If no time is given the @code{dateonly} attribute is set to yes.
-@end defun
-
-@defun copyDate date
-Creates a new instance of the given Date @var{date}, also transfers my
-custom fields.
-@end defun
-
-@defun to_local date
-@anchor{to_local}
-Returns a Date object (which may be new) which is guaranteed in local
-time.
-This means that the @var{utc} field is @code{false}, and that
-@code{to_local(current_time())} should show what your wall-clock shows.
-@end defun
-
-@defmethod Date format str args ...
-@anchor{date-format}
-Formats a Date object according to the format specification @var{str}.
-Keeping with Guile each format specifier starts with a ~.
-
-@table @samp
-@item ~~
-literal ~
-@c Almost all fields are left padded. How do I signify this
-@c with a single footnote?
-@item ~Y
-year, left-padding with zeroes.
-@item ~m
-month number, left padded with zeroes.
-@item ~d
-day of month.
-@item ~H
-hour
-@item ~M
-minute
-@item ~S
-second
-@item ~Z
-'Z' if Date is UTC, otherwise nothing
-@item ~L
-Converts the date to local time
-(@pxref{to_local}) (doesn't modify source object). Outputs nothing
-@end table
-@end defmethod
-
-@defun format_date date str
-Equivalent to @code{(@var{date}).format(@var{str})}.
-@c TODO link
-@end defun
-
diff --git a/doc/ref/javascript/server_connect.texi b/doc/ref/javascript/server_connect.texi
deleted file mode 100644
index c67f47ff..00000000
--- a/doc/ref/javascript/server_connect.texi
+++ /dev/null
@@ -1,22 +0,0 @@
-@node server_connect
-@subsection server_connect.js
-
-Procedures for interfacing with the backend server.
-
-@deftypefn {Async Function} void create_event {event: VEvent}
-Packs up the given event and sends it to the server to either be
-created, or simply be updated in the persistant database.
-
-Also does some minor updates registered components, to show that the
-event is actually created.
-@end deftypefn
-
-@deftypefn {Async Function} void remove_event {uid: uid}
-Requests that the server permanently remove the event with the given
-unique id from its persistant storage.
-
-If the server responds with a success also delete it from our local
-store (@code{vcal_objects}).
-
-@c TODO link to our backend flow here
-@end deftypefn
diff --git a/doc/ref/javascript/types.texi b/doc/ref/javascript/types.texi
deleted file mode 100644
index 6f518f53..00000000
--- a/doc/ref/javascript/types.texi
+++ /dev/null
@@ -1,95 +0,0 @@
-@node types
-@subsection types.js
-
-Collection of type information for calendar data.
-
-@defvar all_types
-Name of all valid icalendar types.
-
- text, uri, binary, float, integer, date-time, date, duration,
- period, utc-offset, cal-address, recur, boolean,
-@end defvar
-
-@deftp {Data Type} ical_type
-The union of all elements in @var{all_types}.
-@end deftp
-
-@defvar property_names
-All known names properties (top level keys) can have.
-Such as ``calscale'', ``dtstart'', ...
-@end defvar
-
-@deftypevar {Map<string, string[]>} valid_fields
-Which property fields each component can hold.
-
-@verbatim
-{ 'VCALENDAR': ['PRODID', 'VERSION', 'CALSCALE', 'METHOD'],
- ...
-}
-@end verbatim
-@end deftypevar
-
-@deftypevar {Map<string, Array<ical_type | ical_type[]>>} valid_input_types
-Which types are valid to store under each property.
-If multiple values are an option for that property, then
-the list of possibilities will contain a sub-list (see example).
-
-@verbatim
-{ 'DTSTART': ['date', 'date-time'],
- 'CATEGORIES': [['text']],
- ...
-}
-@end verbatim
-@end deftypevar
-
-@deftp {Data Type} tagname
-Alias of (@code{'vevent'} | @code{'string'}).
-@end deftp
-
-@deftp {Data Type} uid
-Alias of @code{'string'}.
-@end deftp
-
-@c TODO link to the RFC
-@c - RFC 7265 (jCal)
-
-@deftp {Data Type} JCalProperty
-Alias for a record consisting of
-@itemize @bullet
-@item the name of the type, as a string
-@item All parameters of the object, as a @code{Record<string, any>}
-@footnote{Which is simply a regular javascript object, mapping strings to anything}.
-@item An @code{ical_type} value, noting the type of the final field(s)
-@item And one or more values of the type specified by the third field.
-@end itemize
-@end deftp
-
-@deftp {Data Type} JCal
-A record consisting of a @code{tagname}, a list of
-@code{JCalProperties}, and a list of other @code{JCal} objects.
-@end deftp
-
-@defvar xcal
-The xml namespace name for xcalendar, which is
-``urn:ietf:params:xml:ns:icalendar-2.0''.
-@end defvar
-
-
-@deftp {Interface} ChangeLogEntry
-@anchor{ChangeLogEntry}
-
-@ref{VEventChangelog}
-
-@deftypecv {Interface Field} ChangeLogEntry {(@code{'calendar'} | @code{'property'})} type
-@end deftypecv
-
-@deftypecv {Interface Field} ChangeLogEntry {string} name
-@end deftypecv
-
-@deftypecv {Interface Field} ChangeLogEntry {string?} from
-@end deftypecv
-
-@deftypecv {Interface Field} ChangeLogEntry {string?} to
-@end deftypecv
-
-@end deftp
diff --git a/doc/ref/javascript/user-additions.texi b/doc/ref/javascript/user-additions.texi
deleted file mode 100644
index 706b1dd4..00000000
--- a/doc/ref/javascript/user-additions.texi
+++ /dev/null
@@ -1,18 +0,0 @@
-@node user-additions.js
-@section user-additions.js
-
-Some things in the JavaScript code is built to be user-extendable.
-The HTML-page attempts to load @code{/static/user/user-additions.js}.
-
-
-Currently; this only entails @ref{formatters}, where you could, for
-example, parse all HTTP-links in a description.
-
-@example
-window.formatters.set('description', (el, d) => @{
- el.innerHTML = d.replaceAll(/https?:\/\/\S+/g, '<a href="$&">$&</a>');
-@})
-@end example
-
-Remember that the documents are X-HTML, so be @emph{extremely} careful
-with innerHTML.
diff --git a/doc/ref/javascript/vevent.texi b/doc/ref/javascript/vevent.texi
deleted file mode 100644
index 97d15f2a..00000000
--- a/doc/ref/javascript/vevent.texi
+++ /dev/null
@@ -1,113 +0,0 @@
-@node vevent
-@subsection vevent.js
-
-@deftp {Interface} Redrawable
-@deftypeop {Interface Field} Redrawable void redraw VEvent
-@end deftypeop
-@end deftp
-
-@deffn {Type Predicate} isRedrawable element
-Checks if the given element is an instance of Redrawable.
-@end deffn
-
-
-@deftp {class} VEventValue {type: ical_type} {value: any} {parameters: Map<string, any>}
-
-@deftypemethod VEventValue {[Record<string, any>, ical_type, any]} @
- to_jcal {}
-The return value is @emph{almost} a @code{JCalProperty}, just without
-the field name.
-@end deftypemethod
-
-@end deftp
-
-@deftp VEvent {properties: Map<string, VEventValue | VEventValue[]>} @
- {components: VEvent[]}
-
-Component for a single instance of a calendar event. Almost all data
-access should go through @code{getProperty} and @code{setProperty},
-with the exception of the current calendar (which is accessed directly
-through @code{calendar}). Almost all changes through these interfaces
-are logged, and can be viewed through @var{changelog}.
-
-@deftypemethod VEvent {any?} getProperty {key: string}
-@anchor{VEvent.getProperty}
-Returns the value of the given property if set, or undefined otherwise.
-
-For the keys
-@itemize
-@item @code{'CATEGORIES'},
-@item @code{'RESOURCES'},
-@item @code{'FREEBUSY'},
-@item @code{'EXDATE'}, and
-@item @code{'RDATE'}
-@end itemize
-instead returns a list list of values.
-@end deftypemethod
-
-
-@deftypemethod VEvent void setProperty {key: string} {value: any} {type: ical_type?}
-Sets the given property to the given value. If type is given it's
-stored alongside the value, possibly updating what is already
-there. Do however note that no validation between the given type and
-the type of the value is done.
-
-@var{value} may also be a list, but should only be so for the keys
-mentioned in @var{getProperty}.
-
-After the value is set, @var{redraw} is called on all registered
-objects, notifying them of the change.
-@end deftypemethod
-
-@deftypemethod VEvent void setProperties {[string, any, ical_type?][]}
-Equivalent to running @var{setProperty} for each element in the input
-list, but only calls @var{redraw} once at the end.
-@end deftypemethod
-
-@deftypemethod VEvent {IteratableIterator<string>} boundProperties
-Returns an iterator of all our properties.
-@end deftypemethod
-
-@deftypeivar VEvent {ChangeLogEntry[]} {#changelog}
-Every write through getProperty gets logged here, and can be
-consumed. Hopefully this will one day turn into an undo system.
-@ref{ChangeLogEntry}.
-@end deftypeivar
-
-@deftypeivar VEvent {IterableIterator<[number, ChangeLogEntry]>} changelog
-Public (read only) interface to changelog.
-@end deftypeivar
-
-@deftypeivar VEvent {string?} calendar
-The name of the calendar which this event belongs to.
-@end deftypeivar
-
-@deftypemethod VEvent void register {htmlNode: Redrawable}
-Register something redrawable, which will be notified whenever this
-VEvents data is updated.
-@end deftypemethod
-
-@deftypemethod VEvent void unregister {htmlNode: Redrawable}
-Stop recieving redraw events on the given component.
-@end deftypemethod
-
-@deftypemethod VEvent JCal to_jcal
-Converts the object to JCal data.
-@end deftypemethod
-
-@end deftp
-
-
-@deftp {class} RecurrenceRule
-@deftypemethod RecurrenceRule {Record<string, any>} to_jcal
-Converts ourselves to JCal data.
-@end deftypemethod
-@end deftp
-
-@deftypefun RecurrencRule xml_to_recurrence_rule {Element}
-Parse a XCAL recurrence rule into a RecurrenceRule object.
-@end deftypefun
-
-@deftypefun VEvent xml_to_vcal {Element}
-Parse a complete XCAL object into a JS VEvent object.
-@end deftypefun