feat: enable MathJax for Project Euler challenges (#38017)
* feat: enable MathJax for Project Euler challenges Enables MathJax to render mathematical formulae for some Project Euler problems * refactor: DRY out script insertion Co-authored-by: Oliver Eyton-Williams <ojeytonwilliams@gmail.com>
This commit is contained in:
		
				
					committed by
					
						
						Ahmad Abdolsaheb
					
				
			
			
				
	
			
			
			
						parent
						
							6809578044
						
					
				
				
					commit
					849e78d72e
				
			@@ -64,7 +64,10 @@ export const onRenderBody = ({
 | 
			
		||||
    />
 | 
			
		||||
  ];
 | 
			
		||||
 | 
			
		||||
  if (pathname.includes('/learn/coding-interview-prep/rosetta-code')) {
 | 
			
		||||
  if (
 | 
			
		||||
    pathname.includes('/learn/coding-interview-prep/rosetta-code') ||
 | 
			
		||||
    pathname.includes('/learn/coding-interview-prep/project-euler')
 | 
			
		||||
  ) {
 | 
			
		||||
    scripts.push(
 | 
			
		||||
      <script
 | 
			
		||||
        async={false}
 | 
			
		||||
 
 | 
			
		||||
@@ -37,7 +37,9 @@ export class SidePanel extends Component {
 | 
			
		||||
  componentDidMount() {
 | 
			
		||||
    const MathJax = global.MathJax;
 | 
			
		||||
    const mathJaxMountPoint = document.querySelector('#mathjax');
 | 
			
		||||
    const rosettaCodeChallenge = this.props.section === 'rosetta-code';
 | 
			
		||||
    const mathJaxChallenge =
 | 
			
		||||
      this.props.section === 'rosetta-code' ||
 | 
			
		||||
      this.props.section === 'project-euler';
 | 
			
		||||
    if (MathJax) {
 | 
			
		||||
      // Configure MathJax when it's loaded and
 | 
			
		||||
      // users navigate from another challenge
 | 
			
		||||
@@ -45,15 +47,16 @@ export class SidePanel extends Component {
 | 
			
		||||
        tex2jax: {
 | 
			
		||||
          inlineMath: [['$', '$'], ['\\(', '\\)']],
 | 
			
		||||
          processEscapes: true,
 | 
			
		||||
          processClass: 'rosetta-code'
 | 
			
		||||
          processClass: 'rosetta-code|project-euler'
 | 
			
		||||
        }
 | 
			
		||||
      });
 | 
			
		||||
      MathJax.Hub.Queue([
 | 
			
		||||
        'Typeset',
 | 
			
		||||
        MathJax.Hub,
 | 
			
		||||
        document.querySelector('.rosetta-code')
 | 
			
		||||
        document.querySelector('.rosetta-code'),
 | 
			
		||||
        document.querySelector('.project-euler')
 | 
			
		||||
      ]);
 | 
			
		||||
    } else if (!mathJaxMountPoint && rosettaCodeChallenge) {
 | 
			
		||||
    } else if (!mathJaxMountPoint && mathJaxChallenge) {
 | 
			
		||||
      mathJaxScriptLoader();
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 
 | 
			
		||||
@@ -39,12 +39,13 @@ export const mathJaxScriptLoader = () =>
 | 
			
		||||
      tex2jax: {
 | 
			
		||||
        inlineMath: [['$', '$'], ['\\\\(', '\\\\)']],
 | 
			
		||||
        processEscapes: true,
 | 
			
		||||
        processClass: 'rosetta-code'
 | 
			
		||||
        processClass: 'rosetta-code|project-euler'
 | 
			
		||||
      }
 | 
			
		||||
    });
 | 
			
		||||
    MathJax.Hub.Queue([
 | 
			
		||||
      'Typeset',
 | 
			
		||||
      MathJax.Hub,
 | 
			
		||||
      document.querySelector('.rosetta-code')
 | 
			
		||||
      document.querySelector('.rosetta-code'),
 | 
			
		||||
      document.querySelector('.project-euler')
 | 
			
		||||
    ]);`
 | 
			
		||||
  );
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user