diff --git a/resources/js/components/fieldtypes/bard/BardFieldtype.vue b/resources/js/components/fieldtypes/bard/BardFieldtype.vue index 2e7c1b96dc..88afacea28 100644 --- a/resources/js/components/fieldtypes/bard/BardFieldtype.vue +++ b/resources/js/components/fieldtypes/bard/BardFieldtype.vue @@ -277,6 +277,8 @@ export default { htmlWithReplacedLinks() { return this.html.replaceAll(/\"statamic:\/\/(.*?)\"/g, (match, ref) => { + // Get everything in the "ref" string before a ? or #. + ref = ref.split(/[?#]/)[0] const linkData = this.meta.linkData[ref]; if (! linkData) { this.$toast.error(`${__('No link data found for')} ${ref}`); diff --git a/resources/js/components/fieldtypes/bard/LinkToolbar.vue b/resources/js/components/fieldtypes/bard/LinkToolbar.vue index cc037df2de..af8175a750 100644 --- a/resources/js/components/fieldtypes/bard/LinkToolbar.vue +++ b/resources/js/components/fieldtypes/bard/LinkToolbar.vue @@ -89,6 +89,20 @@ + +
+ +
+
after('statamic://'); [$type, $id] = explode('::', $ref, 2); $data = null; switch ($type) { case 'entry': - if ($entry = Entry::find($id)) { + $ref = $ref->before('?')->before('#'); + if ($entry = Entry::find($ref->after('entry::'))) { $data = [ 'title' => $entry->get('title'), 'permalink' => $entry->absoluteUrl(), @@ -730,7 +733,7 @@ private function getLinkDataForUrl($url) break; } - return [$ref => $data]; + return [$ref->toString() => $data]; } private function wrapInlineValue($value)