Skip to content

Instantly share code, notes, and snippets.

@abernier
Last active September 18, 2023 18:30
Show Gist options
  • Save abernier/e93dd8f345cba61d4dab1dafb7282a45 to your computer and use it in GitHub Desktop.
Save abernier/e93dd8f345cba61d4dab1dafb7282a45 to your computer and use it in GitHub Desktop.
lorem-ipsum scriptkit

Generate N paragraphs | sentences | words of lorem-ipsum text:

image

It supports --format html and --copy flags with .

// Name: Lorem ipsum
import "@johnlindquist/kit";
import { loremIpsum, ILoremIpsumParams } from "lorem-ipsum";
let ret: ReturnType<typeof loremIpsum>;
const DEFAULTS = {
count: 1,
};
let count: ILoremIpsumParams["count"];
let units: ILoremIpsumParams["units"];
const flags = {
html: {
name: "html",
shortcut: "cmd+h",
},
copy: {
name: "copy",
shortcut: "cmd+c",
},
};
function myLoremIpsum({ ...args }: Parameters<typeof loremIpsum>[0] = {}) {
const format = flag?.html ? "html" : "plain";
// say(`generating ${count} ${units} of ${format} text`);
return loremIpsum({ count, units, format, ...args });
}
await arg(
{
placeholder: String(DEFAULTS.count),
description: `Generate lorem ipsum text...`,
flags,
},
(input) => {
count = (input && Number(input)) || undefined;
return ["paragraphs", "sentences", "words"].map((el) => ({
name: el,
preview: () => {
units = el as ILoremIpsumParams["units"];
return myLoremIpsum();
},
}));
}
);
const loremText = myLoremIpsum();
if (flag?.copy) {
copy(loremText);
} else {
setSelectedText(loremText);
}
@abernier
Copy link
Author

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment