-
#5397
82b0039
Thanks @kldavis4! - Rich text editor | hyperlinks - fixed sanitizeUrl to allow querystring parameters -
Updated dependencies [
92b683b
]:- @tinacms/[email protected]
- Updated dependencies [
c45ac5d
]:- @tinacms/[email protected]
-
#5276
f90ef4d
Thanks @Ben0189! - Updates minor and patch dependencies -
Updated dependencies [
f90ef4d
,ac2003f
,03bb823
]:- @tinacms/[email protected]
- Updated dependencies [
0daf0b6
]:- @tinacms/[email protected]
- #4825
ecea7ac
Thanks @JackDevAU! - ✨ Add Mermaid Support to Rich Text Field (Plate) 🐛 Fix tooltip rendering behind TinaCMS app - Updated dependencies [
ecea7ac
]:- @tinacms/[email protected]
- Updated dependencies [
31513bb
]:- @tinacms/[email protected]
-
#4843
4753c9b
Thanks @JackDevAU! - ⬆️ Update Minor & Patch Dependencies Versions -
Updated dependencies [
4753c9b
]:- @tinacms/[email protected]
-
#4804
d08053e
Thanks @dependabot! - ⬆️ Updates Typescript to v5.5, @types/node to v22.x, next.js to latest version 14.x, and removes node-fetch -
Updated dependencies [
6cd3596
,d08053e
]:- @tinacms/[email protected]
- Updated dependencies [6ccda6c]
- Updated dependencies [33eaa81]
- @tinacms/[email protected]
- Updated dependencies [ae03e8e]
- @tinacms/[email protected]
-
324950a: Updates Plate Editor to latest version 36.
- Upgrades all remaining packages
Typescript
to version^5
- Adds Shadcn/ui styles/colours to our
tinatailwind
config (packages/@tinacms/cli/src/next/vite/tailwind.ts
) - Replaces some
lodash
deps with either the specific function i.e.lodash.set
or implements them in a utility file - Updates and removes old version of plate (
plate-headless
) for latest version^36
- Starts removing and cleaning up some of the old Plate code.
- Upgrades all remaining packages
- Updated dependencies [324950a]
- @tinacms/[email protected]
- Updated dependencies [cb83dc2]
- @tinacms/[email protected]
- f567fc8: More React 18 upgrades and fixes
- e58b951: update vulnerable packages so npm audit does not complain
- 9076d09: update next js version from 12 to 14 in tinacms packages
- Updated dependencies [f567fc8]
- Updated dependencies [e58b951]
- Updated dependencies [957fa26]
- Updated dependencies [9076d09]
- @tinacms/[email protected]
- Updated dependencies [f26b40d]
- @tinacms/[email protected]
- 0503072: update ts, remove rimraf, fix types
- Updated dependencies [0503072]
- Updated dependencies [dffa355]
- @tinacms/[email protected]
- Updated dependencies [2e3393ef5]
- @tinacms/[email protected]
- b3ad50a62: Fix issue where rich-text nested inside JSX objects wasn't being parsed/stringified properly.
- Updated dependencies [64f8fa038]
- @tinacms/[email protected]
-
a65ca13f2: ## TinaCMS Self hosted Updates
- Deprecated:
onPut
,onDelete
, andlevel
arguments increateDatabase
. - Added:
databaseAdapter
to replacelevel
. - Added:
gitProvider
to substituteonPut
andonDelete
. - New Package:
tinacms-gitprovider-github
, exporting theGitHubProvider
class. - Interface Addition:
gitProvider
added to@tinacms/graphql
. - Addition: Generated database client.
import { createDatabase, createLocalDatabase } from '@tinacms/datalayer' import { MongodbLevel } from 'mongodb-level' import { GitHubProvider } from 'tinacms-gitprovider-github' const isLocal = process.env.TINA_PUBLIC_IS_LOCAL === 'true' export default isLocal ? createLocalDatabase() : createDatabase({ gitProvider: new GitHubProvider({ branch: process.env.GITHUB_BRANCH, owner: process.env.GITHUB_OWNER, repo: process.env.GITHUB_REPO, token: process.env.GITHUB_PERSONAL_ACCESS_TOKEN, }), databaseAdapter: new MongodbLevel<string, Record<string, any>>({ collectionName: 'tinacms', dbName: 'tinacms', mongoUri: process.env.MONGODB_URI, }), namespace: process.env.GITHUB_BRANCH, })
- GitHubProvider Usage: Replace
onPut
andonDelete
withgitProvider
, using the providedGitHubProvider
for GitHub.
const gitProvider = new GitHubProvider({ branch: process.env.GITHUB_BRANCH, owner: process.env.GITHUB_OWNER, repo: process.env.GITHUB_REPO, token: process.env.GITHUB_PERSONAL_ACCESS_TOKEN, })
- Custom Git Provider: Implement the
GitProvider
interface for different git providers.
If you are not using Github as your git provider, you can implement the
GitProvider
interface to use your own git provider.class CustomGitProvider implements GitProvider async onPut(key: string, value: string) // ... async onDelete(key: string) // ... const gitProvider = new CustomGitProvider();
- Renaming in Code: Change
level
todatabaseAdapter
for clarity.
createDatabase({ - level: new MongodbLevel<string, Record<string, any>>(...), + databaseAdapter: new MongodbLevel<string, Record<string, any>>(...), })
- Usage: Implement a local database with the
createLocalDatabase
function.
import { createLocalDatabase } from '@tinacms/datalayer' createLocalDatabase(port)
- Updated
database.{ts,js}
File:
import { createDatabase, createLocalDatabase, GitHubProvider } from '@tinacms/datalayer'; import { MongodbLevel } from 'mongodb-level'; const isLocal = process.env.TINA_PUBLIC_IS_LOCAL === 'true'; export default isLocal ? createLocalDatabase() : createDatabase({ gitProvider: new GitHubProvider(...), databaseAdapter: new MongodbLevel<string, Record<string, any>>(...), });
- New:
authProvider
indefineConfig
. - Class:
AbstractAuthProvider
for extending new auth providers. - Clerk Auth Provider: New provider added.
- Renaming:
admin.auth
toadmin.authHooks
. - Deprecation:
admin.auth
.
- Transition: From auth functions to
authProvider
class.
- Previous API:
defineConfig({ admin: { auth: { login() {}, logout() {}, //... }, }, //... })
- New API:
import { AbstractAuthProvider } from 'tinacms' class CustomAuthProvider extends AbstractAuthProvider { login() {} logout() {} //... } defineConfig({ authProvider: new CustomAuthProvider(), //... })
-
New: TinaNodeBackend is exported from
@tinacms/datalayer
. This is used to host the TinaCMS backend in a single function. -
New:
LocalBackendAuthProvider
is exported from@tinacms/datalayer
. This is used to host the TinaCMS backend locally. -
New:
AuthJsBackendAuthProvider
is exported fromtinacms-authjs
. This is used to host the TinaCMS backend with AuthJS.
Now, instead of hosting the in /tina/api/gql.ts file, the entire TinaCMS backend (including auth) will be hosted in a single backend function.
/api/tina/[...routes].{ts,js}
import { TinaNodeBackend, LocalBackendAuthProvider } from '@tinacms/datalayer' import { TinaAuthJSOptions, AuthJsBackendAuthProvider } from 'tinacms-authjs' import databaseClient from '../../../tina/__generated__/databaseClient' const isLocal = process.env.TINA_PUBLIC_IS_LOCAL === 'true' const handler = TinaNodeBackend({ authProvider: isLocal ? LocalBackendAuthProvider() : AuthJsBackendAuthProvider({ authOptions: TinaAuthJSOptions({ databaseClient: databaseClient, secret: process.env.NEXTAUTH_SECRET, }), }), databaseClient, }) export default (req, res) => { // Modify the request here if you need to return handler(req, res) }
These changes are put in place to make self hosted TinaCMS easier to use and more flexible.
Please check out the docs for more information on self hosted TinaCMS.
- Deprecated:
-
Updated dependencies [a65ca13f2]
- @tinacms/[email protected]
- 693cf5bd6: Improve types for tables, add support for column alignment
-
b6fbab887: Add support for basic markdown tables.
// tina/config.ts import `tinaTableTemplate` from `tinacms` // add it to the rich-text template { type: 'rich-text', label: 'Body', name: '_body', templates: [ tinaTableTemplate ///
Customize the
th
andtd
fields in the<TinaMarkdown>
component:<TinaMarkdown content={props.body} components={{ th: (props) => <th className="bg-gray-100 font-bold" {...props} />, td: (props) => <td className="bg-gray-100" {...props} />, }} />
To control the rendering for `
-
Updated dependencies [6861b5e01]
-
Updated dependencies [aec44a7dc]
- @tinacms/[email protected]
-
5040fc7cb: Add xref support to markdown links
Click [here](xref:some-link 'Tester') to join now
- Updated dependencies [7e4de0b2a]
- Updated dependencies [099bf5646]
- Updated dependencies [c92de7b1d]
- @tinacms/[email protected]
- 0e94b2725: Fix issue where empty nested rich-text fields would throw an error if they'd been marked as dirty during editing
- Updated dependencies [1563ce5b2]
- @tinacms/[email protected]
- 8aae69436: Ensure urls are sanitized in a tags for rich-text
- a78c81f14: Fix issue where non-object lists weren't handled properly for rich-text embeds
- Updated dependencies [133e97d5b]
- Updated dependencies [f02b4368b]
- Updated dependencies [7991e097e]
- @tinacms/[email protected]
- bc812441b: Use .mjs extension for ES modules
- Updated dependencies [bc812441b]
- @tinacms/[email protected]
- Updated dependencies [019920a35]
- @tinacms/[email protected]
- Updated dependencies [fe13b4ed9]
- @tinacms/[email protected]
- Updated dependencies [a94e123b6]
- @tinacms/[email protected]
- Updated dependencies [c385b5615]
- @tinacms/[email protected]
- Updated dependencies [beb179279]
- @tinacms/[email protected]
- Updated dependencies [f14f59a96]
- Updated dependencies [eeedcfd30]
- @tinacms/[email protected]
- 75d5ed359: Add html tag back into rich-text response
- Updated dependencies [a70204500]
- @tinacms/[email protected]
- 5fcef561d: - Pin vite version
- Adds react plugin so that we no longer get a 404 on react /@react-refresh
- Adds transform ts and tsx files in build as well as dev
- Updated dependencies [9a8074889]
- Updated dependencies [c48326846]
- @tinacms/[email protected]
-
9e86312d6: Skip html tokenization when skipEscaping is enabled.
-
5d1e0e406: Support mdx block elements when children are on the same line. Eg.
<Cta>Hello, world</Cta>
-
cbc1fb919: Provide browser-specific version of @tinacms/mdx
-
Updated dependencies [76c984bcc]
-
Updated dependencies [5809796cf]
-
Updated dependencies [54aac9017]
- @tinacms/[email protected]
-
973e83f1f: Some fixes around image handling in the rich-text editor
- Stop treating images as block-level
- Fix issue where images inside links were being stripped out
- Fix display of .avif images in the media manager
-
Updated dependencies [d1cf65999]
- @tinacms/[email protected]
- 290520682: Update handling of top-level images during stringify
- @tinacms/[email protected]
-
3e97d978c: Add support for experimental markdown parser. To enable:
{ name: "body", type: "rich-text", parser: { type: "markdown" } }
For users who want to control the escape behavior, you can specify
{ name: "body", type: "rich-text", parser: { type: "markdown" skipEscaping: "all" // options are "all" | "html" } }
This is helpful for sites rendered by other systems such as Hugo, where escape characters may interfere with shortcodes that aren't registered with Tina.
-
f831dcf4f: security: update some deps
-
Updated dependencies [0a5297800]
-
Updated dependencies [7a3e86ba1]
-
Updated dependencies [353899de1]
-
Updated dependencies [01b858e41]
- @tinacms/[email protected]
- aa0250979: Fix issue where shortcode closing tags were backwards
- Updated dependencies [892b4e39e]
- Updated dependencies [c97ffc20d]
- @tinacms/[email protected]
- 169147490: When markdown files fail to parse, fallback to the non-MDX parser
- Updated dependencies [e732906b6]
- @tinacms/[email protected]
- efd56e769: Replace Store with AbstractLevel in Database. Update CLI to allow user to configure Database.
- efd56e769: Remove license headers
- Updated dependencies [efd56e769]
- Updated dependencies [efd56e769]
- @tinacms/[email protected]
- Updated dependencies [84fe97ca7]
- Updated dependencies [e7c404bcf]
- @tinacms/[email protected]
- 3165f397d: fix: Shortcodes need to be specified by name to match with match-start / match-end
- a68f1ac27: fix: Shortcodes need to be specified by name to match with match-start / match-end
- 7ff63fdd9: Modify shortcode behavior to treat _value as a special field name which shows up as an unkeyed string in the shortcode output
- Updated dependencies [7d41435df]
- Updated dependencies [3165f397d]
- Updated dependencies [b2952a298]
- @tinacms/[email protected]
- Updated dependencies [7554ea362]
- Updated dependencies [4ebc44068]
- @tinacms/[email protected]
- Updated dependencies [7495f032b]
- Updated dependencies [de37c9eff]
- @tinacms/[email protected]
- Updated dependencies [c91bc0fc9]
- Updated dependencies [c1ac4bf10]
- @tinacms/[email protected]
- Updated dependencies [08e02ec21]
- @tinacms/[email protected]
-
958d10c82: Tina 1.0 Release
Make sure you have updated to th "iframe" path: https://tina.io/blog/upgrading-to-iframe/
- Updated dependencies [958d10c82]
- @tinacms/[email protected]
- 14c5cdffe: Fixes an issue where deeply nested rich-text wasn't being parsed properly
- Updated dependencies [a5d6722c7]
- @tinacms/[email protected]
-
4b174e14b: Treat images as block-level when they're isolated in a paragraph.
Previously all images were nested inside
<p>
elements when coming from the server, but treated as block level by the rich-text editor. This resulted in a scenario where new paragraphs adjacent to images were nested in parent<p>
tags, which caused an error. -
Updated dependencies [6c93834a2]
- @tinacms/[email protected]
- Updated dependencies [774abcf9c]
- Updated dependencies [245a65dfe]
- @tinacms/[email protected]
- 97f0b6472: Add raw editor support for static mode. Use
~
for preview path.
- Updated dependencies [c4f9607ce]
- @tinacms/[email protected]
- Updated dependencies [005e1d699]
- @tinacms/[email protected]
- Updated dependencies [b1a357f60]
- @tinacms/[email protected]
- Updated dependencies [c6e3bd321]
- @tinacms/[email protected]
- Updated dependencies [183249b11]
- Updated dependencies [8060d0949]
- @tinacms/[email protected]
- 112b7271d: fix vulnerabilities
- Updated dependencies [f581f263d]
- Updated dependencies [7ae1b0697]
- Updated dependencies [f3439ea35]
- Updated dependencies [48032e2ba]
- @tinacms/[email protected]
- Updated dependencies [9183157c4]
- Updated dependencies [4adf12619]
- Updated dependencies [f8b89379c]
- @tinacms/[email protected]
- Updated dependencies [777b1e08a]
- @tinacms/[email protected]
- Updated dependencies [59ff1bb10]
- Updated dependencies [232ae6d52]
- Updated dependencies [fd4d8c8ff]
- Updated dependencies [9e5da3103]
- @tinacms/[email protected]
- 2b60a7bd8: Improve audit so that it doesn't throw errors during the file list process. Also adds support for
--verbose
argument duringaudit
.
- 7506a46b9: Fix issue where marks within links would throw an error
- 5fbdd05be: Fix stringification of code element nested in link
- c6726c65b: Fix regression in handling images in rich-text
- 3d36a0e42: Add null check in markdownToAst to fix error during new doc creation
-
7b0dda55e: Updates to the
rich-text
component as well the shape of therich-text
field response from the API- Adds support for isTitle on MDX elements
- Fixes issues related to nested marks
- Uses monaco editor for code blocks
- Improves styling of nested list items
- Improves handling of rich-text during reset
- No longer errors on unrecognized JSX/html, instead falls back to print
No component provided for <compnonent name>
- No longer errors on markdown parsing errors, instead falls back to rendering markdown as a string, customizable via the TinaMarkdown component (invalid_markdown prop)
- Prepares rich-text component for raw mode - where you can edit the raw markdown directly in the Tina form. This will be available in future release.
- Updated dependencies [7b0dda55e]
- Updated dependencies [8183b638c]
- @tinacms/[email protected]