Freelinking 3: Forging Ahead
Since I have recently become a co-maintainer on Freelinking, and am now leading Freelinking 3 onward to the next Alpha release, I felt a need to philosophize about Freelinking and where it is going.
One of the biggest differences between traditional writing and composing for the web is the ability to easily interconnect information. Inline references for immediate “further reading” are really powerful, really easy for readers, and really annoying for writers. Be it composing HTML or clicking buttons, creating links interrupts the flow of ideas. Suddenly we have a trade-off between a bad writer experience and a limited reader experience.
Enter Freelinking, the Drupal module that addresses the simple, wiki-like approach to creating links, providing the kind of shorthand notation that minimizes the impact on writers.
Freelinking has a long history, and in the past has focused on making the titles of nodes into links to those nodes within your Drupal site. That has changed. In it’s third generation, Freelinking 3 has expanded focus to become a framework for developers to quickly create an “easy-linking” syntax. While it is only in an Alpha release, and features and functionality are still transforming and growing, there is already enough to start talking about what Freelinking 3 can offer, and ask for more feedback on where it should be going.
So what does Freelinking 3 provide for Users creating content?
- Quickly link to content of interest without needing to look up the details of a commonly referenced web address, or type the same most-of-a-url over and over.
- Have your internal links enriched with details held within the website’s database about the page to which you are linking.
- Create a number of different types of links by using the plugin syntax ([[search:terms]] for the Search plugin.)
So what does Freelinking 3 provide for Administrators & Site Builders?
- Tailor the syntax used to mark a “freelink” by selecting single brackets, double brackets, or Markdown-style links.
- Choose a plugin as “default” to minimize the syntax for the most common type of link created on your site. (Internal node titles still an option!)
- Theme different types of links without needing to parse URLs or beg for CSS classes in issue queues.
So what does Freelinking 3 provide for Themers?
- Use the provided theme functions to easily change the presentation of links in your content, or even build out other HTML based on the values passed as pieces of a link.
- Make use of standardized CSS classes (to which plugins can add) for easy CSS-only theming of links.
So what does Freelinking 3 provide for Developers?
- Easily insert a Freelinking plugin into any module to create relevant linking syntax on the spot. (hook_freelinking)
- Easily integrate your module into the linking syntax of a site by modifying the values used to build the HTML link. (hook_freelink_alter)
- Easily learn and create Freelinking plugins by dropping files into the Freelinking directory, skipping the need to become a module developer. (Just a .inc file!)
- Work within the clear scope of “linking” and have access to the Drupal module-scape within that focused lens. (Nodewords for better tooltips, Prepopulate for new node creation, etc)
- Make use of the Freelinking API to dramatically extend Freelinking, or the ways Freelinking can improve your site. (Building a Robust FL3 API)
Why do all this work for a linking syntax module? Freelinking works very hard to help developers achieve what is obviously and easily doable with simple regular expressions in a custom module, or a general purpose regex filtering module such as Custom Filter. But by building off of the specialized “linking syntax framework” here, you can get the syntax you want faster, with less module overhead, and take full advantage of the Drupal and Theme integration that Freelinking provides. The specialization on this one HTML element allows it to help developers more.
In order to advance Freelinking’s mission to become the foundation of all link syntax modules in the Drupal sphere, please join me in the Freelinking Issue Queue. Drop in on the FL 3 Roadmap thread to discuss the high level goals FL3 should pursue, especially while Freelinking is still undergoing dramatic transformation during Alpha. Use Cases wanted!
Terms: drupalfreelinkingFL3