• Stars
    star
    125
  • Rank 284,730 (Top 6 %)
  • Language
    Go
  • License
    MIT License
  • Created almost 7 years ago
  • Updated over 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Fast Link Checker for Markdown and HTML in Go

DEPRECATION NOTICE

Sorry this project is not actively maintained anymore! 😢 Please consider migrating to one of the alternatives listed below.

Alternatives

  • muffet
    • Fast website link checker in Go
  • lychee
    • A glorious link checker
    • This tool supports testing links both in local files and on websites.
  • hyperlink
    • Checks folder of HTML for relative/internal links (no markdown or external websites)

Why is it not maintained anymore?

It's because we found several problems with the goals of the project and the amount of work it needs.

The goal of this software was originally to check links in Markdown files which are compiled into HTML files and served via HTTP servers. But that raises the following problems.

  • We cannot test links which do not exist in the Markdown files.
    • For example, some markdown-based static site generators generate links at compile time.
    • e.g. automatic generation of table of contents
  • We cannot test the behaviour of HTTP servers.
    • Different HTTP servers handles URLs differently.
    • e.g. trailing slashes, inference of page file extensions, ...

It needs a lot of work to support all these different use cases. In short, we need to emulate different Markdown file compilers and HTTP servers as well as web browsers.

But I still want this...

If you think this software is still valuable for you even in comparison with the alternatives listed above and want it to be maintained, please let us know by posting a new issue.

liche

Circle CI Codecov Go Report Card License

asciicast

liche is a command to check links' connectivity in Markdown and HTML files. It checks all a and img tags in specified files.

Installation

go get -u github.com/raviqqe/liche
  • requires Go Modules

Usage

> liche --help
Link checker for Markdown and HTML

Usage:
	liche [-c <num-requests>] [-d <directory>] [-r] [-t <timeout>] [-x <regex>] [-v] <filenames>...

Options:
	-c, --concurrency <num-requests>  Set max number of concurrent HTTP requests. [default: 512]
	-d, --document-root <directory>  Set document root directory for absolute paths.
	-r, --recursive  Search Markdown and HTML files recursively
	-t, --timeout <timeout>  Set timeout for HTTP requests in seconds. Disabled by default.
	-x, --exclude <regex>  Regex of links to exclude from checking.
	-v, --verbose  Be verbose.

Examples

> liche file.md
> liche file1.md file2.md
> liche file.html
> liche file1.html file2.html
> liche -r directory # Search all Markdown and HTML files recursively.

Supported properties

  • File extensions: .md, .html, .htm
  • HTML tags: a, img
  • HTML attributes: href, src
  • URL schemes: http, https

Also supports relative and absolute paths. (Absolute paths need --document-root option.)

License

MIT

More Repositories

1

muffet

Fast website link checker in Go
Go
2,071
star
2

melior

The rustic MLIR bindings in Rust
Rust
279
star
3

hamt

Immutable and Memory-Efficient Maps and Sets in Go
Go
231
star
4

tensorflow-font2char2word2sent2doc

TensorFlow implementation of Hierarchical Attention Networks for Document Classification and some extension
Python
94
star
5

turtle-build

Ninja-compatible build system for high-level programming languages written in Rust
Rust
79
star
6

tensorflow-qnd

Quick and Dirty TensorFlow command framework to train and evaluate models and make inference
Python
57
star
7

begin-with-init.vim

Minimal neovim distribution as init.vim
Vim Script
33
star
8

oneRPC

The router-less serverless RPC framework for TypeScript
TypeScript
26
star
9

gherkin2markdown

Gherkin to Markdown converter
Go
24
star
10

rnm

Yet another codemod alternative
Go
20
star
11

ssf

Structurally-typed strict functional core language
Rust
19
star
12

block-is-array

Block is Array (See also https://github.com/raviqqe/block-is-hash)
Ruby
19
star
13

fmm

The uncurried minimal functional programming language for CPS transformation
Rust
18
star
14

bdwgc-alloc

impl GlobalAlloc for Boehm GC
Rust
18
star
15

schemat

Code formatter for Scheme, Lisp, and any S-expressions
Rust
15
star
16

code2d

Productivity tool for software engineers
TypeScript
11
star
17

lazy-ein

JSON meets Haskell.
Go
11
star
18

hamt-rs

HAMT implementation whose sub-trees can be shared over threads
Rust
11
star
19

dotfiles

My dotfiles for Linux / macOS
Shell
8
star
20

tasks

Simple task management app
TypeScript
8
star
21

self-talk

Talk to yourself
TypeScript
8
star
22

stak

No-std and no-alloc R7RS Scheme implementation in Rust
Rust
8
star
23

arachne

Rust
5
star
24

autophagy

Yet another AOT compiler for Rust
Rust
5
star
25

vim-nonblank

Delete trailing whitespaces on every write
Vim Script
5
star
26

dockerfile-dsl.rb

Dockerfile DSL in Ruby
Ruby
5
star
27

block-is-hash

Block is Hash (See also https://github.com/raviqqe/block-is-array)
Ruby
5
star
28

nginx-conf.rb

nginx.conf generator in Ruby
Ruby
4
star
29

bstie

Summon Beastie!
Go
3
star
30

language-design

3
star
31

til-old

Today I learned.
PHP
3
star
32

pomodoro

Pomodoro timer with performance tracking
TypeScript
3
star
33

stg

STG Machine in Go
Go
3
star
34

tensorflow-extenteten

TensorFlow extension library
Python
3
star
35

type-inference

Type inference algorithm with mutable data structures in Go
Go
2
star
36

flame

Freeze the world.
Rust
2
star
37

ein-design

2
star
38

tensorflow-entrec

Python
1
star
39

eslint-config

TypeScript
1
star
40

hm-type-inference

Rust
1
star
41

llir.rs

Rust
1
star
42

plist-rs

Persistent list in Rust
Rust
1
star
43

til

Today I learned
Rust
1
star
44

imleak

Rust
1
star
45

llvm-experiments

LLVM
1
star
46

simple-arc-rs

Simple Arc implementation in Rust
Rust
1
star
47

shakyo

type and learn
Python
1
star
48

wasm-examples

WebAssembly
1
star
49

infrastructure

HCL
1
star
50

parallel-go

Go
1
star
51

rpm

RPM (Requests Per Minute) reporter in Go
Go
1
star
52

react-scripts

TypeScript
1
star
53

xir

Rust
1
star
54

pir

Rust
1
star
55

mfmt

Meta formatter library in Rust
Rust
1
star
56

ewm

Rust
1
star
57

hidash

Lodash-like library for the Web API
TypeScript
1
star
58

all-yours

Yes, it's all yours.
Elm
1
star
59

marksvg

Haskell
1
star
60

freebsd_installation_script

Application installation script after the first boot (DEPRECATED, this project is succeeded to by https://github.com/raviqqe/dotfiles/)
C
1
star
61

llvm-all-the-things

Shell
1
star
62

parcom

Parser combinators in Go
Go
1
star
63

typetod

typeing game to let you type everything forever (DEPRECATED, this project is succeeded to by https://github.com/raviqqe/shakyo/)
Python
1
star
64

enable-homebrew

GitHub Action to enable Homebrew in Ubuntu images
JavaScript
1
star
65

immix-rust

Copy of gitlab.anu.edu.au/mu/immix-rust
Rust
1
star
66

gherkin-format

Gherkin code formatter
Go
1
star
67

loscore

Yet another utility library in TypeScript.
TypeScript
1
star