November 15th, sitting in a hotel lobby, waiting to move to a next location to get even more discussions. There is so much done, and yet so much left to be done. I see plenty of ideas around, but my mind is mostly impermeable. I have a single focus and can't keep my thoughts away from it. I can see what I'm trying to reach. It's far away, but I can almost feel it. A few weeks back, all my thoughts aligned for the first time on resolving searches and listings. It has been years. I had heard countless problems. I had seen code crumbling. Heard stories of despair and sleepless nights attempting to fix yet an other bug. Until now, I could not see a sustainable solution. Years.
I begun working right away. We need to have a better content index. One index that can be efficient enough for advanced category filtering. One index that can provide WYSIWYCA listings without killing servers. One index that will lead to maintainable code we can grow with. One index to rule them all. Skip that last one.
The work is progressing. The last few weeks have been hard. It's cold out there in the abstract. But finally, the feature is now somewhat usable in trunk. It's still tiny, but it breathes.
- From a trunk installation, head to the search admin panel run the manual indexing.
- Install the category jail demonstration profile if you have a blank install, it will provide some data to play with.
- Create a wiki page, insert the list plugin, right away, you should see listings.
- Check out the options on actual documentation and play with filters and formatting options.
I know it does not do much. It's only wiki pages at this time, but that is the least of my concerns, because adding more is just a matter of doing it. It's not even hard. All that is needed is to implement Search_ContentSource_Interface for each feature and add it to the indexer. Global features like categories will just work. No need for individual hacks in each plugin anymore, and the current filters are more powerful than any others.
I don't know how long it will take. I don't know in which order it will happen. Call it development time dependency resolution.
Kind of short term
- Default table formatting
- Linking to the actual objects
- More content sources
- More global features like freetags
- Figure out how to handle the more complicated permissions like those in file galleries
- Deploy in the site search
- Nail down incremental indexing
- Build a reusable UI component to construct filters
- Replace the implementation in other listing pages and plugins
- Support for other index engines like Solr and Sphinx
Want to help out? Got ideas?