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

blog-tool

v1.0.1

Published

help to write blog with markdown & generate data like index/classification

Downloads

18

Readme

Blog Tool

a blog tool base on command line help you to manange you article data

Github

blog-tool

Install

    npm install blog-tool

install this package as global will be better

Usage

    blog-tool --help

Documentation

Dictionary

  • Base Path: The root folder for article data
  • Index File: A JSON file which records all article's index information, just store under Base Path
  • Articles Folder: A folder storage the article's source file, at the same level of Index File
  • Article File: A md fild which record the article text, at the path relative to Base Path as ./articles/${yyyy}/${MM}/${id}
  • Type: The top category for a article, which can only have one type
  • Tag: Attributes for a article, a article an have multiple tag
  • Date String: Date string, which can be parsed by new Date()

File Structure Of Base Path

.
├── articles
│   └── 2019
│       └── 12
│           ├── 1
│           │   └── article.md  
│           └── 2
│               └── article.md
└── index.json

Data Structure Of Index File

{
    "types": [ // type list
        {
            "id": 0,
            "name": "test" // name
        }
    ],
    "tags": [ // tag list
        {
            "name": "test", // name
            "id": 0
        }
    ],
    "articles": [ // article list
        {
            "id": 1,
            "name": "test2", // title
            "type": 0, // type
            "tag": [  //tage list
                0
            ],
            "path": "./articles/2019/12/1", // the path of article.md relative to base path, the rule is `./articles/${yyyy}/${MM}/${id}`
            "auther": "", // auther
            "create": 1577699385273, // create time
            "update": 1577699385462, // update time
            "status": 0 // 0: editing, 1: published, 2: deleted
        }
    ]
}

Command

The sub command of blog-tool is listed below

init

Init a folder for article data

param

  • path: Set the Base Path string to init article data, alias 'p', default './'

add

Add a new article

param

  • path: Set the Base Path string to init article data, alias 'p', default './'
  • name: Set the title of article, alias 'n', required
  • date: Set the create Date String, alias 'd'
  • auther: Set the auther string of article, alias 'a'

update

Update some info of one article, set update time automatically

param

  • path: Set the path string which contain Article File to update article data, alias 'p', default './'
  • name: Reset the title of article, alias 'n'
  • auther: Reset the auther string of article, alias 'a

delete

Delete a atricle or mark it's status as deleted

param

  • path: Set the path string which contain Article File to delete article data, alias 'p', default './'
  • force: Make choice to delete article data or marke it's status as deleted, alias 'f', default false

attr

Choice and manage article attributes like Type and Tag in a Base Path, you can list/rename/delete them, independent params can only be used independently

param

  • path: Set the Base Path string, alias 'p', default './'
  • list: Show the list of target group, alias 'l', default false
  • rename: Choice one item in target group to rename it, alias 'r', default false
  • delete: Choice part of target group to delete them, alias 'd', default false

search

Search atricle with selected attributes

param

  • path: Set the Base Path string, alias 'p', default './'
  • tag: Add substr of tag to search condition, alias 'ta'
  • type: Add substr of type to search condition, alias 'ty'
  • name: Add substr of name to search condition, alias 'n'
  • auther: Add substr of auther to search condition, alias 'a'
  • earlistcreate: Add earlist create Date String to search condition, alias 'ec'
  • latestcreate: Add latest create Date String to search condition, alias 'lc'
  • earlistupdate: Add earlist update Date String to search condition, alias 'eu'
  • latestupdate: Add latest update Date String to search condition, alias 'lu'
  • stataus: Add substr of status to search condition, alias 's'