diff --git a/packages/viewer/cypress/e2e/typesetting.spec.ts b/packages/viewer/cypress/e2e/typesetting.spec.ts
new file mode 100644
index 00000000..4ea0869e
--- /dev/null
+++ b/packages/viewer/cypress/e2e/typesetting.spec.ts
@@ -0,0 +1,17 @@
+import { deduce, setup } from '../support'
+
+beforeEach(setup)
+
+it('renders internal links', () => {
+ cy.visit('dev/preview')
+ deduce()
+
+ cy.get('[data-testid=input]').type(
+ // {{} is Cypress escaping for {. See https://docs.cypress.io/api/commands/type#Arguments
+ `{{}S000001} is {{}P000001} as noted in {{}S000001|P000001}`,
+ )
+
+ cy.get('[data-testid=output]').contains(
+ 'Discrete topology on a two-point set is $T_0$ as noted in Discrete topology on a two-point set | $T_0$',
+ )
+})
diff --git a/packages/viewer/src/components/Dev/Example.svelte b/packages/viewer/src/components/Dev/Example.svelte
index 8876b6de..66877aca 100644
--- a/packages/viewer/src/components/Dev/Example.svelte
+++ b/packages/viewer/src/components/Dev/Example.svelte
@@ -8,6 +8,7 @@ This is a list of links
* {S000123}
* {P000123}
* {T000123}
+* {S000123|P000123}
* {{doi:123}}
* {{mr:123}}
* {{wikipedia:123}}
@@ -37,6 +38,9 @@ This is a list of links
- e.g.
{'{S000001}'}
for space 1
+
+ {'{S000001|P000002}'}
+ for space 1's value of property 2