Skip to content

Nextjs UI that converts inline LaTeX to MathJax syntax with $ and $$

Notifications You must be signed in to change notification settings

noluyorAbi/mathjaxconv

Repository files navigation

MATHJAXCONV

Transforming math expressions with style and ease.

license last-commit repo-top-language repo-language-count


Table of Contents


Overview

MathJaxConv simplifies converting LaTeX equations to readable text for web applications. Its user-friendly interface parses LaTeX syntax, enabling users to copy converted text easily. Ideal for developers working with mathematical content, it streamlines the process of integrating complex equations into web projects.


Features

Feature Summary
⚙️ Architecture
  • Utilizes Next.js for server-side rendering and routing.
  • Follows a component-based architecture using React for building UI elements.
  • Configured with TypeScript for static typing and improved code quality.
🔩 Code Quality
  • Includes ESLint for enforcing code quality standards and best practices.
  • Uses TypeScript to catch type errors during development.
  • Follows linting rules defined in the ESLint configuration.
📄 Documentation
  • Primary language for documentation is TypeScript.
  • Contains 2 TypeScript files, 2 JSON files, and 1 CSS file.
  • Package.json serves as the primary source for managing dependencies and scripts.
🔌 Integrations
  • Integrates PostCSS and TailwindCSS for styling the project.
  • Uses Next.js for server-side rendering and managing project-specific options.
  • Includes React for building interactive user interfaces.
🧩 Modularity
  • Utilizes module resolution for organizing project structure.
  • Path aliases are used for module resolution to enhance code readability.
  • Components are separated logically for better maintainability.
🧪 Testing
  • Testing is done using npm scripts.
  • Includes unit tests for components and functionality.
  • npm test command is used for running tests.
⚡️ Performance
  • Optimizes performance by utilizing Next.js for server-side rendering.
  • Follows best practices for code splitting and lazy loading of components.
  • Implements efficient data fetching strategies.
🛡️ Security
  • Ensures security best practices are followed in code implementation.
  • Regularly updates dependencies to mitigate security vulnerabilities.
  • Implements secure coding practices to prevent common security threats.
📦 Dependencies
  • Manages dependencies using npm specified in the package.json file.
  • Includes dependencies for Next.js, React, TypeScript, PostCSS, and TailwindCSS.
  • Uses @types packages for type definitions.

Project Structure

└── mathjaxconv/
    ├── README.md
    ├── app
    │   ├── favicon.ico
    │   ├── fonts
    │   ├── globals.css
    │   ├── layout.tsx
    │   └── page.tsx
    ├── bun.lockb
    ├── next.config.ts
    ├── package.json
    ├── postcss.config.mjs
    ├── public
    │   ├── file.svg
    │   ├── globe.svg
    │   ├── next.svg
    │   ├── vercel.svg
    │   └── window.svg
    ├── tailwind.config.ts
    └── tsconfig.json

Project Index

MATHJAXCONV/
__root__
tailwind.config.ts - Defines Tailwind CSS configuration for project theming and content, specifying file paths and color variables
- Extends theme with custom colors and imports necessary plugins.
next.config.ts Define the project's Next.js configuration settings in the provided file to manage project-specific options and behaviors.
tsconfig.json - Defines TypeScript compiler options and project structure for an ES2017 target
- Incorporates DOM and ESNext libraries, allowing JS files, with strict settings and no output
- Utilizes ES modules, bundler module resolution, and JSON module resolution
- Enables incremental compilation with Next.js plugin and path aliases for module resolution.
package.json - Enables building and running the project using Next.js, React, and TypeScript
- Manages dependencies, scripts for development, building, starting the application, and linting
- Integrates PostCSS and TailwindCSS for styling
- Configures ESLint for code quality.
postcss.config.mjs Defines PostCSS configuration with TailwindCSS plugin for the project's styling needs.
app
globals.css - Define global styling variables for the project's design system, including background and foreground colors
- Utilize Tailwind CSS for base, components, and utilities
- Adjust color scheme based on user preference for light or dark mode
- Apply consistent typography using Arial, Helvetica, and sans-serif fonts to maintain a cohesive visual identity across the application.
layout.tsx - Defines the layout and metadata for the Next.js app
- Imports fonts and global styles, sets metadata like title and description
- The RootLayout component wraps content in HTML body with specified fonts and classes for styling.
page.tsx - Implements a LaTeX environment replacer in a React component
- Parses input text, converts LaTeX syntax, and allows users to copy the modified text to the clipboard
- Displays a user-friendly interface for text processing and copying functionality based on client availability.

Getting Started

Prerequisites

Before getting started with mathjaxconv, ensure your runtime environment meets the following requirements:

  • Programming Language: TypeScript
  • Package Manager: Npm

Installation

Install mathjaxconv using one of the following methods:

Build from source:

  1. Clone the mathjaxconv repository:
❯ git clone https://github.com/noluyorAbi/mathjaxconv
  1. Navigate to the project directory:
cd mathjaxconv
  1. Install the project dependencies:

Using npm  

❯ npm install

Usage

Run mathjaxconv using the following command: Using npm  

❯ npm start

Testing

Run the test suite using the following command: Using npm  

❯ npm test

Project Roadmap

  • Task 1: Implement feature one.
  • Task 2: Implement feature two.
  • Task 3: Implement feature three.

Contributing

Contributing Guidelines
  1. Fork the Repository: Start by forking the project repository to your github account.
  2. Clone Locally: Clone the forked repository to your local machine using a git client.
    git clone https://github.com/noluyorAbi/mathjaxconv
  3. Create a New Branch: Always work on a new branch, giving it a descriptive name.
    git checkout -b new-feature-x
  4. Make Your Changes: Develop and test your changes locally.
  5. Commit Your Changes: Commit with a clear message describing your updates.
    git commit -m 'Implemented new feature x.'
  6. Push to github: Push the changes to your forked repository.
    git push origin new-feature-x
  7. Submit a Pull Request: Create a PR against the original project repository. Clearly describe the changes and their motivations.
  8. Review: Once your PR is reviewed and approved, it will be merged into the main branch. Congratulations on your contribution!
Contributor Graph


License

This project is protected under the SELECT-A-LICENSE License. For more details, refer to the LICENSE file.


Acknowledgments

  • List any resources, contributors, inspiration, etc. here.

About

Nextjs UI that converts inline LaTeX to MathJax syntax with $ and $$

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published