diff --git a/packages/docusaurus-theme-common/src/utils/codeBlockUtils.ts b/packages/docusaurus-theme-common/src/utils/codeBlockUtils.ts index 1b3badeb04aa..0ff41b64ba78 100644 --- a/packages/docusaurus-theme-common/src/utils/codeBlockUtils.ts +++ b/packages/docusaurus-theme-common/src/utils/codeBlockUtils.ts @@ -21,6 +21,7 @@ const commentPatterns = { html: {start: ''}, lua: {start: '--', end: ''}, wasm: {start: '\\;\\;', end: ''}, + tex: {start: '%', end: ''}, }; type CommentType = keyof typeof commentPatterns; @@ -85,6 +86,11 @@ function getAllMagicCommentDirectiveStyles( // Text uses HTML, front matter uses bash return getCommentPattern(['html', 'jsx', 'bash'], magicCommentDirectives); + case 'tex': + case 'latex': + case 'matlab': + return getCommentPattern(['tex'], magicCommentDirectives); + case 'lua': case 'haskell': case 'sql': @@ -94,10 +100,11 @@ function getAllMagicCommentDirectiveStyles( return getCommentPattern(['wasm'], magicCommentDirectives); default: - // All comment types except lua and wasm + // All comment types except lua, wasm and matlab return getCommentPattern( Object.keys(commentPatterns).filter( - (pattern) => !['lua', 'wasm'].includes(pattern), + (pattern) => + !['lua', 'wasm', 'tex', 'latex', 'matlab'].includes(pattern), ) as CommentType[], magicCommentDirectives, ); diff --git a/website/_dogfooding/_pages tests/code-block-tests.mdx b/website/_dogfooding/_pages tests/code-block-tests.mdx index 8248d0dace65..22c9697465fa 100644 --- a/website/_dogfooding/_pages tests/code-block-tests.mdx +++ b/website/_dogfooding/_pages tests/code-block-tests.mdx @@ -322,3 +322,29 @@ WHERE customer_id IN ( WHERE country = 'USA' ) ``` + +```matlab title="matlab.m" +% highlight-start +function result = times2(n) + result = n * 2; +end +% highlight-end + +x = 10; +% highlight-next-line +y = times2(x); +``` + +```latex title="latex.tex" +\begin{document} + \section{Triangles} + % highlight-next-line + \subsection{Pythagoras' Theorem} + Pythagoras's theorem is: + % highlight-start + \begin{equation} + c^2 = a^2 + b^2 + \end{equation} + % highlight-end +\end{document} +```