Nest multiple blocks inside lists of any kind of list (ordered, unordered, no marker, etc), or do away with list markers and use it like a repeater!

Overview

Super List Block

License

Super List Block

Nest multiple blocks inside lists of any kind of list (ordered, unordered, no marker, etc), or do away with list markers and use it like a repeater!

Description

A handy little block that can be used in a variety of ways. Use it to nest other blocks inside list items, to create simple grid layouts ( like a properly responsive pricing table, or a wrapping icon list), or other use cases I haven't yet thought of!

This block is very light on styles (and avoids unnecessary div soup!). It aims to provide you with as much flexibility as possible, so you can harness it to create the content structure and layout you like.

If you enjoy the block, please leave a review!

If you have a feature request, please create an issue in the GitHub repository.

If you need support, please use the support forum to reach out. 🆘

Key Features

  • Nest blocks inside ordered and unordered lists.
  • Nest blocks inside lists without any markers.
  • Let's you create single column content or grid like content with the horizontal orientation setting.
  • Supports native color, padding, and margin settings. 🎉
  • Has a handy add button in the toolbar of list items to easily add more items while you're in the flow.
  • Exposes the inner inserter with a clear text label for easy insertion.
  • Built entirely native WordPress Block Editor components
  • There is a pro version coming with even more features!

Requirements

  • WordPress 5.9+
  • PHP 7.0+
Comments
  • Add transform from core/list block

    Add transform from core/list block

    This PR addresses the feature request in #11 .

    The transform keeps the list block's type (ordered, unordered):

    list2superlist

    It also attempts to pass other attributes from the list block to each resulting paragraph, which allows for some things like Typography settings to come over. Unfortunately, the font family setting is currently still experimental and exists on the list block but not the paragraph block (???), but once it is supported it should come over.

    list2superlist-attributes

    I'm happy to try to attempt a similar transform from the columns block, maybe in a separate PR?

    opened by cr0ybot 13
  • Should build files be excluded from version control?

    Should build files be excluded from version control?

    The Situation

    I had never considered that someone else might want to contribute to the plugin, although I know it's a possibility and I have contributed to other plugins on occasion myself! To that end, if build files are committed then there will always be a conflict (if just of the date and time in the asset files), which will make merging more problematic.

    To Ponder

    So, should build files be excluded the way they are in Gutenberg? 🤔

    Process 
    opened by aurooba 2
  • Refactor tooling to take advantage of wp-scripts' new multiple block support

    Refactor tooling to take advantage of wp-scripts' new multiple block support

    Currently using a multiple entry custom webpack config setup. But I've tested in another project that the new wp-scripts feature for supporting multiple block is FLAWless. So should update tooling here to simplify things.

    Process 
    opened by aurooba 1
  • Change the display name to Superlist

    Change the display name to Superlist

    I was initially calling it Superlist and not Super List, and most people refer to it as Superlist as well. So should just change it, keep things streamlined. :)

    enhancement 
    opened by aurooba 1
  • Ability to hide list icons

    Ability to hide list icons

    A lot of the time lists that include other blocks in them will want to hide the list icon because the block is being used for semantic purposes. The ability to hide the list icons would be great.

    enhancement 
    opened by aurooba 1
  • Add theme.json support

    Add theme.json support

    Closes #8

    This is a pretty awesome PR, even if I do say so myself. There are a few different things happening here:

    • I've added link color support to both blocks
    • the list-item width setting no longer sets explicit inline size, and rather modifies a CSS Custom Property inline instead
    • there is theme.json support for not only the list-item width setting, but for all the settings the block supports, so any theme can set their own defaults for the Super List block.
      • this includes smart support for the orientation setting! if theme.json sets a default for the list orientation, it will be respected. So if a theme primarily wants to use Super List in horizontal mode, they can set that as their default so they don't keep having to switch it in every new block.
    • we've also got a handy dandy theme.json example in the block itself to make life easier for theme authors
    opened by aurooba 0
  • Add fix to ensure Super List is installable from the Block Library search

    Add fix to ensure Super List is installable from the Block Library search

    Currently block.json is not loaded dynamically when people install a block from the block library search. This means if there are items missing in index.js, it causes all sorts of issues. This has been reported and documented in the following issues in the Gutenberg repo:

    • https://github.com/WordPress/gutenberg/issues/38588
    • https://github.com/WordPress/gutenberg/issues/38494
    • https://github.com/WordPress/gutenberg/issues/38245

    In light of this information, this PR pulls all the metadata from block.json files and pops it into index.js

    opened by aurooba 0
  • Add Anchor Block Support and Vertical Alignment capability

    Add Anchor Block Support and Vertical Alignment capability

    Closes #5

    • This PR adds anchor support to both Super List and Super List Item block.
    • There is also a slight visual adjustment to the Super List block inserter, to make it a little smaller but still obvious and easy to click on.
    • This PR also adds the Vertical Alignment capability to the overall super list. It does not as of yet, allow you to control vertical alignment on individual Super List Items – that would be part of a larger conversation connected to this comment about layout capabilities.

    As far as the Vertical Alignment feature goes:

    This is ready and I've done some preliminary testing. But it needs to be tested a bit more to ensure there won't be that Block Recovery error on existing super lists. I've set it up so that the justification settings only add classes IF a justification is set, so theoretically that means there should be no errors on past blocks that don't have anything set. But I'd like to test it a bit more before merging.

    • [x] Test on online installations where I have the v0.1.0 installed to check if justification addition causes an error.
    opened by aurooba 0
  • Allow indentation for super lists nested inside a list item

    Allow indentation for super lists nested inside a list item

    Closes #15

    The following CSS adjustment has been made to the main super list block:

    /* allow indentation via padding to occur when a super list is nested
    inside a super list item, otherwise, remove the unnecessary padding-left. */
    :not(li) > ul.wp-block-createwithrani-superlist-block {
    	padding-inline-start: 0;
    	margin-inline-start: 0;
    	li {
    		flex: 1;
    	}
    }
    

    Basically, if a super list is the child of anything but an <li> element, the indentation through padding and margin is removed from the start of the block (in english, that would be on the left). So if the super list is the child of an <li> element, any indentation provided by wordpress, theme, or user is respected.

    opened by aurooba 0
  • Clarify Panel and List Item Max Width labels

    Clarify Panel and List Item Max Width labels

    Currently the panel is mistakenly named Repeater Settings, when in fact it should be List Settings. And Sub-item max-width, should be List-item max-width. In general the max-width setting needs improvement, but until then the label should still be corrected.

    Screen Shot 2022-02-04 at 6 44 18 PM
    opened by aurooba 0
  • Add typography support to Super List and Super List Item blocks

    Add typography support to Super List and Super List Item blocks

    Right now, the block doesn't inherently support typography. Being able to set typography options for the entire list, or the entire list-item would be super helpful and avoid manual fixing on a per nested-block basis whenever you need to change any typography settings.

    enhancement 
    opened by aurooba 0
  • Blocks are not properly registered using register_block_type and do not appear in block editor (for built plugin on wordpress.org/plugins)

    Blocks are not properly registered using register_block_type and do not appear in block editor (for built plugin on wordpress.org/plugins)

    Hi,

    I downloaded your plugin from the plugin directory this morning (I used wp-cli but that shouldn't affect it; it still fetches the plugin from https://downloads.wordpress.org/plugin/superlist-block.0.1.0.zip ) and activated it but I received the following notice in my terminal after installation signifying that the block wasn't properly registered.

    I'm not 100% sure, but I think the cause is that register_block_type is expecting a block.json file in the build/superlist directory and such a directory does not exist.

    I'm using Gutenberg 13.4.0; no other plugins installed. WP 6.0.0.

    PHP Notice: Function WP_Block_Type_Registry::register was called incorrectly. Block type names must contain a namespace prefix. Example: my-plugin/my-custom-block-type Please see Debugging in WordPress for more information. (This message was added in version 5.0.0.) in /path/to/my/wordpress_install/public_html/wp-includes/functions.php on line 5831 PHP Stack trace: PHP 1. {main}() /usr/local/bin/wp:0 PHP 2. include() /usr/local/bin/wp:4 PHP 3. include() phar:///usr/local/bin/wp/php/boot-phar.php:11 PHP 4. WP_CLI\bootstrap() phar:///usr/local/bin/wp/vendor/wp-cli/wp-cli/php/wp-cli.php:27 PHP 5. WP_CLI\Bootstrap\LaunchRunner->process($state = class WP_CLI\Bootstrap\BootstrapState { private $state = ['context_manager' => class WP_CLI\ContextManager { private $contexts = ['cli' => class WP_CLI\Context\Cli { }, 'admin' => class WP_CLI\Context\Admin { }, 'frontend' => class WP_CLI\Context\Frontend { }, 'auto' => class WP_CLI\Context\Auto { private $context_manager = ... }]; private $current_context = 'cli' }] }) phar:///usr/local/bin/wp/vendor/wp-cli/wp-cli/php/bootstrap.php:78 PHP 6. WP_CLI\Runner->start() phar:///usr/local/bin/wp/vendor/wp-cli/wp-cli/php/WP_CLI/Bootstrap/LaunchRunner.php:28 PHP 7. WP_CLI\Runner->load_wordpress() phar:///usr/local/bin/wp/vendor/wp-cli/wp-cli/php/WP_CLI/Runner.php:1235 PHP 8. require() phar:///usr/local/bin/wp/vendor/wp-cli/wp-cli/php/WP_CLI/Runner.php:1317 PHP 9. do_action($hook_name = 'init') /path/to/my/wordpress_install/public_html/wp-settings.php:598 PHP 10. WP_Hook->do_action($args = [0 => '']) /path/to/my/wordpress_install/public_html/wp-includes/plugin.php:476 PHP 11. WP_Hook->apply_filters($value = '', $args = [0 => '']) /path/to/my/wordpress_install/public_html/wp-includes/class-wp-hook.php:331 PHP 12. create_block_superlist_block_block_init('') /path/to/my/wordpress_install/public_html/wp-includes/class-wp-hook.php:307 PHP 13. register_block_type($block_type = '/path/to/my/wordpress_install/public_html/wp-content/plugins/superlist-block/build/superlist', $args = uninitialized) /path/to/my/wordpress_install/public_html/wp-content/plugins/superlist-block/superlist-block.php:29 PHP 14. WP_Block_Type_Registry->register($name = '/path/to/my/wordpress_install/public_html/wp-content/plugins/superlist-block/build/superlist', $args = []) /path/to/my/wordpress_install/public_html/wp-includes/blocks.php:393 PHP 15. _doing_it_wrong($function = 'WP_Block_Type_Registry::register', $message = 'Block type names must contain a namespace prefix. Example: my-plugin/my-custom-block-type', $version = '5.0.0') /path/to/my/wordpress_install/public_html/wp-includes/class-wp-block-type-registry.php:77 PHP 16. trigger_error($message = 'Function WP_Block_Type_Registry::register was called incorrectly. Block type names must contain a namespace prefix. Example: my-plugin/my-custom-block-type Please see Debugging in WordPress for more information. (This message was added in version 5.0.0.)', $error_type = 1024) /path/to/my/wordpress_install/public_html/wp-includes/functions.php:5831 PHP Notice: Function WP_Block_Type_Registry::register was called incorrectly. Block type names must contain a namespace prefix. Example: my-plugin/my-custom-block-type Please see Debugging in WordPress for more information. (This message was added in version 5.0.0.) in /path/to/my/wordpress_install/public_html/wp-includes/functions.php on line 5831 PHP Stack trace: PHP 1. {main}() /usr/local/bin/wp:0 PHP 2. include() /usr/local/bin/wp:4 PHP 3. include() phar:///usr/local/bin/wp/php/boot-phar.php:11 PHP 4. WP_CLI\bootstrap() phar:///usr/local/bin/wp/vendor/wp-cli/wp-cli/php/wp-cli.php:27 PHP 5. WP_CLI\Bootstrap\LaunchRunner->process($state = class WP_CLI\Bootstrap\BootstrapState { private $state = ['context_manager' => class WP_CLI\ContextManager { private $contexts = ['cli' => class WP_CLI\Context\Cli { }, 'admin' => class WP_CLI\Context\Admin { }, 'frontend' => class WP_CLI\Context\Frontend { }, 'auto' => class WP_CLI\Context\Auto { private $context_manager = ... }]; private $current_context = 'cli' }] }) phar:///usr/local/bin/wp/vendor/wp-cli/wp-cli/php/bootstrap.php:78 PHP 6. WP_CLI\Runner->start() phar:///usr/local/bin/wp/vendor/wp-cli/wp-cli/php/WP_CLI/Bootstrap/LaunchRunner.php:28 PHP 7. WP_CLI\Runner->load_wordpress() phar:///usr/local/bin/wp/vendor/wp-cli/wp-cli/php/WP_CLI/Runner.php:1235 PHP 8. require() phar:///usr/local/bin/wp/vendor/wp-cli/wp-cli/php/WP_CLI/Runner.php:1317 PHP 9. do_action($hook_name = 'init') /path/to/my/wordpress_install/public_html/wp-settings.php:598 PHP 10. WP_Hook->do_action($args = [0 => '']) /path/to/my/wordpress_install/public_html/wp-includes/plugin.php:476 PHP 11. WP_Hook->apply_filters($value = '', $args = [0 => '']) /path/to/my/wordpress_install/public_html/wp-includes/class-wp-hook.php:331 PHP 12. create_block_superlist_block_block_init('') /path/to/my/wordpress_install/public_html/wp-includes/class-wp-hook.php:307 PHP 13. register_block_type($block_type = '/path/to/my/wordpress_install/public_html/wp-content/plugins/superlist-block/build/superlist-item', $args = uninitialized) /path/to/my/wordpress_install/public_html/wp-content/plugins/superlist-block/superlist-block.php:30 PHP 14. WP_Block_Type_Registry->register($name = '/path/to/my/wordpress_install/public_html/wp-content/plugins/superlist-block/build/superlist-item', $args = []) /path/to/my/wordpress_install/public_html/wp-includes/blocks.php:393 PHP 15. _doing_it_wrong($function = 'WP_Block_Type_Registry::register', $message = 'Block type names must contain a namespace prefix. Example: my-plugin/my-custom-block-type', $version = '5.0.0') /path/to/my/wordpress_install/public_html/wp-includes/class-wp-block-type-registry.php:77 PHP 16. trigger_error($message = 'Function WP_Block_Type_Registry::register was called incorrectly. Block type names must contain a namespace prefix. Example: my-plugin/my-custom-block-type Please see Debugging in WordPress for more information. (This message was added in version 5.0.0.)', $error_type = 1024) /path/to/my/wordpress_install/public_html/wp-includes/functions.php:5831

    opened by skorasaurus 3
  • No marker style markup

    No marker style markup

    Thanks for great plugin! When I try set list as "No marker", container is changed from ul to div, but items are still li, which is not semantically correct, I think.

    opened by illycz 0
  • Change built-in support implementation to honour WordPress implementation

    Change built-in support implementation to honour WordPress implementation

    Test that setting link, colour, font, etc through the block area works. Remove CSS Properties around it from the custom area because although it allows theme defaults, it messes with user customization, because turns out CSS Custom Properties don't fall back to the last declaration, they always fall back to the computed value of the parent which is..deeply nonsensical, but there you go.

    bug 
    opened by aurooba 0
  • Change List Orientation label and icons

    Change List Orientation label and icons

    The term List Orientation, while sufficient for its current capabilities, doesn't do a good job of leaving room for more list styles. In addition, the use of the arrow icons is vague at best.

    I'm proposing two things here:

    1. List Orientation be renamed to List Style, and changing the current List Style to List Type or something else
    2. Either replacing the arrow icons with text or adding the text alongside the icons for clearer and better representation.

    This will likely involve deprecating some attributes, which means confirming and checking that deprecation actually works.

    enhancement 
    opened by aurooba 0
  • Add Background Image Support

    Add Background Image Support

    Often times, content grids have background images. It'd be nice if the plugin supported background images as well. Unsure at this time if this is a feature better put in pro. But for now, proposing it for the free plugin.

    enhancement 
    opened by aurooba 1
  • WIP: Add inline documentation

    WIP: Add inline documentation

    Closes #28

    Adds helpful inline documentation throughout the plugin to help future folks (future me, or future contributors) understand what's going on.

    opened by aurooba 0
Owner
Rani
Rani
Marker animation jQuery plugin

jQuery Marker Animation Read this in other languages: English, 日本語. jQuery plugin to add under line animation like highlighter. Demonstration Table of

Technote 12 Nov 8, 2022
An obsidian plugin that allows code blocks executed interactively in sandbox like jupyter notebooks. Supported language rust、kotlin、python、Javascript、TypeScript etc.

Obsidian Code Emitter This plugin allows code blocks executed interactively like jupyter notebooks. Currently, support languages: Rust Kotlin JavaScri

YiiSh 38 Dec 28, 2022
The NEST Prize Bot is a tool for the activity of the NEST community.

NEST Prize Bot The NEST Prize Bot is a tool developed by our team for the activity of the NEST community. It can record the receipt of Prize and expor

NEST Protocol 403 Dec 20, 2022
pre-calculated list of similar Persian words ordered by rating and best match

similar-persian-words pre-calculated list of similar Persian words ordered by rating and best match. Install npm: npm install similar-persian-words Us

peyman farahmand 6 May 29, 2022
This project focuses on increasing the efficiency of a hospital's patient waitlist by creating an algorithm to generate an ordered list of 10 patients with the highest chance of accepting an appointment offer.

Patients-Facility Technical Interview Requirements This application was built on Node.JS v12.14. It has not been tested on other versions. You will al

Rwubakwanayo Olivier 4 Mar 20, 2023
Minimalist Web XR Location Based Markers for A-Frame 1.3.0

LBAR.js “I understand how the engines work now. It came to me in a dream. The engines don't move the ship at all. The ship stays where it is and the e

Media Engineering Institute 9 Dec 3, 2022
we learn the whole concept of JS including Basics like Object, Functions, Array etc. And Advance JS - Understanding DOMs, JQuery, Ajax, Prototypes etc.

JavaScript-for-Complete-Web Development. we learn the whole concept of JS including Basics like Object, Functions, Array etc. And Advance JS - Underst

prasam jain 2 Jul 22, 2022
The most advanced responsive front-end framework in the world. Quickly create prototypes and production code for sites that work on any kind of device.

Install | Documentation | Releases | Contributing Foundation is the most advanced responsive front-end framework in the world. Quickly go from prototy

Foundation 29.4k Jan 4, 2023
Wrap a function with bun-livereload to automatically reload any imports inside the function the next time it is called

bun-livereload Wrap a function with bun-livereload to automatically reload any imports inside the function the next time it is called. import liveRelo

Jarred Sumner 19 Dec 19, 2022
📊 AlphaSwap subgraph - (Blocks, token info, profiles, pricing data, LP metrics, etc...)

AlphaSwap Subgraph AlphaSwap is a decentralized protocol for automated token exchange on the KCC network. This subgraph dynamically tracks any pair cr

Brandon 3 Jul 9, 2022
自动保持 GitHub 提交状态常绿 a commit every day, keep your girlfriend far away.

node-auto-green 自动保持 GitHub 提交状态常绿。 a commit a day keeps your girlfriend away. node-auto-green 是 auto-green 的 Node.js 版本。源自一个 issue Actions 被禁用,请问是否有腾

迷渡 24 Oct 11, 2022
📸 A command-line tool to generate code images of your local code right away from the terminal

?? rayli ?? A command-line tool to generate code images of your local code right away from the terminal Usage Commands Usage $ npm install -g rayli $

buidler's hub 45 Nov 4, 2022
Get started with GatsbyJS straight away without having to spend a whole day configuring your usual addons.

Gatsby Starter Infinite Get started with GatsbyJS straight away without having to spend a whole day configuring your usual addons. This starter includ

Matt Patterson 3 Jun 27, 2022
Demo for my talk "Stream Away the Wait" – a talk about making excellent pending experiences.

?? Stream Away the Wait When implementing the design of a user interface, we often finish before remembering that not everyone's running the app's ser

Kent C. Dodds 25 Nov 1, 2022
A compiled-away, type-safe, readable RegExp alternative

?? magic-regexp A compiled-away, type-safe, readable RegExp alternative ✨ Changelog ?? Documentation ▶️ Online playground Features Runtime is zero-dep

Daniel Roe 1.5k Jan 8, 2023
List of awesome people offering their time for free to have a "coffee chat" with others about different topics, mostly in a mentorship kind of way.

Coffee Chat List of awesome people offering their time for free to have a "coffee chat" with others about different topics, mostly in a mentorship kin

Frédéric Harper 91 Dec 12, 2022
Project implements decorators for oak like Nest.js.

oak decorators Project implements decorators like implementation of Nest.js for Deno's web framework oak. Usage The following are the core files that

akihiro tanaka 5 Dec 5, 2022
Allow moving/copying/and creation embeds for blocks with drag-n-drop just like Logseq or Roam

Demo Features Drag-n-drop for list items in the same pane and between different panes 3 modes: move block, copy block, embed block Automatic reference

null 92 Dec 26, 2022