outline-numbering

3.0.0 • Public • Published

outline-numbering

number hierarchical documents like Section 1(c)(iv)

outline-numbering is part of the abstract-numbering family of packages.

var outline = require('outline-numbering')
var assert = require('assert')

The package is a numbering scheme as described by abstract-numbering.

Outline Style

assert.deepEqual(
  outline([
    {
      series: { number: 1, of: 1 },
      element: { number: 1, of: 1 }
    }
  ]),
  'Section\u00a01'
)

assert.deepEqual(
  outline([
    {
      series: { number: 1, of: 2 },
      element: { number: 1, of: 1 }
    }
  ]),
  'Section\u00a0A-1'
)

assert.deepEqual(
  outline([
    {
      series: { number: 1, of: 1 },
      element: { number: 1, of: 1 }
    },
    {
      series: { number: 1, of: 1 },
      element: { number: 1, of: 1 }
    }
  ]),
  'Section\u00a01(a)'
)

assert.deepEqual(
  outline([
    {
      series: { number: 1, of: 1 },
      element: { number: 1, of: 1 }
    },
    {
      series: { number: 1, of: 1 },
      element: { number: 28, of: 28 }
    }
  ]),
  'Section\u00a01(ab)'
)

assert.deepEqual(
  outline([
    {
      series: { number: 1, of: 1 },
      element: { number: 1, of: 1 }
    },
    {
      series: { number: 1, of: 1 },
      element: { number: 1, of: 1 }
    },
    {
      series: { number: 1, of: 1 },
      element: { number: 1, of: 1 }
    }
  ]),
  'Section\u00a01(a)(i)'
)

assert.deepEqual(
  outline([
    {
      series: { number: 1, of: 1 },
      element: { number: 1, of: 1 }
    },
    {
      series: { number: 1, of: 1 },
      element: { number: 1, of: 1 }
    },
    {
      series: { number: 1, of: 1 },
      element: { number: 1, of: 1 }
    },
    {
      series: { number: 1, of: 1 },
      element: { number: 1, of: 1 }
    }
  ]),
  'Section\u00a01(a)(i)(A)'
)

assert.deepEqual(
  outline([
    {
      series: { number: 1, of: 1 },
      element: { number: 1, of: 1 }
    },
    {
      series: { number: 1, of: 1 },
      element: { number: 1, of: 1 }
    },
    {
      series: { number: 1, of: 1 },
      element: { number: 1, of: 1 }
    },
    {
      series: { number: 1, of: 1 },
      element: { number: 1, of: 1 }
    },
    {
      series: { number: 1, of: 1 },
      element: { number: 1, of: 1 }
    }
  ]),
  'Section\u00a01(a)(i)(A)(I)'
)

assert.deepEqual(
  outline([
    {
      series: { number: 1, of: 1 },
      element: { number: 1, of: 1 }
    },
    {
      series: { number: 1, of: 1 },
      element: { number: 1, of: 1 }
    },
    {
      series: { number: 1, of: 1 },
      element: { number: 1, of: 1 }
    },
    {
      series: { number: 1, of: 1 },
      element: { number: 1, of: 1 }
    },
    {
      series: { number: 1, of: 1 },
      element: { number: 1, of: 1 }
    },
    {
      series: { number: 1, of: 1 },
      element: { number: 1, of: 1 }
    }
  ]),
  'Section\u00a01(a)(i)(A)(I)(a)'
)

Short Forms

assert.deepEqual(
  outline(
    [
      {
        series: { number: 1, of: 1 },
        element: { number: 1, of: 1 }
      }
    ],
    true
  ),
  '1.'
)

assert.deepEqual(
  outline(
    [
      {
        series: { number: 1, of: 1 },
        element: { number: 1, of: 1 }
      },
      {
        series: { number: 1, of: 1 },
        element: { number: 1, of: 1 }
      }
    ],
    true
  ),
  '(a)'
)

/outline-numbering/

    Package Sidebar

    Install

    npm i outline-numbering

    Weekly Downloads

    568

    Version

    3.0.0

    License

    BlueOak-1.0.0

    Unpacked Size

    7.52 kB

    Total Files

    4

    Last publish

    Collaborators

    • kemitchell