links

package module
v0.1.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 25, 2022 License: MIT Imports: 9 Imported by: 0

README

Goldmark link replacer extension.

support link add rel = "nofollw", target = "_blank" and more customize attribute.

code

var source = []byte(`[website](https://fungo.dev)
[source](https://github.com/fundipper/fungo)`)

func Example() {
	md := goldmark.New(
		goldmark.WithExtensions(
			links.NewExtender(
				map[string]bool{
					"fungo.dev": true,
				},
				map[string]string{
					"rel":    "nofollow",
					"target": "_blank", // arrtibute
				}),
		),
	)
	if err := md.Convert(source, os.Stdout); err != nil {
		log.Fatal(err)
	}
}

view

<p>
	<a href="https://fungo.dev">website</a>
</p>
<p>
	<a href="https://github.com/fundipper/fungo" ref="nofollow" targe="_blank">source</a>
</p>

thanks

Goldmark

Documentation

Overview

Example
package main

import (
	"log"
	"os"

	links "github.com/fundipper/goldmark-links"
	"github.com/yuin/goldmark"
)

var source = []byte(`[website](https://fungo.dev)
[source](https://github.com/fundipper/fungo)`)

func main() {
	md := goldmark.New(
		goldmark.WithExtensions(
			links.NewExtender(
				map[string]bool{
					"fungo.dev": true,
				},
				map[string]string{
					"rel":    "nofollow",
					"target": "_blank", // arrtibute
				}),
		),
	)
	if err := md.Convert(source, os.Stdout); err != nil {
		log.Fatal(err)
	}

}
Output:

<p>
<a href="https://fungo.dev">website</a>
</p>
<p>
<a href="https://github.com/fundipper/fungo" ref="nofollow" targe="_blank">source</a>
</p>

Index

Examples

Constants

This section is empty.

Variables

View Source
var KindLink = ast.NewNodeKind("Link")

KindLink is a NodeKind of the link node.

Functions

func NewExtender

func NewExtender(source map[string]bool, attribute map[string]string) goldmark.Extender

New return initialized image render with source url replacing support.

func NewRenderer

func NewRenderer() renderer.NodeRenderer

NewRenderer builds a new Renderer with given options and returns it.

Types

type Extender

type Extender struct {
	Source    map[string]bool
	Attribute map[string]string
}

func (*Extender) Extend

func (e *Extender) Extend(m goldmark.Markdown)
type Link struct {
	ast.Link
}

Link struct represents a link of the Markdown text.

func NewLink(link *ast.Link) *Link

NewLink returns a new link node.

func (*Link) Kind

func (l *Link) Kind() ast.NodeKind

Kind implements Node.Kind.

type Renderer

type Renderer struct {
	html.Config
}

Renderer struct is a renderer.NodeRenderer implementation for the extension.

func (*Renderer) RegisterFuncs

func (r *Renderer) RegisterFuncs(reg renderer.NodeRendererFuncRegisterer)

RegisterFuncs implements NodeRenderer.RegisterFuncs interface.

type Transformer

type Transformer struct{}

func NewTransformer

func NewTransformer() *Transformer

func (*Transformer) Transform

func (a *Transformer) Transform(node *ast.Document, reader text.Reader, pc parser.Context)

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL