Opened 14 years ago

Last modified 5 years ago

#1333 confirmed New Feature

Definition Lists (<dl> <dt> <dd>)

Reported by: Aaron van Geffen Owned by:
Priority: Normal Milestone:
Component: General Version:
Keywords: Cc: eshepherd@…


It would be nice to have a feature to manage definition lists. For example:

   <dd>A black bird with an orange beck, often found in gardens.</dd>

   <dd>A small, brown/grey bird, often found in gardens.</dd>

<dl> opens the definition list, <dt> lists the term and <dd> tells the definition. A special type of list, that is starting to get used more and more.

Change History (10)

comment:1 Changed 14 years ago by Wojciech Olchawa

Keywords: Confirmed added

comment:2 Changed 13 years ago by Ioannis Cherouvim

Any plans for this one? Definition lists rock :)

comment:3 Changed 13 years ago by Eric Shepherd

Cc: eshepherd@… added

We use Mindtouch Deki, which embeds FCKeditor, and this is turning into a huge problem for us, as the documentation on the Mozilla Developer Center uses a lot of definition lists. The editor likes to mess them up, and having to resort to source editing for them is very frustrating, to say the least.

comment:4 Changed 8 years ago by Piotrek Koszuliński

DUP: #11067. Related ticket: #8184.

comment:5 Changed 8 years ago by sirtet

Hope this gets some love soon.

Currently the situation is worse than before:

Due to the new ​Advanced Content Filter system, DT and DD's get converted to P's, after you enter them in source-mode. To prevent that, you need to add the following to your configuration:

CKEDITOR.config.allowedContent = true

This will prevent the tags from being converted when switching back to WYSIWYG mode.

comment:6 Changed 8 years ago by Piotrek Koszuliński

Better option would be to use:

config.extraAllowedContent = 'dl dt dd';

Thanks to that ACF will still work, but definition list will be allowed.

Nevertheless, support for definition lists is a great idea for a new feature.

comment:7 Changed 8 years ago by sirtet

Wehre would someone with experience on Plugins Start to implement this?

Where would You Point someone unexperienced to?

what would be the Most Similar Code to Look at?

my thoughts so far

  • Conceptually, i think it would Need two Buttons, or One with a triple state, since You Need to Switch between DL on/off, and DT/DD.
  • Or Maybe a Button for on/off, and Then use the in-/outdent Buttons to Switch between DT/DL. But how would you Then add a new dl Inside a dd?
  • On you can See a tinymce with DL Support, but i did Not find Out how to Switch between DT and DD, so Not much Inspiration from there... Has someone Seen an implementation on another Product anywhere?

comment:8 Changed 8 years ago by Jakub Ś

@sirtet - I think that what you should look at is list plugin. We have implemented standard lists the way you describe so it perhaps (only perhaps) could be used as jump start.
NOTE: This isn't anything easy (just look at list plugin code there are just so many cases to handle.

comment:9 Changed 8 years ago by sirtet

Yes, that's quite a bit of code already...

Just found out that DL's can also contain more than one DT before a DD, like this:

   <DD> A point equidistant from all points
              on the surface of a sphere.
   <DD> In some field sports, the player who
              holds the middle position on the field, court,
              or forward line.

example from [](

My current, naive thought on how to use the list-plugin is to:

  • clone the whole module and rename it.
  • change the code to use DL and DT instead of UL and LI
  • Then add a button to toggle the list-element tag between DT and DD.

or, as i'd maybe need to rename a lot of functions, vars etc to get it working parallel with the normal list plugin, maybe it would be easyer to extend the plugin to have a 3rd list-type plus the toggle-button.

comment:10 Changed 5 years ago by Jakub Ś

Other issues concerning description lists #12274, #16941.

Note: See TracTickets for help on using tickets.
© 2003 – 2021 CKSource – Frederico Knabben. All rights reserved. | Terms of use | Privacy policy