Your premiere tool for creating and managing tabular data in Obsidian.md
NOTE: This plugin is no longer maintained. If you would like to continue development, please fork the project and make your own version.
Notion-Like Tables is your premiere tool for creating and managing tabular data in Obsidian.md.
Notion-Like Tables now support usage of all HTML entities. This means that previously broken entities, such as emoji icons are now fully supported. Obsidian direct links and direct link aliases are now functional.
Live preview is now fully functional. You may use Notion-Like Tables in editing mode and have them sync with the table rendered in reading mode. If you edit a table in reading mode, it will be synced to your live preview table.
Multiple tables can now be used in your markdown files. You may also display the same table across multiple files through the new system of NLT Code Blocks
.
Multi-tag support has been added, as well as support for dark colors for our dark theme users.
Various other bug fixes and optimizations have been added. See: Release 5.0.0 for more details.
🔥 WARNING: ALL PREVIOUSLY CREATED TABLES MUST BE MIGRATED TO 5.0.0 🔥
You will also lose your previous data.json
settings for this plugin. This is necessary as the plugin now uses a different structure for its settings data. You will NOT lose any markdown data or notes
For migrating to NLT 5.0.0
from NLT 4.3.1
or less, please use the migration tool
Community plugins
Restricted mode
and click Turn off
to allow community pluginsBrowse
and search for Notion-Like Tables
Install
then Enable
To quickly make a table you can use the add table command.
ctrl + p
(Windows) or cmd + p
(Mac) on your keyboard and search Add table
. An NLT code block will be inserted into your markdown file.To render a table, you need to place an NLT Code Block into your markdown file.
Example NLT Code Block
```notion-like-tables
table-id-123456
```
The code block begins with notion-like-tables
directive.
The inside of the code block includes a table id. The table id is of the format: table-id-<my-specifier>
. A specifier can only contain valid id characters.
Once you add the block, a table definition file
will automatically be created, and your table will render.
A table definition file contains the table markdown for a Notion-Like Table. It also contains specific ids that are needed to maintain the integrity of the table in the React application.
Example table definition file
---
columnIds: ["column-id-Zet1HHJm"]
rowIds: ["row-id-BtUYxXIV", "row-id-A6PfNOAV"]
---
| New Column |
| ---------- |
| |
The columnIds
and rowIds
keys are included in a frontmatter declaration after which the table markdown is declared. Both keys are connected to an array of ids.
columnIds
array must match the number of columns in the markdown tablerowIds
array must match the number of rows in the markdown table
Notion Like Tables uses the MarkdownCodeBlockProcessor
to replace an NLT code block in your markdown file with a React app generated from your table definition file.
All table definition files are stored in a folder called _notion-like-tables
.
Table ids, row ids, and column ids may only contain valid id characters:
a-Z
- Any lowercase lettersA-Z
- Any uppercase letters0-9
- Any numbers-
- Hyphens_
- UnderscoresPlease make sure that you have read NLT Code Blocks and [Table Definition Files] sections(#table-definition-files) before continuing.
To make code blocks for your previous tables:
ctrl + p
(Windows) or cmd + p
(Mac) on your keyboard and search for Migration tool
(alternatively you can also use the shortcut cmd + shift + m
)Generate code block
. A table definition file will be created for your migrated table.Copy
buttonctrl + shift + +
(Windows) (Press + once)cmd + shift + +
(Mac)ctrl + shift + \
(Windows)cmd + shift + \
(Mac)ctrl + shift + enter
(Windows)cmd + shift + enter
(Mac)Click on a header name to view the header menu. In the header menu, you can rename the header, sort your column values or change the column content type.
To edit a cell, just click on it. An textarea or menu will appear which will allow you to edit the cell's content. Make the necessary changes and then click outside the box or press enter to save the text. Notion-Like tables will automatically handle updating your markdown.
Text can be rendered in cells that are in a column with the text
content type selected.
Numbers can be rendered in cells that are in a column with the number
content type selected. A valid number only includes digits 0-9
Tags can be rendered in cells that are in a column with the tag
content type selected.
Tags have a special notion-like menu that will appear. Tags are scoped to each column of a table. You can type text to filter existing tags and select one. You can also create a new tag by typing text and clicking "Create New" or pressing enter.
Multi-tag cells offer the same as regular tag cells but allow multiple tags. If you would like to manually add multiple tags to the markdown file, please make sure that you separate each tag with a comma and no space.
tag1,tag2,tag3
Once a tag has been added to a cell, you click on any cell that has that tag and then click on the horizontal menu button to the side of the tag name. A menu will then pop up through which you can change the tag color.
Dates can be rendered in cells that are in a column with the date
content type selected. To render a date please follow the format yyyy/mm/dd
in your markdown.
Checkboxes can be rendered in cells that are in a column with the checkbox
content type selected. To render a checkbox, add two square brackets with a space [ ]
for unchecked or two square brackets surrounding an x [x]
for checked.
Notion-Like Tables supports all markdown that is found in Obsidian.md
Right-click a cell and its content will be added to your clipboard.
NOTE: The table must be in focus for this to work. Click on the table to focus on it.
All cells have an option called Auto Width
. Auto width means that the column will automatically resize to the max-content
of the HTML rendered in the cell.
This feature can be enabled by clicking on a header, clicking "Edit" and then clicking the toggle for Auto Width
.
When auto width is disabled, you have the option to manually size a column. You can do this by hovering your mouse over a column's right border. Your cursor will then show a resize indicator. You may then click and drag to resize the column to your desired size.
With auto width disabled, you have the option to set the behavior of the text on overflow. This property is known as Wrap Overflow
.
When wrap overflow is enabled the text will wrap once it reaches the width of the column. This is useful for long blocks of text.
When wrap overflow is disabled the text will cut off at the column width and create an ellipsis (...)
The table definition folder is the folder that contains the table definition files for all tables in your vault. The default value is _notion-like-tables
. You may change this value to any valid folder name. If the folder has not yet been created, the folder will be created on the first table load.
There is currently no support for undoing changes. This is part of the roadmap for future releases.
Please override the following classes for custom theme development.
Class | Element | Usage |
---|---|---|
.NLT__button |
button |
|
.NLT__table |
table |
|
.NLT__tr |
tr |
|
.NLT__th |
th |
Text styles |
.NLT__th-content |
div |
Padding |
.NLT__td |
td |
Text styles |
.NLT__td-container |
div |
Padding |
If you find a bug or would like to suggest a feature, please open an issue here.