Giter VIP home page Giter VIP logo

markdown-it-replace-link's Introduction

markdown-it-replace-link

markdown-it plugin for replacing links (image & text) in the markdown document.

Usage

Enable plugin

var md = require('markdown-it')({
    html: true,
    linkify: true
})
.use(require('markdown-it-replace-link'), {
    processHTML: true, // defaults to false for backwards compatibility
    replaceLink: function (link, env, token, htmlToken) {
        return link + "?c=" + Date.now();
    }
})

Example

[Hello](test)

and use this

var md = require('markdown-it')({
    replaceLink: function (link, env, token, htmlToken) {
        return "http://me.com/" + link;
    }
}).use(require('markdown-it-replace-link'));

This will result in the link prefixed with the http://me.com/ like:

<p><a href="http://me.com/test">Hello</a></p>

Both images and html links will be processed.

If using this in a browser, the script will create a variable window.markdownitReplaceLink that can be passed to .use().

Testing

To run the tests use:

npm run test

License

MIT

markdown-it-replace-link's People

Contributors

dereks avatar knom avatar martinheidegger avatar michaelhthomas avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

markdown-it-replace-link's Issues

HTML child rendering

I just stumbled around an issue with the rendering of mixed html code. So, for example, when processHTML is active and I add some html to a markdown file, like this:

<span class="test">abc</span>

it renders the children outside of the element, thus resulting in:

<span class="test"></span>abc

It seems, like this behavior is somehow expected, as you've included the following test case:

expect(md.render('<a href="hi"><img src="ho"></a>')).to.equal('<p><a href="http://me.com/hi"></a><img src="html-image/ho"></p>\n')

Is this also an issue with the test or is it actual expected behavior? It seems to only affect html_inline, as closes the html tag always in child 1 (probably due to the Dom rendering the "incorrect" unclosed element closed).

Browser version in ./dist/?

I am using markdown-it in the browser and would like to use this plugin.

The documentation shows using require(), which doesn't work in my browser.

[...].use(require('markdown-it-replace-link'))

I am new to node.js. Based on my reading, I think this code still needs a Makefile that runs browserify, and puts the browser-friendly version into ./dist/. Is that correct?

I've looked at other browser-friendly markdown-it plugins and that seems to be what they have done. They export a variable, for example, window.markdownitLinkifyImages, that can be used in the browser instead of require('markdown-it-replace-link').

Would it be possible to provide a browser-friendly version? If not, I would be happy to contribute a Pull Request, if this is the correct approach.

Thanks!

Support embedded HTML

Does this support embedded HTML like this:

[Hello](test)

<a href="test2">Hello2</a>

to:

<p><a href="http://me.com/test">Hello</a></p>

<a href="http://me.com/test2">Hello2</a>

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.