npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

hili-lipsum

v4.2.0

Published

Hilichurlian language lorem ipsum generator and web scraper

Readme

hili-lipsum

A Hilichurlian lorem ipsum generator and dictionary data fetcher for the Genshin Impact Fandom Wiki's Hilichurlian language.

Generate random Hilichurlian sentences from a locally stored dictionary, or fetch the currently available Hilichurlian vocabulary from the Genshin Impact Fandom MediaWiki Action API.

🎯 Features

  • Generate random Hilichurlian lorem ipsum text
  • Generate Hilichurlian sentences with a configurable word count
  • Fetch Hilichurlian vocabulary from the Genshin Impact Fandom MediaWiki API
  • Scrape Hilichurlian vocabulary from web pages similar to https://genshin-impact.fandom.com/wiki/Hilichurlian/Lexicon if allowed
  • Save scraped vocabulary as JSON
  • Use a local JSON dictionary without network access
  • Use the library programmatically through Hilichurl and Hilipsum
  • Run through Node.js, npm, or Docker

🆕 CLI Available

  • Run via npx (no installation required)
    • Requirements: NodeJS LTS v24 or later
    • Run npx hili-lipsum --help
    • Generate Hilichurlian sentence: npx hili-lipsum hipsum -w 25
    • Download current data: npx hili-lipsum scrape
  • Docker image
    • A Docker image is available at https://hub.docker.com/r/weaponsforge/hili-lipsum

Content

📊 Data Source

By default, npm run scrape retrieves the Hilichurlian Lexicon through the Genshin Impact Fandom MediaWiki Action API.

The source is configured using:

  • MEDIAWIKI_API_ROOT — MediaWiki API endpoint
  • MEDIAWIKI_PAGE — page name to retrieve

If the configured MEDIAWIKI_API_ROOT is not a MediaWiki API-compatible endpoint, the scraper can also process HTML pages with a structure similar to the Hilichurlian Lexicon.

🧩 Data Structure

Hilichurlian data has the following format and structure:

| Key | Type | Description | | --- | --- | --- | | word | string | Hilichurlian (singular or plural) word | | eng | string | English translation of the Hilichurlian word | | cn | string | null | Chinese player analysis translation of the Hilichurlian word | | notes | string | Notes and additional information about the Hilichurlian word |

Example

{
  "metadata": {
    "source": "https://genshin-impact.fandom.com/api.php?action=parse&format=json&formatversion=2&prop=text&page=Hilichurlian%2FLexicon",
    "title": "Hilichurlian Language Dictionary",
    "description": "Dictionary of Hilichurlian words and their English translations extracted from the source URL.",
    "date_created": "2026-08-13T12:20:02.351Z"
  },
  "data": [
    {
      "word": "da",
      "eng": "good/very good, affirmation, very (emphasis)",
      "cn": null,
      "notes": "Can be used as praise"
    },
    ...
  ]
}

Checkout the full web-scraped data in the /data/hilichurlianDB.json file for more information.

🤝 Contributing

We welcome contributions! Please see CONTRIBUTING.md for guidelines.

📋 Requirements

The project is developed and tested with:

  • Node.js 24.11.0
  • npm 11.6.1

🛠️ Installation

  1. Install the library. npm install hili-lipsum

  2. Create a .env file from the .env.example file. Use the default value for MEDIAWIKI_API_ROOT.

    | Variable Name | Description | | --- | --- | | MEDIAWIKI_PAGE | Genshin Impact Fandom MediaWiki page name of the Hilichurlian word dictionary at https://genshin-impact.fandom.com/wiki/Hilichurlian/Lexicon. Default value is Hilichurlian/Lexicon. | | MEDIAWIKI_API_ROOT | Genshin Impact Fandom MediaWiki API root URL. It allows fetching wiki page data programmatically for non-web browsers.Default value is: https://genshin-impact.fandom.com/api.php. You can reference other Hilichurlian words wiki or web page to scrape using MEDIAWIKI_PAGE, but be sure to make the necessary adjustments on the web scraping logic on /src/lib/classes/hilichurl/hilichurl.js - scrapewords() and formatwords() methods. |

🏗️ Class Usage

| Class| Purpose | | --- | --- | | Hilichurl | Base class for loading, fetching, writing and generating from a dictionary | | Hilipsum | Convenience subclass that automatically loads the bundled dictionary |

Hilichurl Class

The Hilichurl Class allows to specify a local JSON file to use as a word dictionary. The JSON file should follow the format in /data/hilichurlianDB.json

const { Hilichurl } = require('./src/lib/classes/hilichurl')
const path = require('path')

// Use the the following if installed via npm
// const { Hilichurl } = require('hili-lipsum')

const main = async () => {
  try {
    // Instantiate a new Hilichurl class with local JSON data
    const dataPath = path.join(__dirname, 'data', 'hilichurlianDB.json')
    const hilichurl = new Hilichurl(dataPath)

    // Load new local JSON data
    hilichurl.loadrecords(dataPath)

    // Generate a random-word sentence
    const sentence = hilichurl.lipsum(40)
    console.log(sentence)

    // Download and replace the current word dictionary
    await hilichurl.fetchrecords()

    // Write the word dictionary to a JSON file
    hilichurl.writerecords()
  } catch (err) {
    console.log(err.message)
  }
}

main()

Hilipsum Class

The Hilipsum class is a sub-class of Hilichurl. It automatically loads the local JSON word dictionary (/data/hilichurlianDB.json) on initialization.

const { Hilipsum } = require('./src/lib/classes/hilipsum')

// Use the the following if installed via npm
// const { Hilipsum } = require('hili-lipsum')

const hiLipsum = new Hilipsum()

// Generate a random hilichurlian sentence
console.log(hiLipsum.lipsum())

Convenience Functions

The following codes demonstrates using the hipsum() and scrape() functions using internal-declared Hilipsum and Hilichurl classes.

const { hipsum } = require("../src/scripts/hipsum/hipsum")
const { scrape } = require("../src/scripts/scrape/scrape")

// Use the the following if installed via npm
// const { hipsum, scrape } = require('hili-lipsum')

// Generate a 58-word random Hilichurlian sentence
hipsum(58)

// Fetch current available Hilichurlian data and
// write to a `/hilichurlianDB-<TIMESTAMP>.json` file
scrape()

🔷 TypeScript

hili-lipsum ships with bundled type declarations — no @types package needed.

import { Hilichurl, Hilipsum } from 'hili-lipsum'

const hiLipsum = new Hilipsum()
const sentence: string = hiLipsum.lipsum(40)

Type declarations are generated from JSDoc annotations in the source and are kept in sync automatically via the create:declaration script (see Available Scripts).

🔔 Disclaimer

hili-lipsum is an independent, fan-made project and is not affiliated with or endorsed by HoYoverse or the Genshin Impact Wiki. Hilichurlian vocabulary is sourced from the referenced public wiki/API.

🔍 References

Genshin Impact Fandom Wiki

  • Hilichurlian Lexicon Wiki [1]
  • MediaWiki API Docs [2]
  • MediaWiki API - Action API [3]
  • MediaWiki API - Parsing wikitext [4]
  • MediaWiki API Sandbox [5]

@weaponsforge 20220805