Write a CKEditor Table of Contents plugin

Looking for a CKEditor/JavaScript developer to help us with a ~1 month project developing a plugin. Ideally this will be the start of an on-going relationship to help us develop further plugins to support different user requests.

What we do

PolicyStat is a web-based software as a service that allows hospitals to manage their policies and procedures, their best practices to save lives. We’ve recently migrated to using CKEditor as the editor of choice for policy editing within our product, allowing us to fill many outstanding feature requests with community plugins, and are looking for others to help us build the policy editor of the future.

What the project looks like

We want an experienced CKEditor/JavaScript developer to help us develop a plugin to generate a table of contents or outline based on the headings in a document, and keep it in sync. This is a popular feature request for us, as many of our customers have manually implemented something similar in their documents, which doesn’t scale very well and isn’t very consistent.

The table of contents would be implemented as a CKEditor Widget ( [login to view URL]!/guide/dev_widgets ) and contain nested ordered lists representing the header structure.


Given the following header structure in the document:





The widget would contain the following:







The widget would then be updated with any changes made to the actual content to the headings.

To allow the table of contents to actually work as links, the act of adding the widget would also need to create anchor links beside each heading. The widget would then link to these newly created anchors. The plugin would need to ensure that these anchors were also created for new headings, if a table of contents exists.

To be successful at this project, you will ideally:

Have experience writing consistent JavaScript with excellent test coverage. We’ll expect working, unit tested code.

Have excellent knowledge of CKEditor’s API and developing plugins. An existing published plugin is an asset

Have clear communication skills and ability to work together in an asynchronous, but honest and transparent way. We’ll help you with code review and be available for any required rubber-ducking.

Who you’ll be working with

You’ll be working primarily with a developer who has been customizing CKEditor over the past few months.

To apply:

Let us know what interests you about this project and whether there’s anything you’d want to change

Provide some code samples (github is preferred)

Ask us any other questions you might have

Compétences : Javascript

Nº du projet : #11222205