diff --git a/DEPENDENCIES.md b/DEPENDENCIES.md
index 93371ef5..7819536e 100644
--- a/DEPENDENCIES.md
+++ b/DEPENDENCIES.md
@@ -39,8 +39,6 @@ Javascript dependencies:
([MIT License](https://github.com/rollup/rollup/blob/master/LICENSE.md))
- [tailwindcss](https://tailwindcss.com/)
([MIT License](https://github.com/tailwindcss/tailwindcss/blob/master/LICENSE))
-- [ProseMirror](https://prosemirror.net/)
- ([MIT License](https://github.com/ProseMirror/prosemirror/blob/master/LICENSE))
- [amCharts 4](https://github.com/amcharts/amcharts4)
([Free amCharts license](https://github.com/amcharts/amcharts4/blob/master/dist/script/LICENSE))
- [Choices.js](https://joshuajohnson.co.uk/Choices/)
diff --git a/app/Helpers/form_helper.php b/app/Helpers/form_helper.php
index e80bfd40..49eb5802 100644
--- a/app/Helpers/form_helper.php
+++ b/app/Helpers/form_helper.php
@@ -226,7 +226,8 @@ if (! function_exists('form_dropdown')) {
}
$form .= "\n";
} else {
- $form .= '\n";
}
diff --git a/app/Helpers/rss_helper.php b/app/Helpers/rss_helper.php
index 8ef68192..764c3bf3 100644
--- a/app/Helpers/rss_helper.php
+++ b/app/Helpers/rss_helper.php
@@ -51,7 +51,7 @@ if (! function_exists('get_rss_feed')) {
$channel->addChild('docs', 'https://cyber.harvard.edu/rss/rss.html');
$channel->addChild('guid', $podcast->guid, $podcastNamespace);
- $channel->addChild('title', $podcast->title);
+ $channel->addChild('title', $podcast->title, null, false);
$channel->addChildWithCDATA('description', $podcast->description_html);
$itunesImage = $channel->addChild('image', null, $itunesNamespace);
@@ -189,7 +189,7 @@ if (! function_exists('get_rss_feed')) {
$image = $channel->addChild('image');
$image->addChild('url', $podcast->image->feed_url);
- $image->addChild('title', $podcast->title);
+ $image->addChild('title', $podcast->title, null, false);
$image->addChild('link', $podcast->link);
if ($podcast->custom_rss !== null) {
@@ -200,7 +200,7 @@ if (! function_exists('get_rss_feed')) {
foreach ($episodes as $episode) {
$item = $channel->addChild('item');
- $item->addChild('title', $episode->title);
+ $item->addChild('title', $episode->title, null, false);
$enclosure = $item->addChild('enclosure');
$enclosure->addAttribute(
diff --git a/app/Libraries/SimpleRSSElement.php b/app/Libraries/SimpleRSSElement.php
index 84944700..8378c052 100644
--- a/app/Libraries/SimpleRSSElement.php
+++ b/app/Libraries/SimpleRSSElement.php
@@ -29,8 +29,12 @@ class SimpleRSSElement extends SimpleXMLElement
if ($newChild !== null) {
$node = dom_import_simplexml($newChild);
- $no = $node->ownerDocument;
- $node->appendChild($no->createCDATASection($value));
+ if ($node !== null) {
+ $no = $node->ownerDocument;
+ if ($no !== null) {
+ $node->appendChild($no->createCDATASection($value));
+ }
+ }
}
return $newChild;
@@ -43,17 +47,29 @@ class SimpleRSSElement extends SimpleXMLElement
* @param string $name — The name of the child element to add.
* @param string $value — [optional] If specified, the value of the child element.
* @param string $namespace [optional] If specified, the namespace to which the child element belongs.
+ * @param boolean $escape [optional] The value is escaped by default, can be set to false.
*
* @return static The addChild method returns a SimpleXMLElement object representing the child added to the XML node.
*/
- public function addChild($name, $value = null, $namespace = null)
+ public function addChild($name, $value = null, $namespace = null, $escape = true)
{
$newChild = parent::addChild($name, '', $namespace);
if ($newChild !== null) {
$node = dom_import_simplexml($newChild);
- $no = $node->ownerDocument;
- $node->appendChild($no->createTextNode((string) esc($value)));
+ if ($node !== null) {
+ $no = $node->ownerDocument;
+ $value = $escape ? esc($value ?? '') : $value ?? '';
+ if ($no === null) {
+ return $newChild;
+ }
+ if (is_array($value)) {
+ return $newChild;
+ }
+ /** @noRector RecastingRemovalRector */
+ $node->appendChild($no->createTextNode((string) $value));
+ return $newChild;
+ }
}
return $newChild;
diff --git a/app/Resources/js/typings.d.ts b/app/Resources/js/typings.d.ts
index fe9d4f51..f850e707 100644
--- a/app/Resources/js/typings.d.ts
+++ b/app/Resources/js/typings.d.ts
@@ -1,3 +1 @@
-declare module "prosemirror-markdown";
-declare module "prosemirror-example-setup";
declare module "leaflet.markercluster";
diff --git a/app/Resources/types/js/admin.d.ts b/app/Resources/types/js/admin.d.ts
deleted file mode 100644
index 4efc2a2c..00000000
--- a/app/Resources/types/js/admin.d.ts
+++ /dev/null
@@ -1,3 +0,0 @@
-import "@github/markdown-toolbar-element";
-import "./modules/markdown-preview";
-import "./modules/markdown-write-preview";
diff --git a/app/Resources/types/js/charts.d.ts b/app/Resources/types/js/charts.d.ts
deleted file mode 100644
index c3fee8a1..00000000
--- a/app/Resources/types/js/charts.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-import "core-js";
diff --git a/app/Resources/types/js/install.d.ts b/app/Resources/types/js/install.d.ts
deleted file mode 100644
index cb0ff5c3..00000000
--- a/app/Resources/types/js/install.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export {};
diff --git a/app/Resources/types/js/map.d.ts b/app/Resources/types/js/map.d.ts
deleted file mode 100644
index c3fee8a1..00000000
--- a/app/Resources/types/js/map.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-import "core-js";
diff --git a/app/Resources/types/js/modules/Charts.d.ts b/app/Resources/types/js/modules/Charts.d.ts
deleted file mode 100644
index 2e5108cf..00000000
--- a/app/Resources/types/js/modules/Charts.d.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-declare const DrawCharts: () => void;
-export default DrawCharts;
diff --git a/app/Resources/types/js/modules/ClientTimezone.d.ts b/app/Resources/types/js/modules/ClientTimezone.d.ts
deleted file mode 100644
index 34444632..00000000
--- a/app/Resources/types/js/modules/ClientTimezone.d.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-declare const ClientTimezone: () => void;
-export default ClientTimezone;
diff --git a/app/Resources/types/js/modules/Clipboard.d.ts b/app/Resources/types/js/modules/Clipboard.d.ts
deleted file mode 100644
index 9500a96e..00000000
--- a/app/Resources/types/js/modules/Clipboard.d.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-declare const Clipboard: () => void;
-export default Clipboard;
diff --git a/app/Resources/types/js/modules/DateTimePicker.d.ts b/app/Resources/types/js/modules/DateTimePicker.d.ts
deleted file mode 100644
index 9612d403..00000000
--- a/app/Resources/types/js/modules/DateTimePicker.d.ts
+++ /dev/null
@@ -1,3 +0,0 @@
-import "flatpickr/dist/flatpickr.min.css";
-declare const DateTimePicker: () => void;
-export default DateTimePicker;
diff --git a/app/Resources/types/js/modules/Dropdown.d.ts b/app/Resources/types/js/modules/Dropdown.d.ts
deleted file mode 100644
index 5395e564..00000000
--- a/app/Resources/types/js/modules/Dropdown.d.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-declare const Dropdown: () => void;
-export default Dropdown;
diff --git a/app/Resources/types/js/modules/EpisodesMap.d.ts b/app/Resources/types/js/modules/EpisodesMap.d.ts
deleted file mode 100644
index 67f900a5..00000000
--- a/app/Resources/types/js/modules/EpisodesMap.d.ts
+++ /dev/null
@@ -1,5 +0,0 @@
-import "leaflet.markercluster/dist/MarkerCluster.css";
-import "leaflet.markercluster/dist/MarkerCluster.Default.css";
-import "leaflet/dist/leaflet.css";
-declare const DrawEpisodesMaps: () => void;
-export default DrawEpisodesMaps;
diff --git a/app/Resources/types/js/modules/Map.d.ts b/app/Resources/types/js/modules/Map.d.ts
deleted file mode 100644
index 4fe78599..00000000
--- a/app/Resources/types/js/modules/Map.d.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-declare const DrawMaps: () => void;
-export default DrawMaps;
diff --git a/app/Resources/types/js/modules/Modal.d.ts b/app/Resources/types/js/modules/Modal.d.ts
deleted file mode 100644
index 99d06ce4..00000000
--- a/app/Resources/types/js/modules/Modal.d.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-declare const Modal: () => void;
-export default Modal;
diff --git a/app/Resources/types/js/modules/MultiSelect.d.ts b/app/Resources/types/js/modules/MultiSelect.d.ts
deleted file mode 100644
index 0f708a24..00000000
--- a/app/Resources/types/js/modules/MultiSelect.d.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-declare const MultiSelect: () => void;
-export default MultiSelect;
diff --git a/app/Resources/types/js/modules/PublishMessageWarning.d.ts b/app/Resources/types/js/modules/PublishMessageWarning.d.ts
deleted file mode 100644
index c9a7b80f..00000000
--- a/app/Resources/types/js/modules/PublishMessageWarning.d.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-declare const PublishMessageWarning: () => void;
-export default PublishMessageWarning;
diff --git a/app/Resources/types/js/modules/Select.d.ts b/app/Resources/types/js/modules/Select.d.ts
deleted file mode 100644
index a1bd61c8..00000000
--- a/app/Resources/types/js/modules/Select.d.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-declare const Select: () => void;
-export default Select;
diff --git a/app/Resources/types/js/modules/SidebarToggler.d.ts b/app/Resources/types/js/modules/SidebarToggler.d.ts
deleted file mode 100644
index 53739967..00000000
--- a/app/Resources/types/js/modules/SidebarToggler.d.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-declare const SidebarToggler: () => void;
-export default SidebarToggler;
diff --git a/app/Resources/types/js/modules/Slugify.d.ts b/app/Resources/types/js/modules/Slugify.d.ts
deleted file mode 100644
index 532945fd..00000000
--- a/app/Resources/types/js/modules/Slugify.d.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-declare const Slugify: () => void;
-export default Slugify;
diff --git a/app/Resources/types/js/modules/Soundbites.d.ts b/app/Resources/types/js/modules/Soundbites.d.ts
deleted file mode 100644
index b35a4256..00000000
--- a/app/Resources/types/js/modules/Soundbites.d.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-declare const Soundbites: () => void;
-export default Soundbites;
diff --git a/app/Resources/types/js/modules/ThemePicker.d.ts b/app/Resources/types/js/modules/ThemePicker.d.ts
deleted file mode 100644
index 385f044b..00000000
--- a/app/Resources/types/js/modules/ThemePicker.d.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-declare const ThemePicker: () => void;
-export default ThemePicker;
diff --git a/app/Resources/types/js/modules/Time.d.ts b/app/Resources/types/js/modules/Time.d.ts
deleted file mode 100644
index e04a63d4..00000000
--- a/app/Resources/types/js/modules/Time.d.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-declare const Time: () => void;
-export default Time;
diff --git a/app/Resources/types/js/modules/Toggler.d.ts b/app/Resources/types/js/modules/Toggler.d.ts
deleted file mode 100644
index 3157ee54..00000000
--- a/app/Resources/types/js/modules/Toggler.d.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-declare const Toggler: () => void;
-export default Toggler;
diff --git a/app/Resources/types/js/modules/Tooltip.d.ts b/app/Resources/types/js/modules/Tooltip.d.ts
deleted file mode 100644
index d733d7a3..00000000
--- a/app/Resources/types/js/modules/Tooltip.d.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-declare const Tooltip: () => void;
-export default Tooltip;
diff --git a/app/Resources/types/js/modules/markdown-preview.d.ts b/app/Resources/types/js/modules/markdown-preview.d.ts
deleted file mode 100644
index 2132ecef..00000000
--- a/app/Resources/types/js/modules/markdown-preview.d.ts
+++ /dev/null
@@ -1,13 +0,0 @@
-import MarkdownToolbarElement from "@github/markdown-toolbar-element";
-import { LitElement, TemplateResult } from "lit";
-export declare class MarkdownPreview extends LitElement {
- for: string;
- _textarea: HTMLTextAreaElement;
- _markdownToolbar: MarkdownToolbarElement;
- _show: boolean;
- connectedCallback(): void;
- hide(): void;
- show(): void;
- markdownToHtml(): string;
- render(): TemplateResult<1>;
-}
diff --git a/app/Resources/types/js/modules/markdown-write-preview.d.ts b/app/Resources/types/js/modules/markdown-write-preview.d.ts
deleted file mode 100644
index 1f646a9b..00000000
--- a/app/Resources/types/js/modules/markdown-write-preview.d.ts
+++ /dev/null
@@ -1,13 +0,0 @@
-import { LitElement, TemplateResult } from "lit";
-import { MarkdownPreview } from "./markdown-preview";
-export declare class MarkdownWritePreview extends LitElement {
- for: string;
- _textarea: HTMLTextAreaElement | null;
- _markdownPreview: MarkdownPreview;
- _write: NodeListOf;
- _preview: NodeListOf;
- connectedCallback(): void;
- write(): void;
- preview(): void;
- render(): TemplateResult<1>;
-}
diff --git a/app/Resources/types/js/podcast.d.ts b/app/Resources/types/js/podcast.d.ts
deleted file mode 100644
index cb0ff5c3..00000000
--- a/app/Resources/types/js/podcast.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export {};
diff --git a/tsconfig.json b/tsconfig.json
index 5f495c6b..b56093e0 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -2,15 +2,8 @@
"compilerOptions": {
/* Basic Options */
"module": "esnext" /* Specify module code generation: 'none', 'commonjs', 'amd', 'system', 'umd', 'es2015', 'es2020', or 'ESNext'. */,
- "lib": [
- "DOM",
- "DOM.Iterable",
- "ESNext"
- ] /* Specify library files to be included in the compilation. */,
- "declaration": true,
- "emitDeclarationOnly": true,
- "outDir": "app/Resources/types",
- "rootDir": "app/Resources",
+ "lib": ["DOM", "DOM.Iterable", "ESNext"],
+ "noEmit": true,
/* Strict Type-Checking Options */
"strict": true /* Enable all strict type-checking options. */,