Monday, November 08, 2010 at 12:02 AM.

system.verbs.builtins.bookmarksMenu.addBoilerplateItem

local (adrmenu = bookmarksMenu.init ());

local (itemName = op.getLineText ());
itemName = string.trimWhiteSpace (itemName);
if sizeOf (itemName > 30) {
	itemName = string.mid (itemName, 1, 30);
	itemName = string.trimWhiteSpace (itemName);
	local (countFields = string.countFields (itemName, ' '));
	if countFields > 1 {
		itemName = string.popSuffix (itemName, ' ')}}; //pop the last word

if dialog.ask ("Add the selection as boilerplate?", @itemName) {
	bundle { //store it as an outline in the odb
		local (localOutline);
		new (outlineType, @localOutline);
		op.getSelectedSubOutlines (@localOutline);
		user.bookmarksMenu.boilerplate.[itemName] = localOutline};
	
	bundle { //add the menu item command
		local (menuname);
		bundle { //get the name of the Bookmarks menu
			local (oldtarget = target.set (adrmenu));
			local (oldcursor = op.getcursor ());
			op.firstsummit ();
			menuname = op.getlinetext ();
			op.setcursor (oldcursor);
			target.set (oldtarget)};
		local (logic = "bookmarksMenu.insertBoilerplateInOutline (\"" + itemName + "\")");
		menu.addMenuCommand (adrmenu, menuname, itemName, logic)}};

return (true)



This listing is for code that runs in the OPML Editor environment. I created these listings because I wanted the search engines to index it, so that when I want to look up something in my codebase I don't have to use the much slower search functionality in my object database. Dave Winer.