diff --git a/.changeset/green-rice-exist.md b/.changeset/green-rice-exist.md
new file mode 100644
index 0000000..c6b5589
--- /dev/null
+++ b/.changeset/green-rice-exist.md
@@ -0,0 +1,5 @@
+---
+"react-github-permalink": patch
+---
+
+Make JSX and TSX be detected specifically as JSX and TSX languages.
diff --git a/src/library/GithubPermalink/GithubPermalink.stories.tsx b/src/library/GithubPermalink/GithubPermalink.stories.tsx
index f2820aa..543bdb7 100644
--- a/src/library/GithubPermalink/GithubPermalink.stories.tsx
+++ b/src/library/GithubPermalink/GithubPermalink.stories.tsx
@@ -37,6 +37,10 @@ export const DifferentLanguages: Story = {
TSX
+ TSX2
+
+
+
Docker file
diff --git a/src/library/SyntaxHighlight/SyntaxHighlight.tsx b/src/library/SyntaxHighlight/SyntaxHighlight.tsx
index 5a1a8de..f460e9b 100644
--- a/src/library/SyntaxHighlight/SyntaxHighlight.tsx
+++ b/src/library/SyntaxHighlight/SyntaxHighlight.tsx
@@ -144,6 +144,6 @@ export function SyntaxHighlight(props: {
}, [])
- return {text}
+ return <>{text}>
}
diff --git a/src/library/utils/getLanguageFromPath.test.ts b/src/library/utils/getLanguageFromPath.test.ts
index e7165c8..b2b3aed 100644
--- a/src/library/utils/getLanguageFromPath.test.ts
+++ b/src/library/utils/getLanguageFromPath.test.ts
@@ -2,8 +2,8 @@ import { describe, it, expect } from 'vitest';
import { getLanguageFromPath } from './getLanguageFromPath';
describe('getLanguageFromPath', () => {
- it('should return typescript for .tsx files', () => {
- expect(getLanguageFromPath('ReactRenders3.tsx')).toBe('typescript');
+ it('should return tsx for .tsx files', () => {
+ expect(getLanguageFromPath('ReactRenders3.tsx')).toBe('tsx');
});
it('should return typescript for .ts files', () => {
@@ -14,8 +14,8 @@ describe('getLanguageFromPath', () => {
expect(getLanguageFromPath('script.js')).toBe('javascript');
});
- it('should return javascript for .jsx files', () => {
- expect(getLanguageFromPath('component.jsx')).toBe('javascript');
+ it('should return jsx for .jsx files', () => {
+ expect(getLanguageFromPath('component.jsx')).toBe('jsx');
});
it('should return python for .py files', () => {
@@ -59,11 +59,11 @@ describe('getLanguageFromPath', () => {
});
it('should handle paths with multiple dots', () => {
- expect(getLanguageFromPath('src/components/MyComponent.tsx')).toBe('typescript');
+ expect(getLanguageFromPath('src/components/MyComponent.tsx')).toBe('tsx');
});
it('should handle case insensitive extensions', () => {
- expect(getLanguageFromPath('Component.TSX')).toBe('typescript');
+ expect(getLanguageFromPath('Component.TSX')).toBe('tsx');
expect(getLanguageFromPath('Script.JS')).toBe('javascript');
});
});
\ No newline at end of file
diff --git a/src/library/utils/getLanguageFromPath.ts b/src/library/utils/getLanguageFromPath.ts
index 4afca5f..b5f6451 100644
--- a/src/library/utils/getLanguageFromPath.ts
+++ b/src/library/utils/getLanguageFromPath.ts
@@ -8,13 +8,15 @@ export function getLanguageFromPath(filePath: string): AvailableLanguagesPrism {
switch (extension) {
case 'js':
- case 'jsx':
case 'mjs':
case 'cjs':
return 'javascript';
+ case 'jsx':
+ return 'jsx';
case 'ts':
- case 'tsx':
return 'typescript';
+ case 'tsx':
+ return 'tsx';
case 'py':
case 'python':
return 'python';