mirror of
https://github.com/serokell/xrefcheck.git
synced 2024-08-16 17:10:26 +03:00
Rename the project to xrefcheck
Problem: the previous name `crossref-verifier` was found long and boring. Solution: rename to `xrefcheck`.
This commit is contained in:
parent
38bd3b7920
commit
fd949bc3c8
@ -3,14 +3,14 @@
|
|||||||
# SPDX-License-Identifier: MPL-2.0
|
# SPDX-License-Identifier: MPL-2.0
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- command: nix-build crossref-verifier.nix
|
- command: nix-build xrefcheck.nix
|
||||||
label: Library and tests
|
label: Library and tests
|
||||||
- command: nix-build
|
- command: nix-build
|
||||||
label: Executable
|
label: Executable
|
||||||
artifact_paths:
|
artifact_paths:
|
||||||
- "result/bin/crossref-verify"
|
- "result/bin/xrefcheck"
|
||||||
- command: nix run -f. -c crossref-verify
|
- command: nix run -f. -c xrefcheck
|
||||||
label: Crossref-verify itself
|
label: Xrefcheck itself
|
||||||
- command: nix run -f $(nix eval -f nix/sources.nix --raw nixpkgs) reuse -c reuse lint
|
- command: nix run -f $(nix eval -f nix/sources.nix --raw nixpkgs) reuse -c reuse lint
|
||||||
label: REUSE lint
|
label: REUSE lint
|
||||||
- command:
|
- command:
|
||||||
|
2
.github/CONTRIBUTING.md
vendored
2
.github/CONTRIBUTING.md
vendored
@ -8,7 +8,7 @@
|
|||||||
|
|
||||||
## Reporting issues
|
## Reporting issues
|
||||||
|
|
||||||
Please [open an issue](https://github.com/serokell/crossref-verifier/issues/new/choose) if you find a bug or have a feature request.
|
Please [open an issue](https://github.com/serokell/xrefcheck/issues/new/choose) if you find a bug or have a feature request.
|
||||||
Note: you need to login (e. g. using your GitHub account) first.
|
Note: you need to login (e. g. using your GitHub account) first.
|
||||||
Before submitting a bug report or feature request, check to make sure it hasn't already been submitted
|
Before submitting a bug report or feature request, check to make sure it hasn't already been submitted
|
||||||
|
|
||||||
|
40
README.md
40
README.md
@ -4,17 +4,17 @@
|
|||||||
- SPDX-License-Identifier: MPL-2.0
|
- SPDX-License-Identifier: MPL-2.0
|
||||||
-->
|
-->
|
||||||
|
|
||||||
# Crossref-verifier
|
# Xrefcheck
|
||||||
|
|
||||||
[![Build status](https://badge.buildkite.com/75461331a6058b334383cdfca1071dc1f908b70cf069d857b7.svg?branch=master)](https://buildkite.com/serokell/crossref-verifier)
|
[![Build status](https://badge.buildkite.com/75461331a6058b334383cdfca1071dc1f908b70cf069d857b7.svg?branch=master)](https://buildkite.com/serokell/xrefcheck)
|
||||||
|
|
||||||
Crossref-verifier is a tool for verifying local and external references in repository documentation that is quick, easy to setup, and suitable to be added to CI.
|
Xrefcheck is a tool for verifying local and external references in repository documentation that is quick, easy to setup, and suitable to be added to CI.
|
||||||
|
|
||||||
<img src="https://user-images.githubusercontent.com/5394217/70820564-06b06e00-1dea-11ea-9680-27f661ca2a58.png" alt="Output sample" width="600"/>
|
<img src="https://user-images.githubusercontent.com/5394217/70820564-06b06e00-1dea-11ea-9680-27f661ca2a58.png" alt="Output sample" width="600"/>
|
||||||
|
|
||||||
### Motivation
|
### Motivation
|
||||||
|
|
||||||
As the project evolves, links in documentation have a tendency to get broken. This is usually because of:
|
As the project evolves, links in documentation have a tendency to get broken. This is usually because of:
|
||||||
1. File movements;
|
1. File movements;
|
||||||
2. Markdown header renames;
|
2. Markdown header renames;
|
||||||
3. Outer sites ceasing their existence.
|
3. Outer sites ceasing their existence.
|
||||||
@ -45,18 +45,18 @@ Both relative and absolute local links are supported out of the box.
|
|||||||
* [url-checker](https://github.com/paramt/url-checker) - GitHub action which checks links in specified files.
|
* [url-checker](https://github.com/paramt/url-checker) - GitHub action which checks links in specified files.
|
||||||
* [broken-link-checker](https://github.com/stevenvachon/broken-link-checker) - advanced checker for `HTML` files.
|
* [broken-link-checker](https://github.com/stevenvachon/broken-link-checker) - advanced checker for `HTML` files.
|
||||||
|
|
||||||
## Build instructions [↑](#crossref-verifier)
|
## Build instructions [↑](#xrefcheck)
|
||||||
|
|
||||||
Run `stack install` to build everything and install the executable.
|
Run `stack install` to build everything and install the executable.
|
||||||
|
|
||||||
### CI and nix [↑](#crossref-verifier)
|
### CI and nix [↑](#xrefcheck)
|
||||||
|
|
||||||
To build only the executables, run `nix-build`. You can use this line on your CI to use crossref-verifier:
|
To build only the executables, run `nix-build`. You can use this line on your CI to use xrefcheck:
|
||||||
```
|
```
|
||||||
nix run -f https://github.com/serokell/crossref-verifier/archive/master.tar.gz -c crossref-verify
|
nix run -f https://github.com/serokell/xrefcheck/archive/master.tar.gz -c xrefcheck
|
||||||
```
|
```
|
||||||
|
|
||||||
Our CI uses `nix-build crossref-verifier.nix` to build the whole project, including tests and Haddock.
|
Our CI uses `nix-build xrefcheck.nix` to build the whole project, including tests and Haddock.
|
||||||
It is based on the [`haskell.nix`](https://input-output-hk.github.io/haskell.nix/) project.
|
It is based on the [`haskell.nix`](https://input-output-hk.github.io/haskell.nix/) project.
|
||||||
You can do that too if you wish.
|
You can do that too if you wish.
|
||||||
|
|
||||||
@ -66,31 +66,31 @@ You can do that too if you wish.
|
|||||||
There is a [bug](https://github.com/input-output-hk/haskell.nix/issues/335) which causes us to put some redundancy into Nix files:
|
There is a [bug](https://github.com/input-output-hk/haskell.nix/issues/335) which causes us to put some redundancy into Nix files:
|
||||||
1. [`nix/sources.json`](nix/sources.json) lists all such dependencies that we obtain using `git`.
|
1. [`nix/sources.json`](nix/sources.json) lists all such dependencies that we obtain using `git`.
|
||||||
It specifies concrete git revisions and SHA256 checksums.
|
It specifies concrete git revisions and SHA256 checksums.
|
||||||
2. [`crossref-verifier.nix`](crossref-verifier.nix) lists all such dependencies as well, but without revisions.
|
2. [`xrefcheck.nix`](xrefcheck.nix) lists all such dependencies as well, but without revisions.
|
||||||
|
|
||||||
As a consequence, you may have to update these files when you update [`stack.yaml`](stack.yaml).
|
As a consequence, you may have to update these files when you update [`stack.yaml`](stack.yaml).
|
||||||
You can use [`niv update`](https://github.com/nmattia/niv#update) to update [`nix/sources.json`](nix/sources.json).
|
You can use [`niv update`](https://github.com/nmattia/niv#update) to update [`nix/sources.json`](nix/sources.json).
|
||||||
|
|
||||||
</details>
|
</details>
|
||||||
|
|
||||||
## Usage [↑](#crossref-verifier)
|
## Usage [↑](#xrefcheck)
|
||||||
|
|
||||||
To find all broken links in a repository, run from within its folder:
|
To find all broken links in a repository, run from within its folder:
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
crossref-verify
|
xrefcheck
|
||||||
```
|
```
|
||||||
|
|
||||||
To also display all found links and anchors:
|
To also display all found links and anchors:
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
crossref-verify -v
|
xrefcheck -v
|
||||||
```
|
```
|
||||||
|
|
||||||
For description of other options:
|
For description of other options:
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
crossref-verify --help
|
xrefcheck --help
|
||||||
```
|
```
|
||||||
|
|
||||||
## Configuring
|
## Configuring
|
||||||
@ -98,31 +98,31 @@ crossref-verify --help
|
|||||||
Configuration template (with all options explained) can be dumped with:
|
Configuration template (with all options explained) can be dumped with:
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
crossref-verify dump-config
|
xrefcheck dump-config
|
||||||
```
|
```
|
||||||
|
|
||||||
Currently supported options include:
|
Currently supported options include:
|
||||||
* Timeout for checking external references;
|
* Timeout for checking external references;
|
||||||
* List of ignored folders.
|
* List of ignored folders.
|
||||||
|
|
||||||
## For further work [↑](#crossref-verifier)
|
## For further work [↑](#xrefcheck)
|
||||||
|
|
||||||
- [ ] Support for non-Unix systems.
|
- [ ] Support for non-Unix systems.
|
||||||
- [ ] Support link detection in different languages, not only Markdown.
|
- [ ] Support link detection in different languages, not only Markdown.
|
||||||
- [ ] Haskell Haddock is first in turn.
|
- [ ] Haskell Haddock is first in turn.
|
||||||
|
|
||||||
## Issue tracker [↑](#crossref-verifier)
|
## Issue tracker [↑](#xrefcheck)
|
||||||
|
|
||||||
We use GitHub issues as our issue tracker.
|
We use GitHub issues as our issue tracker.
|
||||||
You can login using your GitHub account to leave a comment or create a new issue.
|
You can login using your GitHub account to leave a comment or create a new issue.
|
||||||
|
|
||||||
## For Contributors [↑](#crossref-verifier)
|
## For Contributors [↑](#xrefcheck)
|
||||||
|
|
||||||
Please see [CONTRIBUTING.md](/.github/CONTRIBUTING.md) for more information.
|
Please see [CONTRIBUTING.md](/.github/CONTRIBUTING.md) for more information.
|
||||||
|
|
||||||
## About Serokell [↑](#crossref-verifier)
|
## About Serokell [↑](#xrefcheck)
|
||||||
|
|
||||||
Crossref-verifier is maintained and funded with ❤️ by [Serokell](https://serokell.io/).
|
Xrefcheck is maintained and funded with ❤️ by [Serokell](https://serokell.io/).
|
||||||
The names and logo for Serokell are trademark of Serokell OÜ.
|
The names and logo for Serokell are trademark of Serokell OÜ.
|
||||||
|
|
||||||
We love open source software! See [our other projects](https://serokell.io/community?utm_source=github) or [hire us](https://serokell.io/hire-us?utm_source=github) to design, develop and grow your idea!
|
We love open source software! See [our other projects](https://serokell.io/community?utm_source=github) or [hire us](https://serokell.io/hire-us?utm_source=github) to design, develop and grow your idea!
|
||||||
|
@ -2,4 +2,4 @@
|
|||||||
#
|
#
|
||||||
# SPDX-License-Identifier: MPL-2.0
|
# SPDX-License-Identifier: MPL-2.0
|
||||||
|
|
||||||
(import ./crossref-verifier.nix {}).components.exes.crossref-verify
|
(import ./xrefcheck.nix {}).components.exes.xrefcheck
|
||||||
|
14
package.yaml
14
package.yaml
@ -2,9 +2,9 @@
|
|||||||
#
|
#
|
||||||
# SPDX-License-Identifier: MPL-2.0
|
# SPDX-License-Identifier: MPL-2.0
|
||||||
|
|
||||||
name: crossref-verifier
|
name: xrefcheck
|
||||||
version: 0.1.0.0
|
version: 0.1.0.0
|
||||||
github: serokell/crossref-verifier
|
github: serokell/xrefcheck
|
||||||
license: MPL-2.0
|
license: MPL-2.0
|
||||||
license-file: LICENSE
|
license-file: LICENSE
|
||||||
author: Kostya Ivanov, Serokell
|
author: Kostya Ivanov, Serokell
|
||||||
@ -15,7 +15,7 @@ extra-source-files:
|
|||||||
- README.md
|
- README.md
|
||||||
- src-files/*
|
- src-files/*
|
||||||
|
|
||||||
description: Please see the README on GitHub at <https://github.com/serokell/crossref-verifier#readme>
|
description: Please see the README on GitHub at <https://github.com/serokell/xrefcheck#readme>
|
||||||
|
|
||||||
default-extensions:
|
default-extensions:
|
||||||
- AllowAmbiguousTypes
|
- AllowAmbiguousTypes
|
||||||
@ -90,7 +90,7 @@ library:
|
|||||||
source-dirs: src
|
source-dirs: src
|
||||||
|
|
||||||
executables:
|
executables:
|
||||||
crossref-verify:
|
xrefcheck:
|
||||||
main: Main.hs
|
main: Main.hs
|
||||||
source-dirs: exec
|
source-dirs: exec
|
||||||
ghc-options:
|
ghc-options:
|
||||||
@ -99,14 +99,14 @@ executables:
|
|||||||
- -with-rtsopts=-N
|
- -with-rtsopts=-N
|
||||||
- -O2
|
- -O2
|
||||||
dependencies:
|
dependencies:
|
||||||
- crossref-verifier
|
- xrefcheck
|
||||||
|
|
||||||
tests:
|
tests:
|
||||||
crossref-verifier-tests:
|
xrefcheck-tests:
|
||||||
main: Main.hs
|
main: Main.hs
|
||||||
source-dirs: tests
|
source-dirs: tests
|
||||||
dependencies:
|
dependencies:
|
||||||
- crossref-verifier
|
- xrefcheck
|
||||||
- hspec
|
- hspec
|
||||||
- QuickCheck
|
- QuickCheck
|
||||||
build-tools:
|
build-tools:
|
||||||
|
@ -4,16 +4,16 @@
|
|||||||
|
|
||||||
{ pkgs ? import (import ../nix/sources.nix).nixpkgs { } }:
|
{ pkgs ? import (import ../nix/sources.nix).nixpkgs { } }:
|
||||||
let
|
let
|
||||||
executable = (import ../crossref-verifier.nix {
|
executable = (import ../xrefcheck.nix {
|
||||||
static = true;
|
static = true;
|
||||||
}).components.exes.crossref-verify;
|
}).components.exes.xrefcheck;
|
||||||
joinByBasename = name: paths:
|
joinByBasename = name: paths:
|
||||||
pkgs.runCommandNoCC name { } (''
|
pkgs.runCommandNoCC name { } (''
|
||||||
mkdir $out
|
mkdir $out
|
||||||
'' + pkgs.lib.concatMapStrings (path: ''
|
'' + pkgs.lib.concatMapStrings (path: ''
|
||||||
ln -s ${path} $out/${builtins.baseNameOf path}
|
ln -s ${path} $out/${builtins.baseNameOf path}
|
||||||
'') paths);
|
'') paths);
|
||||||
in joinByBasename "crossref-verifier-release" [
|
in joinByBasename "xrefcheck-release" [
|
||||||
"${executable}/bin"
|
"${executable}/bin"
|
||||||
../LICENSES
|
../LICENSES
|
||||||
../README.md
|
../README.md
|
||||||
|
@ -19,7 +19,7 @@ import Data.Version (showVersion)
|
|||||||
import Options.Applicative (Parser, ReadM, command, eitherReader, execParser, fullDesc, help,
|
import Options.Applicative (Parser, ReadM, command, eitherReader, execParser, fullDesc, help,
|
||||||
helper, hsubparser, info, infoOption, long, metavar, option, progDesc,
|
helper, hsubparser, info, infoOption, long, metavar, option, progDesc,
|
||||||
short, strOption, switch, value)
|
short, strOption, switch, value)
|
||||||
import Paths_crossref_verifier (version)
|
import Paths_xrefcheck (version)
|
||||||
|
|
||||||
import Crv.Core
|
import Crv.Core
|
||||||
|
|
||||||
@ -52,7 +52,7 @@ data Options = Options
|
|||||||
|
|
||||||
-- | Where to try to seek configuration if specific path is not set.
|
-- | Where to try to seek configuration if specific path is not set.
|
||||||
defaultConfigPaths :: [FilePath]
|
defaultConfigPaths :: [FilePath]
|
||||||
defaultConfigPaths = ["./crossref-verifier.yaml", "./.crossref-verifier.yaml"]
|
defaultConfigPaths = ["./xrefcheck.yaml", "./.xrefcheck.yaml"]
|
||||||
|
|
||||||
optionsParser :: Parser Options
|
optionsParser :: Parser Options
|
||||||
optionsParser = do
|
optionsParser = do
|
||||||
@ -99,7 +99,7 @@ dumpConfigOptions = hsubparser $
|
|||||||
short 'o' <>
|
short 'o' <>
|
||||||
long "output" <>
|
long "output" <>
|
||||||
metavar "FILEPATH" <>
|
metavar "FILEPATH" <>
|
||||||
value ".crossref-verifier.yaml" <>
|
value ".xrefcheck.yaml" <>
|
||||||
help "Name of created config file."
|
help "Name of created config file."
|
||||||
|
|
||||||
totalParser :: Parser Command
|
totalParser :: Parser Command
|
||||||
@ -109,7 +109,7 @@ totalParser = asum
|
|||||||
]
|
]
|
||||||
|
|
||||||
versionOption :: Parser (a -> a)
|
versionOption :: Parser (a -> a)
|
||||||
versionOption = infoOption ("crossref-verify-" <> (showVersion version)) $
|
versionOption = infoOption ("xrefcheck-" <> (showVersion version)) $
|
||||||
long "version" <>
|
long "version" <>
|
||||||
help "Show version."
|
help "Show version."
|
||||||
|
|
||||||
|
@ -13,12 +13,12 @@ let
|
|||||||
project = hn.stackProject {
|
project = hn.stackProject {
|
||||||
src = hn.haskellLib.cleanGit { src = ./.; };
|
src = hn.haskellLib.cleanGit { src = ./.; };
|
||||||
modules = [{
|
modules = [{
|
||||||
packages.crossref-verifier = {
|
packages.xrefcheck = {
|
||||||
# More failures during CI == Less failures in runtime!
|
# More failures during CI == Less failures in runtime!
|
||||||
postHaddock = ''
|
postHaddock = ''
|
||||||
[[ -z "$(ls -A dist/doc/html)" ]] && exit 1 || echo "haddock successfully generated documentation"'';
|
[[ -z "$(ls -A dist/doc/html)" ]] && exit 1 || echo "haddock successfully generated documentation"'';
|
||||||
package.ghcOptions = "-Werror";
|
package.ghcOptions = "-Werror";
|
||||||
components.exes.crossref-verify.configureFlags =
|
components.exes.xrefcheck.configureFlags =
|
||||||
with nixpkgs.pkgsStatic;
|
with nixpkgs.pkgsStatic;
|
||||||
lib.optionals static [
|
lib.optionals static [
|
||||||
"--disable-executable-dynamic"
|
"--disable-executable-dynamic"
|
||||||
@ -42,4 +42,4 @@ let
|
|||||||
subdir = "code/prelude";
|
subdir = "code/prelude";
|
||||||
}];
|
}];
|
||||||
};
|
};
|
||||||
in project.crossref-verifier
|
in project.xrefcheck
|
Loading…
Reference in New Issue
Block a user