Skip to content

Conversation

@rinas21
Copy link

@rinas21 rinas21 commented Oct 11, 2025

Marked version:

Markdown flavor: Markdown.pl|CommonMark|GitHub Flavored Markdown|n/a

Description

  • Fixes #### (if fixing a known issue; otherwise, describe issue using the following format)

Contributor

  • Test(s) exist to ensure functionality and minimize regression (if no tests added, list tests covering this PR); or,
  • no tests required for this PR.
  • If submitting new feature, it has been documented in the appropriate places.

Committer

In most cases, this should be a different person than the contributor.

@vercel
Copy link

vercel bot commented Oct 11, 2025

@rinas21 is attempting to deploy a commit to the MarkedJS Team on Vercel.

A member of the Team first needs to authorize it.

@gemini-code-assist
Copy link

Summary of Changes

Hello @rinas21, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This pull request significantly enhances the clarity of the Marked.js documentation by explicitly distinguishing between different types of extensions. The changes introduce precise terminology, detailed explanations, and practical examples to help developers better understand and utilize the extension system, ultimately improving the developer experience and reducing common points of confusion.

Highlights

  • New Documentation for Extension Types: A new document, docs/EXTENSION_TYPES.md, has been added to clearly define and differentiate between the two types of extensions in Marked.js: MarkedExtensions (configuration objects) and TokenizerAndRendererExtensions (custom parsing logic).
  • Clarified Terminology in Existing Docs: Existing documentation files (docs/USING_ADVANCED.md and docs/USING_PRO.md) have been updated to consistently use the new, precise terminology for extensions, reducing ambiguity.
  • Improved Examples and Migration Guidance: The documentation now includes clearer examples demonstrating the usage of both extension types and provides guidance for migrating from older, potentially confusing, extension configurations.
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

@rinas21
Copy link
Author

rinas21 commented Oct 11, 2025

Clarify ambiguity around "extensions" #3182

Copy link

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request introduces significant improvements to the documentation by clarifying the different types of extensions in marked.js. A new document, EXTENSION_TYPES.md, is added to explain the distinction between MarkedExtension and TokenizerAndRendererExtension, and existing documentation is updated to use this new, clearer terminology. The changes are well-executed and greatly enhance the clarity of the extension API for developers. I have one suggestion to further improve the consistency of the new terminology in the documentation.

Comment on lines 88 to 89
- **MarkedExtension**: Configuration objects for `marked.use()`
- **TokenizerAndRendererExtension**: Custom parsing logic objects for the `extensions` array

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

For better clarity and grammatical correctness, it would be better to make the descriptions for MarkedExtension and TokenizerAndRendererExtension singular to match their type names.

For example:

  • MarkedExtension: A configuration object for marked.use()
  • TokenizerAndRendererExtension: A custom parsing logic object for the extensions array

This would also align better with the headings on lines 9 and 36 if they were also made singular (e.g., ### 1. MarkedExtension (Configuration Object)), further improving consistency throughout this document.

Suggested change
- **MarkedExtension**: Configuration objects for `marked.use()`
- **TokenizerAndRendererExtension**: Custom parsing logic objects for the `extensions` array
- **MarkedExtension**: A configuration object for `marked.use()`
- **TokenizerAndRendererExtension**: A custom parsing logic object for the `extensions` array

@rinas21
Copy link
Author

rinas21 commented Oct 11, 2025

Fixed the issue , Clarify ambiguity around "extensions" #3182

});
```

### 2. TokenizerAndRendererExtensions (Custom Parsing Logic)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't like calling this a TokenizerAndRendererExtension because it could contain a custom Tokenizer function or a customer Renderer function or both.

I think we should use CustomExtension or maybe SyntaxExtension?

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I've updated all references from TokenizerAndRendererExtension to SyntaxExtension in:
Documentation files: EXTENSION_TYPES.md, USING_PRO.md, USING_ADVANCED.md
Source code: src/MarkedOptions.ts
Test files: test/types/marked.ts
Type definitions: Updated the TypeScript interface

Comment on lines +126 to +148
## Migration from Previous Versions

When upgrading from older versions of marked.js, you may need to separate your configuration:

```javascript
// Old way (confusing)
const config = {
gfm: true,
extensions: [customExtension1, customExtension2]
};

// New way (clear separation)
const markdownOptions = {
gfm: true
};

const customExtensions = {
extensions: [customExtension1, customExtension2]
};

marked.use(markdownOptions);
marked.use(customExtensions);
```
Copy link
Member

@UziTech UziTech Oct 17, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We do encourage setting them together. Often an external extension will set options and add syntax extensions and we want them to be easy to use.

I think we should remove this section

@vercel
Copy link

vercel bot commented Oct 17, 2025

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Preview Comments Updated (UTC)
marked-website Ready Ready Preview Comment Oct 17, 2025 6:59am

@UziTech
Copy link
Member

UziTech commented Oct 20, 2025

I think this will be a breaking change since the typescript types are changing

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants