+ /**
+ * Fetch the original source or content with the "language" Markdown or HTML
+ *
+ * @param array $object
+ * @param array $object_data
+ *
+ * @return array
+ * @throws \Exception
+ */
+ private static function getSource($object, $object_data)
+ {
+ $object_data['source'] = JsonLD::fetchElement($object, 'as:source', 'as:content', 'as:mediaType', 'text/bbcode');
+ $object_data['source'] = JsonLD::fetchElement($object_data, 'source', '@value');
+ if (!empty($object_data['source'])) {
+ return $object_data;
+ }
+
+ $object_data['source'] = JsonLD::fetchElement($object, 'as:source', 'as:content', 'as:mediaType', 'text/markdown');
+ $object_data['source'] = JsonLD::fetchElement($object_data, 'source', '@value');
+ if (!empty($object_data['source'])) {
+ $object_data['source'] = Markdown::toBBCode($object_data['source']);
+ return $object_data;
+ }
+
+ $object_data['source'] = JsonLD::fetchElement($object, 'as:source', 'as:content', 'as:mediaType', 'text/html');
+ $object_data['source'] = JsonLD::fetchElement($object_data, 'source', '@value');
+ if (!empty($object_data['source'])) {
+ $object_data['source'] = HTML::toBBCode($object_data['source']);
+ return $object_data;
+ }
+
+ $markdown = JsonLD::fetchElement($object, 'as:content', '@value', '@language', 'text/markdown');
+ if (!empty($markdown)) {
+ $object_data['source'] = Markdown::toBBCode($markdown);
+ return $object_data;
+ }
+
+ $html = JsonLD::fetchElement($object, 'as:content', '@value', '@language', 'text/html');
+ if (!empty($html)) {
+ $object_data['source'] = HTML::toBBCode($markdown);
+ return $object_data;
+ }
+
+ return $object_data;
+ }
+