Code Monkey home page Code Monkey logo

Comments (2)

HT-Moh avatar HT-Moh commented on May 27, 2024 1

@kyoncy your are welcome, I end up adding one more prop, because in the HTML generated the first letter is upper case, but the link is working only with lower case.

interface ReactMarkdownHeadingProps {
  markdown: string;
  ulClassName?: string;
  liClassName?: string;
  anchorClassName?: string;
  hyperlink?: boolean;
  blankSpaceReplaceText?: string;
  hyperlinkPrefix?: string;
  hyperlinkLowerCase?: boolean;
  headingDepth?: 1 | 2 | 3 | 4 | 5 | 6;
}
import { PhrasingContent } from 'mdast';

const parseText = (
  content: PhrasingContent,
  link: {
    text: string;
    href: string;
  },
  blankSpaceReplaceText = '-',
  hyperlinkPrefix: string,
  hyperlinkLowerCase = false
): {
  text: string;
  href: string;
} => {
  switch (content.type) {
    case 'text':
    case 'inlineCode': {
      const text = content.value;
      const href = `${hyperlinkPrefix}${text.replace(
        /\s+/g,
        blankSpaceReplaceText
      )}`;
      link.text += text;

      link.href += hyperlinkLowerCase ? href.toLowerCase() : href;
      break;
    }
    case 'link':
    case 'strong':
    case 'emphasis':
      return content.children.length
        ? parseText(
            content.children[0],
            link,
            blankSpaceReplaceText,
            hyperlinkPrefix,
            hyperlinkLowerCase
          )
        : link;
    default:
      break;
  }

  return link;
};

export default parseText;

this works for me now.

from react-markdown-heading.

kyoncy avatar kyoncy commented on May 27, 2024

@HT-Moh
Thank you for your good request !
Released a new minor version !

https://www.npmjs.com/package/react-markdown-heading/v/1.2.0

from react-markdown-heading.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.