About

What is Thing Enumerator?

Thing Enumerator is a control system for rudimentary objects called entries. It represents collections of entries in a tabular format, with each row representing one entry and each cell one attribute on that entry.

What is Thing Enumerator any good for?

Well, OK, kind of a weird ask tonally. But it's great for visually modeling entities with relationships that might be difficult to convey with a simpler spreadsheet system.

Take this example:

People

Name Color Relationships
Wren W. Wren W. Vince O. Wren W. Char R.
Vince O. Wren W. Vince O. Vince O. Ben E. Vince O. Ben E. Jay C. Char R.
Ben E. Vince O. Ben E. Vince O. Ben E. Jay C. Char R.
Jay C. Jay C. Char R. Vince O. Ben E. Jay C. Char R.
Char R. Jay C. Char R. Vince O. Ben E. Jay C. Char R. Wren W. Char R.

Relationships

Participants Type
Wren W. Vince O. Neighbors
Vince O. Ben E. Unclear
Jay C. Char R. Dating
Vince O. Ben E. Jay C. Char R. In-group
Wren W. Char R. Enemies
Nobody

Modeling this kind of relationship in common spreadsheet software can be tedious, and it is often unfeasible or impossible to view several tables at once, which blows. So in Thing Enumerator projects, all tables are displayed at once.

Instructions

The instructions will be divided into three sections:

  1. Intratabular, that is, within the table;
  2. Intertabular, that is, across tables;
  3. Extratabular, that is, beyond the tables.

Also see Appendix A for text formatting matters.

I. Intratabular (table mechanics and actions)

A table has two characteristics of note: the schema and entries.

Schema

The schema is the list of fields represented on the table. Each field has an associated name and type. The following is the schema of the People table above:

Name: Text Color: Color Relationships: Entries from Relationships

The full selection of types supported by Thing Enumerator is listed below.

Name Description Example
Text A line of text Hello World ... Hello World
Long text Multi-line text

I love text formatting!

  • Watch me
  • Format text
  • Expertly
  • See Appendix A for a full list of text formatting techniques.
    Color A web color
    Entry from table* A pointer to an entry from table (or no pointer) - see Section II Wren W.
    Entries from table* A collection of pointers to an entry from table - see Section II Vince O. Ben E. Jay C. Char R.

    * Note: a table may never reference its own entries, i.e., these types must reference a table other than the one in whose schema they are present. (Recursive constructions are technically permitted, but there is little to be gleaned from these: undefined)

    Entries

    An entry in a table is one object whose contents follow the table's schema. A table may have any number of entries which will be displayed as rows.

    Table actions

    Action Process
    Create a table
    • Click on the add table button on the sidebar
    • Choose a preliminary table name and schema
    • Click on add table
    Rename a table*
    • Click on the table's name
    • Enter the new name
    Move a table
    • Click and drag the table's name to a new location
    Delete a table*
    • Click on the button next to the table's name
    Create a field
    • Click on the button next to the table's name
    • Enter the desired name and type
    Rename a field*
    • Click on the field's name
    • Enter the new name
    Change a field's type This cannot be done directly. Delete the field and create a new field with the desired type.
    Delete a field*
    • Click on the field's name
    • Click on the button next to the field's name
    Create a new row
    • Click on the field's name
    • Click on the button button on the right side of the desired row
    Delete a row
    • Click on the button on the right side of the undesired row
    Edit a table cell value
    • Click on the cell
    • Enter the new value

    * Note: The first table, Colors, and its first field, Color, cannot be renamed or deleted.

    II. Intertabular (references)

    We have seen that entries are able to store references to other entries (that is, the Entry-from-table and Entries-from-table types). We will now explore this topic in a bit more depth.

    How references work

    While displayed as an arcane miniature version of the referenced entry (or entries), reference types are effectively stored as a pointer to another entry (or a collection of pointers, in the entries case.) It is important to note that the scope of references is to entire entries rather than individual cells of a table. Within a referenced entry, the first field is treated as the "index" and is displayed as the object of reference.

    In the Relationships table above, the value Ben E. -- a reference to the third entry of the People table -- is stored as a construction meaning "row #3." This means that if row #3 of the People table is altered, this reference will update to match the new entry. If row #3 is deleted, then the reference will take on the appearance of the new third entry of the People table: Jay C.. As long as there is a row #3 to reference, its contents will be displayed here; if there is no longer such a row #3, the reference will be displayed as undefined.

    Glossary of reference type visuals

    The following table lists the various appearances of references and their meanings. Within this table, a reference to an entry is synonymous with a reference to a reference to that entry, a reference to a reference to a reference to that entry, etc.

    Item Meaning(s) Example Meaning of example
    Grey margin containing grey swatch and "undefined"
    • A reference to an entry which no longer exists.
    • A reference to an entry with no first column.
    • A reference to itself.
    undefined A reference to the sixth entry in the People table, which no longer exists.
    Colored margin containing colored swatch and text A reference to a entry whose first (index) field is of type text or long-text. (The color is taken from the entry's leftmost color-type or reference-to-color-type field, or if there is no such field, the corresponding color from the Colors table.) Ben E. A reference to the third entry in the People table, where the first (index) field is of type text and reads "Ben E." and the leftmost color field is .
    Colored margin containing colored swatch A reference to an entry whose first (index) field is of type color. The color is taken from the referenced entry. A reference to the ninth entry in the Colors table, where the first (index) field is of type color and reads .
    Grey margin containing grey swatch and "empty" A reference to an empty collection of references. empty A reference to the sixth entry in the People table, which is empty.
    Colored margin containing a colored swatch and a sequence of several of the above A reference to a collection of references. (The color is taken as the average color of the margins and inner swatches of all contained references.) Vince O. Ben E. A reference to the second entry in the Relationships table, where the first (index) field is of type "entries in People" and references the second ( Vince O.) and third ( Ben E.) of People.
    Sequence of several of the above A collection of references. undefined A collection of references to the Colors table, respectively referencing its third (), fifth ( ), and nonexistent tenth ( undefined) entries.

    III. Extratabular (project-scope)

    The Thing Enumerator also uses a save system accessible through the Projects menu. To access this menu, click on the projects button on the sidebar.

    Projects on this site are saved to local storage, meaning they are persistent across sessions and stored in your browser rather than to this site. (Settings in Settings are also stored this way.) To access any of your previous projects, use the Open button in the Projects menu.

    To transfer projects across browsers or across devices, or to send your projects to others, you can also utilize Import project from JSON and Export project as JSON .

    Appendix A. Text Formatting

    The following table lists text formatting syntaxes for the text and long-text entry types.

    Type Syntax Example Result
    Italic *text* Hello *World* Hello World
    Underline _text_ Hello _World_ Hello World
    Superscript ^text^ Hello ^World^ Hello World
    Color @alias Hello @Orange Hello Orange
    @alias"text" Hello @orange"World" Hello World
    Highlight @alias[text] Hello @orange[World] Hello World
    Code line `text` Hello `World` Hello World
    Heading # text Hello
    # World
    Hello

    World

    Blockquote > text Hello
    > World
    Hello
    World
    Bulleted list - text
      - text
        - text
    etc.
    - He
      - llo
      - wo
        - rld
    • He
      • llo
      • wo
        • rld
    Code block ```text``` Hello
    ```World```
    Hello World
    Escape \specialcharacter Hello \*World\* Hello *World*

    Note: all instances of "alias" refer to any of the newline-separated entries in the second field of the Colors table, e.g. Red, Yellow, or Purple. Case does not matter.

    Appendix B. Contact

    If something's not working right, or you have a question or a suggestion you'd like to express regarding this project, you can click here to visit the Neocities profile on which this project is stored, and you can leave me a comment there. Honestly though odds are if you're using this you know me, so you can just text me too.

    Settings