markdown icon indicating copy to clipboard operation
markdown copied to clipboard

Provide marked walkTokens option to help with relative markdown links

Open webketje opened this issue 2 years ago • 0 comments

Please thumbs up :+1: this comment if you would like to use this feature, or thumbs down :-1: if you don't think it should be added . Your feedback is valued


Various editors provide typehint support for linking to local files. A function like below could help auto-transform source links to html permalinks.

walkTokens(token) {
    if (token.type === 'link') {
      if (token.href.endsWith('index.md')) {
        token.href = token.href.replace(/\index.md$/, '')
      }
      if (token.href.startsWith('.')) {
        token.href = baseUrl + '/' + relative(metalsmith.source(), metalsmith.path('src',token.href)).replace(/\\/g, '/')
        console.log(token)
      }
    }
  }

To consider:

  • need to resolve relative to linking page's __filename
  • complications when the root of the repo !== metalsmith.directory
  • complications when a path-transforming plugin like metalsmith/permalinks is used after the markdown conversion

webketje avatar Nov 21 '22 15:11 webketje