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 🙏

© 2024 – Pkg Stats / Ryan Hefner

reticule

v0.1.6

Published

A new way to write and explore mathematical texts.

Downloads

4

Readme

reticule npm version

A new way to write and explore mathematical texts.

Animation

Getting Started

Table of Contents

Installation

Make sure you have Node.js and npm installed. To install reticule, run:

npm install -g reticule

Book Structure

To create a book, create a folder with the following text files:

root/
├ book.json
└ toc.md

Meta Information

book.json contains all meta-information regarding your book, such as the title and the author. toc.md contains the table of contents of your book. It defines all sections and links to the corresponding files.

book.json contains an JSON object with the following properties:

Property | Description :----------------------|:--------------------------------------- title * | The book title. No markdown allowed. author * | The book author(s). Markdown allowed. accent | Defines an accent color in hex. Default: #327CCB lang | Defines the book language. Affects CSS hyphenation. Default: en github | The link to a GitHub repository. If defined, every page has a 'GitHub' and an 'Edit page' link. disqus | The shortname of your Disqus website. Provides Disqus comment system integration if defined. localization | An object containing alternate strings. Translatable strings: ¶, $\square$, Proof, Table of Contents, Index, GitHub, Edit page, Generated by reticule

* Required properties

Example

{
    "title": "Étale Kohomologie",
    "author": "Yichuan Shen",
    "lang": "de",
    "localization": {
        "Proof": "Beweis",
        "Table of Contents": "Inhaltsverzeichnis",
        "Edit page": "Seite bearbeiten",
        "Generated by reticule": "Erstellt mit reticule",
        "$\\square$": "Q.E.D."
    }
}

Book Sections

For each section create a folder with a tags.md file:

root/
├ section1/
│ └ tags.md
├ section2/
│ └ tags.md
├ subsection/
| └ section3/
│   └ tags.md
│
├ book.json
└ toc.md

Also, provide the book structure in toc.md as an unordered list:

* [Section 1](section1/)
* [Section 2](section2/)
* Subsection
    * [Section 3](subsection/section3/)

Don't use the folder name index as it's reserved for the automatically generated index.

Tags

Tags are the building blocks of a reticule. A tag consists of two parts: An assertion and an optional proof. To create a tag, choose a unique tag id, e.g. #0ABC or #1ABC, and write the content:

#0ABC

There are infinitely many primes.

#1ABC:Dirichlet's Theorem

Let `a, b` be coprime numbers. There are infinitely many primes
congruent `a` modulo `b`.

Tag ids start with a hash symbol # followed by alphanumeric characters or the hyphen -. You can name the tag by appending a colon and a name to the id. To provide a proof, add a horizontal line:

#0ABC:Theorem

There are infinitely many primes.

---

Suppose there are only finite primes `p_1,\ldots,p_n`. Observe that
`p_1\cdot p_2\cdots p_n + 1` has a prime divisor `p`, distinct from
`p_1,\ldots,p_n`.

Markdown is used for formatting. Code spans and code blocks are converted into math environments and rendered by MathJax and XyJax.

To link to other tags, use a markdown link and and the tag id as the source:

#0ABC:Theorem

There are infinitely many primes.

---

Putting `a = 1` and `b = 2` in [~](#1ABC) yields infinitely many
odd primes.

Creating Index

To add a keyword to the index, just append the keyword, wrapped in ~~, anywhere in the tag:

#1ABC:Dirichlet's Theorem

Let `a, b` be coprime numbers. There are infinitely many primes
congruent `a` modulo `b`. ~~Dirichlet's Theorem~~

You can add a context to a keyword by appending | and the context to the keyword:

#1ABC:Dirichlet's Theorem

Let `a, b` be coprime numbers. There are infinitely many primes
congruent `a` modulo `b`. ~~Dirichlet's Theorem|Number Theory~~

TeX Macros

You can define custom TeX macros that can be used throughout your book. Simply add a file named macros.tex with the user-defined macros to the root folder:

root/
├ book.json
├ toc.md
└ macros.tex

Compilation

To compile a reticule book into a website, navigate to your book directory and simply run:

reticule