---
title: "Important: The rich text of a project resolves its links"
manual: "Academic Projects"
version: "main"
permalink: "https://docs.typo3.org/permalink/fgtclb/academic-projects:important-project-rich-text-uses-parse-func@main"
source: "Changelog/2.4/Important-ProjectRichTextUsesParseFunc.rst"
rendered: "2026-10-12T23:12:54+00:00"
---

# Important: The rich text of a project resolves its links {#important-project-rich-text-uses-parse-func}

## Description {#description}

The short description and the funders of a project are rich text fields, but
the project page type printed both, and the project list printed the short
description, with `<f:format.raw>`. The stored HTML reached the visitor
unprocessed: a link an editor set to a page, a file or a record in the rich
text editor stayed a literal `t3://` reference, and none of the site's rich
text processing was applied.

The page template `Resources/Private/Pages/AcademicProject.html` and the
list partial [`Resources/Private/Partials/Project/Item.html`](https://docs.typo3.org/m/typo3/reference-coreapi/main/en-us/ExtensionArchitecture/FileStructure/Resources/Private/Index.html#file-extension-resources-private-partials-somepartials-fluid-html) render the
three fields through `<f:format.html>` now, which is how TYPO3 renders
rich text everywhere else:

```html
<f:format.html>{project.shortDescription}</f:format.html>
```

That ViewHelper applies the site's `lib.parseFunc_RTE`.

## Impact {#impact}

-   Links to pages, files and records in the short description and the funders
    resolve to URLs on the project page and in the project list.
-   The fields follow the site's rich text configuration: the HTML sanitizer,
    the allowed tags and the paragraph wrapping of loose text apply. Markup
    written in the rich text editor already carries paragraphs and renders
    unchanged. Markup imported or written around the editor may differ
    slightly from the stored HTML.

## Affected Installations {#affected-installations}

All installations that render project pages or project lists with the
templates shipped by this extension.

**TYPO3 v13** defines `lib.parseFunc_RTE` for every site in the
default TypoScript of EXT:frontend. Nothing has to be added.

**TYPO3 v12** does not. There the site has to provide
`lib.parseFunc_RTE`, as EXT:fluid_styled_content,
EXT:bootstrap_package and common site packages do. A v12 site without it now
gets the core exception 1641989097 (*Invoked ContentObjectRenderer::parseFunc
without any configuration*) on project pages and lists. EXT:academic_jobs and
EXT:academic_persons already require the same for their detail views.

An installation that overrides
`Resources/Private/Pages/AcademicProject.html` or
[`Resources/Private/Partials/Project/Item.html`](https://docs.typo3.org/m/typo3/reference-coreapi/main/en-us/ExtensionArchitecture/FileStructure/Resources/Private/Index.html#file-extension-resources-private-partials-somepartials-fluid-html) is not affected. A copy
that was taken only to render these fields through `<f:format.html>` can
be dropped, as long as it carries no other change.

## Migration {#migration}

Only a TYPO3 v12 site without `lib.parseFunc_RTE` has to act. Check
it in **Site Management > TypoScript > Active TypoScript**, and include
the TypoScript of EXT:fluid_styled_content, or define
`lib.parseFunc_RTE` in the site package, before updating.
