Merge pull request #312471 from natsukium/textlint/repackage

textlint: repackage with buildNpmPackage
This commit is contained in:
OTABI Tomoya 2024-05-26 09:23:53 +09:00 committed by GitHub
commit 2e7b251746
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
33 changed files with 1127 additions and 1229 deletions

View File

@ -0,0 +1,37 @@
{
lib,
fetchFromGitHub,
buildNpmPackage,
textlint,
textlint-plugin-latex2e,
textlint-rule-max-comma,
}:
buildNpmPackage rec {
pname = "textlint-plugin-latex2e";
version = "1.2.1-unstable-2024-02-05";
src = fetchFromGitHub {
owner = "textlint";
repo = "textlint-plugin-latex2e";
rev = "d3ba1be14543aaaf8e52f87d103fafb3ebb7c4b0";
hash = "sha256-sCDpyhnznMAkIPWK0BawWZwuR9UO/ipIG2o5hyBkJQ0=";
};
npmDepsHash = "sha256-u2cMZC3s4iGCWG6iVMDYfb6XbxfjCdwpzl7opkwtrU8=";
passthru.tests = textlint.testPackages {
inherit (textlint-plugin-latex2e) pname;
rule = textlint-rule-max-comma;
plugin = textlint-plugin-latex2e;
testFile = ./test.tex;
};
meta = {
description = "Textlint Plugin LaTeX2ε";
homepage = "https://github.com/textlint/textlint-plugin-latex2e";
changelog = "https://github.com/textlint/textlint-plugin-latex2e/blob/${src.rev}/CHANGELOG.md";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ natsukium ];
};
}

View File

@ -0,0 +1,4 @@
\documentclass{article}
\begin{document}
Nix, is a tool, that takes a unique approach to package management and system configuration, Learn how to make reproducible, declarative, and reliable systems.
\end{document}

View File

@ -0,0 +1,79 @@
{
lib,
stdenv,
fetchFromGitHub,
fetchYarnDeps,
fixup-yarn-lock,
nodejs,
yarn,
textlint,
textlint-rule-abbr-within-parentheses,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "textlint-rule-abbr-within-parentheses";
version = "1.0.2";
src = fetchFromGitHub {
owner = "azu";
repo = "textlint-rule-abbr-within-parentheses";
rev = "refs/tags/${finalAttrs.version}";
hash = "sha256-CBrf7WtvywDmtuSyxkDtAyjmrj7KS3TQLSsNfMxeWXw=";
};
offlineCache = fetchYarnDeps {
yarnLock = "${finalAttrs.src}/yarn.lock";
hash = "sha256-N4tnja6qTo7jtn7Dh4TwBUCUKfbIbHvdZ7aeJcE+NlU=";
};
nativeBuildInputs = [
fixup-yarn-lock
nodejs
yarn
];
configurePhase = ''
runHook preConfigure
export HOME=$(mktemp -d)
yarn config --offline set yarn-offline-mirror "$offlineCache"
fixup-yarn-lock yarn.lock
yarn --offline --frozen-lockfile --ignore-platform --ignore-scripts --no-progress --non-interactive install
patchShebangs node_modules
runHook postConfigure
'';
buildPhase = ''
runHook preBuild
yarn --offline build
runHook postBuild
'';
installPhase = ''
runHook preInstall
yarn --offline --production install
rm -r test
mkdir -p $out/lib/node_modules/textlint-rule-abbr-within-parentheses
cp -r . $out/lib/node_modules/textlint-rule-abbr-within-parentheses/
runHook postInstall
'';
passthru.tests = textlint.testPackages {
rule = textlint-rule-abbr-within-parentheses;
testFile = ./test.md;
};
meta = {
description = "Textlint rule check if write abbreviations within parentheses";
homepage = "https://github.com/azu/textlint-rule-abbr-within-parentheses";
changelog = "https://github.com/azu/textlint-rule-abbr-within-parentheses/releases/tag/${finalAttrs.src.rev}";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ natsukium ];
platforms = textlint.meta.platforms;
};
})

View File

@ -0,0 +1 @@
Passing an expression `expr` that evaluates to a store path to any built-in function which reads from the filesystem constitutes IFD(Import From Derivation).

View File

@ -0,0 +1,34 @@
{
lib,
fetchFromGitHub,
buildNpmPackage,
textlint,
textlint-rule-alex,
}:
buildNpmPackage rec {
pname = "textlint-rule-alex";
version = "5.0.0";
src = fetchFromGitHub {
owner = "textlint-rule";
repo = "textlint-rule-alex";
rev = "refs/tags/v${version}";
hash = "sha256-1JoiUhiRXZWIyLAJXp5ZzFAa/NBCN79jYh5kMNbO0jI=";
};
npmDepsHash = "sha256-ovDDiOZ415ubyDqbLNggzoVuqUWsRlG3zlhRW6xU3SQ=";
passthru.tests = textlint.testPackages {
rule = textlint-rule-alex;
testFile = ./test.md;
};
meta = {
description = "Textlint rule for alex";
homepage = "https://github.com/textlint-rule/textlint-rule-alex";
changelog = "https://github.com/textlint-rule/textlint-rule-alex/releases/tag/${src.rev}";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ natsukium ];
};
}

View File

@ -0,0 +1 @@
A message for this sentence will pop up.

View File

@ -0,0 +1,135 @@
{
lib,
stdenvNoCC,
fetchurl,
fetchFromGitHub,
fetchYarnDeps,
fixup-yarn-lock,
nodejs,
yarn,
textlint,
textlint-rule-common-misspellings,
}:
# there is no lock file in this package, but it is old and stable enough
# so that we handle dependencies manually
let
misspellings = stdenvNoCC.mkDerivation (finalAttrs: {
pname = "misspellings";
version = "1.1.0";
src = fetchurl {
url = "https://registry.npmjs.org/misspellings/-/misspellings-${finalAttrs.version}.tgz";
hash = "sha256-+4QxmGjoF0mBldN4XQMvoK8YDS4PBV9/c+/BPf4FbkM=";
};
dontBuild = true;
installPhase = ''
runHook preInstall
mkdir -p $out/lib/node_modules/misspellings
cp -r . $out/lib/node_modules/misspellings/
runHook postInstall
'';
});
textlint-rule-helper = stdenvNoCC.mkDerivation (finalAttrs: {
pname = "textlint-rule-helper";
version = "2.3.1";
src = fetchFromGitHub {
owner = "textlint";
repo = "textlint-rule-helper";
rev = "refs/tags/v${finalAttrs.version}";
hash = "sha256-SVeL/3KC/yazSGsmn5We8fJAuVqfcspzN7i2a4+EOlI=";
};
offlineCache = fetchYarnDeps {
yarnLock = "${finalAttrs.src}/yarn.lock";
hash = "sha256-UN56VuUHl7aS+QLON8ZROTSCGKKCn/8xuIkR46LyY+U=";
};
nativeBuildInputs = [
fixup-yarn-lock
nodejs
yarn
];
configurePhase = ''
runHook preConfigure
export HOME=$(mktemp -d)
yarn config --offline set yarn-offline-mirror "$offlineCache"
fixup-yarn-lock yarn.lock
yarn --offline --frozen-lockfile --ignore-platform --ignore-scripts --no-progress --non-interactive install
patchShebangs node_modules
runHook postConfigure
'';
buildPhase = ''
runHook preBuild
yarn --offline build
runHook postBuild
'';
installPhase = ''
runHook preInstall
yarn --offline --production install
rm -r test
mkdir -p $out/lib/node_modules/textlint-rule-helper
cp -r . $out/lib/node_modules/textlint-rule-helper/
runHook postInstall
'';
});
in
stdenvNoCC.mkDerivation (finalAttrs: {
pname = "textlint-rule-common-misspellings";
version = "1.0.1";
src = fetchurl {
url = "https://registry.npmjs.org/textlint-rule-common-misspellings/-/textlint-rule-common-misspellings-${finalAttrs.version}.tgz";
hash = "sha256-5QVb5T2yGuunNhRQG5brJQyicRRbO8XewzjO2RzN0bI=";
};
dontBuild = true;
buildInputs = [
misspellings
textlint-rule-helper
];
installPhase = ''
runHook preInstall
mkdir -p $out/lib/node_modules/textlint-rule-common-misspellings/node_modules/textlint-rule-helper
cp -r ${misspellings}/lib/node_modules/misspellings $out/lib/node_modules/textlint-rule-common-misspellings/node_modules/misspellings
cp -r ${textlint-rule-helper}/lib/node_modules/textlint-rule-helper/node_modules/* $out/lib/node_modules/textlint-rule-common-misspellings/node_modules
cp -r ${textlint-rule-helper}/lib/node_modules/textlint-rule-helper/lib $out/lib/node_modules/textlint-rule-common-misspellings/node_modules/textlint-rule-helper/lib
cp -r ${textlint-rule-helper}/lib/node_modules/textlint-rule-helper/package.json $out/lib/node_modules/textlint-rule-common-misspellings/node_modules/textlint-rule-helper/package.json
cp -r . $out/lib/node_modules/textlint-rule-common-misspellings/
runHook postInstall
'';
passthru.tests = textlint.testPackages {
rule = textlint-rule-common-misspellings;
testFile = ./test.md;
};
meta = {
description = "Textlint rule to check common misspellings";
homepage = "https://github.com/io-monad/textlint-rule-common-misspellings";
license = lib.licenses.gpl3Only;
maintainers = with lib.maintainers; [ natsukium ];
mainProgram = "textlint-rule-common-misspellings";
platforms = textlint.meta.platforms;
};
})

View File

@ -0,0 +1 @@
`textlint-rule-common-misspellings` is an old and mature libary.

View File

@ -0,0 +1,36 @@
{
lib,
fetchFromGitHub,
buildNpmPackage,
textlint,
textlint-rule-diacritics,
}:
buildNpmPackage rec {
pname = "textlint-rule-diacritics";
version = "1.0.0-unstable-2023-01-05";
src = fetchFromGitHub {
owner = "sapegin";
repo = "textlint-rule-diacritics";
rev = "07977d866aa6ce514bc6ed3a1087b2bb5869bfb4";
hash = "sha256-Zr+qWvgpLq3pzO4A7c+x4rTKkaSNO4t1gCiyJL3lkws=";
};
npmDepsHash = "sha256-bKA8aPVBYdzRPwCyFdEs3eWStJwswCZPVpsqGWwc42E=";
dontNpmBuild = true;
passthru.tests = textlint.testPackages {
rule = textlint-rule-diacritics;
testFile = ./test.md;
};
meta = {
description = "Textlint rule to check correct usage of diacritics";
homepage = "https://github.com/sapegin/textlint-rule-diacritics?tab=readme-ov-file";
changelog = "https://github.com/sapegin/textlint-rule-diacritics/releases/tag/${src.rev}";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ natsukium ];
};
}

View File

@ -0,0 +1 @@
creme brulee

View File

@ -0,0 +1,79 @@
{
lib,
stdenv,
fetchFromGitHub,
fetchYarnDeps,
fixup-yarn-lock,
nodejs,
yarn,
textlint,
textlint-rule-en-max-word-count,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "textlint-rule-en-max-word-count";
version = "2.0.1";
src = fetchFromGitHub {
owner = "textlint-rule";
repo = "textlint-rule-en-max-word-count";
rev = "refs/tags/v${finalAttrs.version}";
hash = "sha256-ZZWN0PVHQBHcvJ53jDtD/6wLxBYmSHO7OXb5UQQAmyc=";
};
offlineCache = fetchYarnDeps {
yarnLock = "${finalAttrs.src}/yarn.lock";
hash = "sha256-3sEbvIfSaMz9pJalEKs7y05OVh+cKDg9jfLYmVyS53M=";
};
nativeBuildInputs = [
fixup-yarn-lock
nodejs
yarn
];
configurePhase = ''
runHook preConfigure
export HOME=$(mktemp -d)
yarn config --offline set yarn-offline-mirror "$offlineCache"
fixup-yarn-lock yarn.lock
yarn --offline --frozen-lockfile --ignore-platform --ignore-scripts --no-progress --non-interactive install
patchShebangs node_modules
runHook postConfigure
'';
buildPhase = ''
runHook preBuild
yarn --offline build
runHook postBuild
'';
installPhase = ''
runHook preInstall
yarn --offline --production install
rm -r test
mkdir -p $out/lib/node_modules/textlint-rule-en-max-word-count
cp -r . $out/lib/node_modules/textlint-rule-en-max-word-count/
runHook postInstall
'';
passthru.tests = textlint.testPackages {
rule = textlint-rule-en-max-word-count;
testFile = ./test.md;
};
meta = {
description = "Textlint rule that specify the maximum word count of a sentence";
homepage = "https://github.com/textlint-rule/textlint-rule-en-max-word-count";
changelog = "https://github.com/textlint-rule/textlint-rule-en-max-word-count/releases/tag/${finalAttrs.src.rev}";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ natsukium ];
platforms = textlint.meta.platforms;
};
})

View File

@ -0,0 +1 @@
Nix is a tool that takes a unique approach to package management and system configuration, learn how to make reproducible declarative and reliable systems, Nix builds packages in isolation from each other, this ensures that they are reproducible and dont have undeclared dependencies, so if a package works on one machine, it will also work on another.

View File

@ -0,0 +1,79 @@
{
lib,
stdenv,
fetchFromGitHub,
fetchYarnDeps,
fixup-yarn-lock,
nodejs,
yarn,
textlint,
textlint-rule-max-comma,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "textlint-rule-max-comma";
version = "4.0.0";
src = fetchFromGitHub {
owner = "textlint-rule";
repo = "textlint-rule-max-comma";
rev = "refs/tags/v${finalAttrs.version}";
hash = "sha256-Sf7ehhEOcy1HdgnIra8darkucF6RebQQV/NfJtft/DA=";
};
offlineCache = fetchYarnDeps {
yarnLock = "${finalAttrs.src}/yarn.lock";
hash = "sha256-jSsVQhvmc5mJ1gh6I5UaLvdz+HpaXI0fXFX0KCh01/c=";
};
nativeBuildInputs = [
fixup-yarn-lock
nodejs
yarn
];
configurePhase = ''
runHook preConfigure
export HOME=$(mktemp -d)
yarn config --offline set yarn-offline-mirror "$offlineCache"
fixup-yarn-lock yarn.lock
yarn --offline --frozen-lockfile --ignore-platform --ignore-scripts --no-progress --non-interactive install
patchShebangs node_modules
runHook postConfigure
'';
buildPhase = ''
runHook preBuild
yarn --offline build
runHook postBuild
'';
installPhase = ''
runHook preInstall
yarn --offline --production install
rm -r test
mkdir -p $out/lib/node_modules/textlint-rule-max-comma
cp -r . $out/lib/node_modules/textlint-rule-max-comma/
runHook postInstall
'';
passthru.tests = textlint.testPackages {
rule = textlint-rule-max-comma;
testFile = ./test.md;
};
meta = {
description = "Textlint rule is that limit maximum comma(,) count of sentence";
homepage = "https://github.com/textlint-rule/textlint-rule-max-comma";
changelog = "https://github.com/textlint-rule/textlint-rule-max-comma/releases/tag/${finalAttrs.src.rev}";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ natsukium ];
platforms = textlint.meta.platforms;
};
})

View File

@ -0,0 +1 @@
Nix, is a tool, that takes a unique approach to package management and system configuration, Learn how to make reproducible, declarative, and reliable systems.

View File

@ -0,0 +1,79 @@
{
lib,
stdenv,
fetchFromGitHub,
fetchYarnDeps,
fixup-yarn-lock,
nodejs,
yarn,
textlint,
textlint-rule-no-start-duplicated-conjunction,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "textlint-rule-no-start-duplicated-conjunction";
version = "2.0.2";
src = fetchFromGitHub {
owner = "textlint-rule";
repo = "textlint-rule-no-start-duplicated-conjunction";
rev = "refs/tags/${finalAttrs.version}";
hash = "sha256-DtuCkHy440j2VI/JDJGrW2M8alQ8pxllfIZfB4+9z3U=";
};
offlineCache = fetchYarnDeps {
yarnLock = "${finalAttrs.src}/yarn.lock";
hash = "sha256-+3SJQgOG5bYSmNWbxsFNEEtKtCg8V04MIk6FhHwOZMo=";
};
nativeBuildInputs = [
fixup-yarn-lock
nodejs
yarn
];
configurePhase = ''
runHook preConfigure
export HOME=$(mktemp -d)
yarn config --offline set yarn-offline-mirror "$offlineCache"
fixup-yarn-lock yarn.lock
yarn --offline --frozen-lockfile --ignore-platform --ignore-scripts --no-progress --non-interactive install
patchShebangs node_modules
runHook postConfigure
'';
buildPhase = ''
runHook preBuild
yarn --offline build
runHook postBuild
'';
installPhase = ''
runHook preInstall
yarn --offline --production install
rm -r test
mkdir -p $out/lib/node_modules/textlint-rule-no-start-duplicated-conjunction
cp -r . $out/lib/node_modules/textlint-rule-no-start-duplicated-conjunction/
runHook postInstall
'';
passthru.tests = textlint.testPackages {
rule = textlint-rule-no-start-duplicated-conjunction;
testFile = ./test.md;
};
meta = {
description = "Textlint rule that check no start with duplicated conjunction";
homepage = "https://github.com/textlint-rule/textlint-rule-no-start-duplicated-conjunction";
changelog = "https://github.com/textlint-rule/textlint-rule-no-start-duplicated-conjunction/releases/tag/${finalAttrs.src.rev}";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ natsukium ];
platforms = textlint.meta.platforms;
};
})

View File

@ -0,0 +1,3 @@
But, A is ~.
So, A is ~.
But, A is ~.

View File

@ -0,0 +1,79 @@
{
lib,
stdenv,
fetchFromGitHub,
fetchYarnDeps,
fixup-yarn-lock,
nodejs,
yarn,
textlint,
textlint-rule-period-in-list-item,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "textlint-rule-period-in-list-item";
version = "1.0.1";
src = fetchFromGitHub {
owner = "textlint-rule";
repo = "textlint-rule-period-in-list-item";
rev = "refs/tags/v${finalAttrs.version}";
hash = "sha256-hAkueH5q5s0kmvKZiOrCxtfmoHtHH0U8cVLhQ7eoqT0=";
};
offlineCache = fetchYarnDeps {
yarnLock = "${finalAttrs.src}/yarn.lock";
hash = "sha256-4tVTR/Wpcr/nJrBhqV3AowwcUiFNiuohyKn6yQvorvc=";
};
nativeBuildInputs = [
fixup-yarn-lock
nodejs
yarn
];
configurePhase = ''
runHook preConfigure
export HOME=$(mktemp -d)
yarn config --offline set yarn-offline-mirror "$offlineCache"
fixup-yarn-lock yarn.lock
yarn --offline --frozen-lockfile --ignore-platform --ignore-scripts --no-progress --non-interactive install
patchShebangs node_modules
runHook postConfigure
'';
buildPhase = ''
runHook preBuild
yarn --offline build
runHook postBuild
'';
installPhase = ''
runHook preInstall
yarn --offline --production install
rm -r test
mkdir -p $out/lib/node_modules/textlint-rule-period-in-list-item
cp -r . $out/lib/node_modules/textlint-rule-period-in-list-item/
runHook postInstall
'';
passthru.tests = textlint.testPackages {
rule = textlint-rule-period-in-list-item;
testFile = ./test.md;
};
meta = {
description = "Textlint rule that check with or without period in list item";
homepage = "https://github.com/textlint-rule/textlint-rule-period-in-list-item";
changelog = "https://github.com/textlint-rule/textlint-rule-period-in-list-item/releases/tag/${finalAttrs.src.rev}";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ natsukium ];
platforms = textlint.meta.platforms;
};
})

View File

@ -0,0 +1 @@
- item.

View File

@ -0,0 +1,72 @@
{
lib,
stdenv,
fetchFromGitHub,
fetchYarnDeps,
fixup-yarn-lock,
nodejs,
yarn,
textlint,
textlint-rule-preset-ja-technical-writing,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "textlint-rule-preset-ja-technical-writing";
version = "10.0.1";
src = fetchFromGitHub {
owner = "textlint-ja";
repo = "textlint-rule-preset-ja-technical-writing";
rev = "refs/tags/v${finalAttrs.version}";
hash = "sha256-8KoP/JagMf2kFxz8hr9e0hJH7yPukRURb48v0nPkC/8=";
};
offlineCache = fetchYarnDeps {
yarnLock = "${finalAttrs.src}/yarn.lock";
hash = "sha256-jm+8XK1E60D1AgYBnlKL0fkAWnn68z2PhCK7T/XbUgk=";
};
nativeBuildInputs = [
nodejs
fixup-yarn-lock
yarn
];
configurePhase = ''
runHook preConfigure
export HOME=$(mktemp -d)
yarn config --offline set yarn-offline-mirror "$offlineCache"
fixup-yarn-lock yarn.lock
yarn --offline --frozen-lockfile --ignore-platform --ignore-scripts --no-progress --non-interactive install
patchShebangs node_modules
runHook postConfigure
'';
dontBuild = true;
installPhase = ''
runHook preInstall
yarn --offline --production install
mkdir -p $out/lib/node_modules/textlint-rule-preset-ja-technical-writing
cp -r . $out/lib/node_modules/textlint-rule-preset-ja-technical-writing
runHook postInstall
'';
passthru.tests = textlint.testPackages {
rule = textlint-rule-preset-ja-technical-writing;
testFile = ./test.md;
};
meta = {
description = "textlint";
homepage = "https://github.com/textlint-ja/textlint-rule-preset-ja-technical-writing";
changelog = "https://github.com/textlint-ja/textlint-rule-preset-ja-technical-writing/blob/${finalAttrs.src.rev}/CHANGELOG.md";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ natsukium ];
platforms = textlint.meta.platforms;
};
})

View File

@ -0,0 +1 @@
ニックスはいいぞ

View File

@ -0,0 +1,36 @@
{
lib,
fetchFromGitHub,
buildNpmPackage,
textlint,
textlint-rule-stop-words,
}:
buildNpmPackage rec {
pname = "textlint-rule-stop-words";
version = "5.0.0";
src = fetchFromGitHub {
owner = "sapegin";
repo = "textlint-rule-stop-words";
rev = "refs/tags/v${version}";
hash = "sha256-e9jTbDULOs0DwtT9UZp7k5+RR5Ab/x/sizIvs1MrmZs=";
};
npmDepsHash = "sha256-t9PPHFIiY4vw0ocw6nMuaeYuYWxbc1Pzo0R6bqIsHeI=";
dontNpmBuild = true;
passthru.tests = textlint.testPackages {
rule = textlint-rule-stop-words;
testFile = ./test.md;
};
meta = {
description = "Textlint rule to find filler words, buzzwords and clichés";
homepage = "https://github.com/sapegin/textlint-rule-stop-words";
changelog = "https://github.com/sapegin/textlint-rule-stop-words/releases/tag/${src.rev}";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ natsukium ];
};
}

View File

@ -0,0 +1 @@
and etc.

View File

@ -0,0 +1,36 @@
{
lib,
fetchFromGitHub,
buildNpmPackage,
textlint,
textlint-rule-terminology,
}:
buildNpmPackage rec {
pname = "textlint-rule-terminology";
version = "5.0.0";
src = fetchFromGitHub {
owner = "sapegin";
repo = "textlint-rule-terminology";
rev = "refs/tags/v${version}";
hash = "sha256-/NuKZSugizP4b2LFNqPrTvoXNE4D1sytU2B7T40ZASQ=";
};
npmDepsHash = "sha256-FQr7E6ZSJxj/ide+3JJwc27x15L1bAIAlPnMl8hdQ8w=";
dontNpmBuild = true;
passthru.tests = textlint.testPackages {
rule = textlint-rule-terminology;
testFile = ./test.md;
};
meta = {
description = "Textlint rule to check correct terms spelling";
homepage = "https://github.com/sapegin/textlint-rule-terminology";
changelog = "https://github.com/sapegin/textlint-rule-terminology/releases/tag/${src.rev}";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ natsukium ];
};
}

View File

@ -0,0 +1 @@
Javascript

View File

@ -0,0 +1,79 @@
{
lib,
stdenv,
fetchFromGitHub,
fetchYarnDeps,
fixup-yarn-lock,
nodejs,
yarn,
textlint,
textlint-rule-unexpanded-acronym,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "textlint-rule-unexpanded-acronym";
version = "1.2.4";
src = fetchFromGitHub {
owner = "textlint-rule";
repo = "textlint-rule-unexpanded-acronym";
rev = "refs/tags/${finalAttrs.version}";
hash = "sha256-oUOofYfdENRQnwmBDADQgA1uGtRirqqGg8T+QA0LCXY=";
};
offlineCache = fetchYarnDeps {
yarnLock = "${finalAttrs.src}/yarn.lock";
hash = "sha256-90ZONfn7CnrCsYGliF+c7Ss+SgVmaCYnaVdq3s1HdJU=";
};
nativeBuildInputs = [
fixup-yarn-lock
nodejs
yarn
];
configurePhase = ''
runHook preConfigure
export HOME=$(mktemp -d)
yarn config --offline set yarn-offline-mirror "$offlineCache"
fixup-yarn-lock yarn.lock
yarn --offline --frozen-lockfile --ignore-platform --ignore-scripts --no-progress --non-interactive install
patchShebangs node_modules
runHook postConfigure
'';
buildPhase = ''
runHook preBuild
yarn --offline build
runHook postBuild
'';
installPhase = ''
runHook preInstall
yarn --offline --production install
rm -r test
mkdir -p $out/lib/node_modules/textlint-rule-unexpanded-acronym
cp -r . $out/lib/node_modules/textlint-rule-unexpanded-acronym/
runHook postInstall
'';
passthru.tests = textlint.testPackages {
rule = textlint-rule-unexpanded-acronym;
testFile = ./test.md;
};
meta = {
description = "Textlint rule that check unexpanded acronym";
homepage = "https://github.com/textlint-rule/textlint-rule-unexpanded-acronym";
changelog = "https://github.com/textlint-rule/textlint-rule-unexpanded-acronym/releases/tag/${finalAttrs.src.rev}";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ natsukium ];
platforms = textlint.meta.platforms;
};
})

View File

@ -0,0 +1 @@
Passing an expression `expr` that evaluates to a store path to any built-in function which reads from the filesystem constitutes IFD.

View File

@ -0,0 +1,79 @@
{
lib,
stdenv,
fetchFromGitHub,
fetchYarnDeps,
fixup-yarn-lock,
nodejs,
yarn,
textlint,
textlint-rule-write-good,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "textlint-rule-write-good";
version = "2.0.0-unstable-2024-05-02";
src = fetchFromGitHub {
owner = "textlint-rule";
repo = "textlint-rule-write-good";
rev = "586afa0989ae9ac8a93436f58a24d99afe1cac21";
hash = "sha256-ghEmWkwGVvLMy6Gf7IrariDRNfuNBc9EVOQz5w38g0I=";
};
offlineCache = fetchYarnDeps {
yarnLock = "${finalAttrs.src}/yarn.lock";
hash = "sha256-J02MoKPEYtehQMSaOR1Ytfme1ffgHbQcNnEENeTaxaA=";
};
nativeBuildInputs = [
fixup-yarn-lock
nodejs
yarn
];
configurePhase = ''
runHook preConfigure
export HOME=$(mktemp -d)
yarn config --offline set yarn-offline-mirror "$offlineCache"
fixup-yarn-lock yarn.lock
yarn --offline --frozen-lockfile --ignore-platform --ignore-scripts --no-progress --non-interactive install
patchShebangs node_modules
runHook postConfigure
'';
buildPhase = ''
runHook preBuild
yarn --offline build
runHook postBuild
'';
installPhase = ''
runHook preInstall
yarn --offline --production install
rm -r test
mkdir -p $out/lib/node_modules/textlint-rule-write-good
cp -r . $out/lib/node_modules/textlint-rule-write-good/
runHook postInstall
'';
passthru.tests = textlint.testPackages {
rule = textlint-rule-write-good;
testFile = ./test.md;
};
meta = {
description = "Textlint rule to check your English styles with write-good";
homepage = "https://github.com/textlint-rule/textlint-rule-write-good";
changelog = "https://github.com/textlint-rule/textlint-rule-write-good/releases/tag/${finalAttrs.src.rev}";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ natsukium ];
platforms = textlint.meta.platforms;
};
})

View File

@ -0,0 +1 @@
So the cat was stolen.

View File

@ -0,0 +1,136 @@
{
lib,
buildNpmPackage,
fetchFromGitHub,
autoconf,
automake,
makeWrapper,
runCommand,
textlint,
textlint-plugin-latex2e,
textlint-rule-abbr-within-parentheses,
textlint-rule-alex,
textlint-rule-common-misspellings,
textlint-rule-diacritics,
textlint-rule-en-max-word-count,
textlint-rule-max-comma,
textlint-rule-no-start-duplicated-conjunction,
textlint-rule-period-in-list-item,
textlint-rule-preset-ja-technical-writing,
textlint-rule-stop-words,
textlint-rule-terminology,
textlint-rule-unexpanded-acronym,
textlint-rule-write-good,
}:
buildNpmPackage rec {
pname = "textlint";
version = "14.0.4";
src = fetchFromGitHub {
owner = "textlint";
repo = "textlint";
rev = "refs/tags/v${version}";
hash = "sha256-u8BRzfvpZ8xggJwH8lsu+hqsql6s4SZVlkFzLBe6zvE=";
};
patches = [
# this package uses lerna and requires building many workspaces.
# this patch removes unnecessary workspaces,
# reducing package size and build time.
./remove-workspaces.patch
];
npmDepsHash = "sha256-rmRtCP51rt/wd/ef0iwMMI6eCGF1KNN7kJqomitMJ+w=";
nativeBuildInputs = [
autoconf
automake
];
installPhase = ''
runHook preInstall
mkdir -p $out/{bin,lib}
npm prune --omit=dev --no-save
rm -r node_modules/.cache
rm -r packages/textlint-{scripts,tester}
rm -r packages/@textlint/*/test
cp -r node_modules $out/lib
cp -r packages $out/lib
ln -s $out/lib/node_modules/textlint/bin/textlint.js $out/bin/textlint
runHook postInstall
'';
passthru = {
withPackages =
ps:
runCommand "textlint-with-packages" { nativeBuildInputs = [ makeWrapper ]; } ''
makeWrapper ${textlint}/bin/textlint $out/bin/textlint \
--set NODE_PATH ${lib.makeSearchPath "lib/node_modules" ps}
'';
testPackages =
{
rule,
testFile,
pname ? rule.pname,
plugin ? null,
}:
let
ruleName = lib.removePrefix "textlint-rule-" rule.pname;
isPreset = lib.hasPrefix "preset-" ruleName;
ruleName' = lib.removePrefix "preset-" ruleName;
pluginName = lib.removePrefix "textlint-plugin-" plugin.pname;
args =
"${testFile} ${if isPreset then "--preset" else "--rule"} ${ruleName'}"
+ lib.optionalString (plugin != null) " --plugin ${pluginName}";
in
{
"${pname}-test" =
runCommand "${pname}-test"
{
nativeBuildInputs = [
(textlint.withPackages [
rule
plugin
])
];
}
''
grep ${ruleName'} <(textlint ${args}) > $out
'';
};
tests = lib.mergeAttrsList (
map (package: package.tests) [
textlint-plugin-latex2e
textlint-rule-abbr-within-parentheses
textlint-rule-alex
textlint-rule-common-misspellings
textlint-rule-diacritics
textlint-rule-en-max-word-count
textlint-rule-max-comma
textlint-rule-no-start-duplicated-conjunction
textlint-rule-period-in-list-item
textlint-rule-preset-ja-technical-writing
textlint-rule-stop-words
textlint-rule-terminology
textlint-rule-unexpanded-acronym
textlint-rule-write-good
]
);
};
meta = {
description = "The pluggable natural language linter for text and markdown";
homepage = "https://github.com/textlint/textlint";
changelog = "https://github.com/textlint/textlint/blob/${src.rev}/CHANGELOG.md";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ natsukium ];
mainProgram = "textlint";
};
}

View File

@ -0,0 +1,19 @@
diff --git a/package.json b/package.json
index 9dd7fdc6..c5e74f88 100644
--- a/package.json
+++ b/package.json
@@ -56,12 +56,8 @@
"trailingComma": "none"
},
"workspaces": [
- "packages/*",
- "examples/*",
- "packages/@textlint/*",
- "packages/textlint-scripts/examples/*",
- "test/*",
- "website"
+ "packages/textlint",
+ "packages/@textlint/*"
],
"packageManager": "npm@9.9.2"
}

View File

@ -137,6 +137,20 @@ mapAliases {
swagger = throw "swagger was removed because it was broken and abandoned upstream"; # added 2023-09-09
tedicross = throw "tedicross was removed because it was broken"; # added 2023-09-09
inherit (pkgs) terser; # Added 2023-08-31
inherit (pkgs) textlint; # Added 2024-05-13
textlint-plugin-latex = throw "textlint-plugin-latex was removed because it is unmaintained for years. Please use textlint-plugin-latex2e instead."; # Added 2024-05-17
inherit (pkgs) textlint-rule-abbr-within-parentheses; # Added 2024-05-17
inherit (pkgs) textlint-rule-alex; # Added 2024-05-16
inherit (pkgs) textlint-rule-common-misspellings; # Added 2024-05-25
inherit (pkgs) textlint-rule-diacritics; # Added 2024-05-16
inherit (pkgs) textlint-rule-en-max-word-count; # Added 2024-05-17
inherit (pkgs) textlint-rule-max-comma; # Added 2024-05-15
inherit (pkgs) textlint-rule-no-start-duplicated-conjunction; # Added 2024-05-17
inherit (pkgs) textlint-rule-period-in-list-item; # Added 2024-05-17
inherit (pkgs) textlint-rule-stop-words; # Added 2024-05-17
inherit (pkgs) textlint-rule-terminology; # Added 2024-05-17
inherit (pkgs) textlint-rule-unexpanded-acronym; # Added 2024-05-17
inherit (pkgs) textlint-rule-write-good; # Added 2024-05-16
thelounge = pkgs.thelounge; # Added 2023-05-22
three = throw "three was removed because it was no longer needed"; # Added 2023-09-08
inherit (pkgs) titanium; # added 2023-08-17

View File

@ -220,20 +220,6 @@
, "tailwindcss"
, "teck-programmer"
, "tern"
, "textlint"
, "textlint-plugin-latex"
, "textlint-rule-abbr-within-parentheses"
, "textlint-rule-alex"
, "textlint-rule-common-misspellings"
, "textlint-rule-diacritics"
, "textlint-rule-en-max-word-count"
, "textlint-rule-max-comma"
, "textlint-rule-no-start-duplicated-conjunction"
, "textlint-rule-period-in-list-item"
, "textlint-rule-stop-words"
, "textlint-rule-terminology"
, "textlint-rule-unexpanded-acronym"
, "textlint-rule-write-good"
, "thelounge-plugin-closepms"
, "thelounge-plugin-giphy"
, "thelounge-plugin-shortcuts"

File diff suppressed because it is too large Load Diff