As computer science majors, we've had access to extremely helpful IDE's that allow us to find out in real time if we're making mistakes while coding. Programs like Intellij offer on the fly syntax highlighting as well as suggestions for what to change when something doesn't seem quite right. We thought it would be great if poets could have access to these same helpful abilities when crafting the next literary masterpiece.

What it does

Sublime Poet is a plugin for the Sublime Text editor. It allows you to choose a poem, from blank verse to limerick to haiku after which the plugin will proceed to give helpful messages and highlights. These hints include ensuring that a poem follows the proper rhyme scheme and making sure it follows the proper pattern of stressed/unstressed syllables (iambic pentameter, etc). If possible, hovering over the suspect section will yield a more detailed description of what's wrong, as well as suggestions on how to fix it.

How we built it

The base plugin is written in python, the main language supported for writing sublime plugins. In addition to this we also wrote a flask server running on amazon web services. This server was queried whenever rhyme schemes or stress patterns needed verification. Every time an error was found in the poem, we underlined the text and added html bodies that would show when hovered over.

Challenges we ran into

Significant challenged were encountered reducing cpu usage by the plugin. To solve this we ended up employing multithreading and the concurrency issues that accompany this. It was also difficult finding out which methods were needed as the documentation for plugin support was shoddy at best. When we started running with this idea we initially tried to create a plugin for the atom text editor but quickly moved over to sublime due to the ease of working with python rather than javascript.

Accomplishments that we're proud of

In the end we created a fairly professional looking plugin that is indeed helpful in finding out errors for a given poem style.

What we learned

During this hackathon we learned the general workflow for creating a sublime plugin, how to employ multithreaded python programs, and the creation of RESTful api's to be used by our frontend.

What's next for Sublime Poet

Future work includes adding support for more poem styles as well as publishing the plugin to the public for everyone to use.

Share this project: