Thank you! Added to TW-Scripts On Friday, February 15, 2019 at 10:32:28 AM UTC+3:30, stefano franchi wrote: > > > > On Fri, Feb 15, 2019 at 12:04 AM Mohammad Rahmani <mohammad...@gmail.com > <javascript:>> wrote: > >> Stefano, >> Could you please bruch up the procedure based on the received comments. >> I would like to add it to TW-Scripts. >> >> > Well, there isn't much to write up. As always the solution is simple once > it's been found... > But here we go: > > 1. How to create the panels that make up the various tabs of the plugin > page. It takes three steps: > a - In the plugin.info file of the plugin you are writing, add a line > with "list" followed by a list of your panels in double quotes. > In my case I wanted 6 panels: readme usage syntax example license > and config. So I added this line: > "list": "readme usage syntax example license config" > b. Create the files corresponding to the panels in the "files" > subdirectory of your plugin, as plain text, or in wikitext, or HTML. > I wanted them in a separate dir to keep everything uncluttered, and i > put them in a new subdir files/doc > So I created 6 new files: files/doc/readme.txt, file/doc/usage.txt, > etc. and put some filler text in each just o be sure I could test if they > showed up in TW > c. Finally, in the tiddlywiki.files file in your files subfolder, add a > block for each one of the new file you have created, making sure the last > part of the > "title" field is identical to what you wrote in the "list" line of your > plugin info, while the first part is the identifier of your plugin: > $:/plugins/yourName/YourPluginName/. In my case, > I am working on a plugin called "sgfeditor", and the name I am using > is "cleinias", so the name prefix is always "$:/plugins/cleinias/sgfeditor" > . > For example, to add the content of the files/doc/readme.txt file as a > "readme" panel, you would add the following block to the tiddlywiki.files > file: > > { > "file": "doc/readme.txt", > "fields": { > "type": "text/plain", > "title": "$:/plugins/cleinias/sgfeditor/readme" > } > }, > > Notice two important things: (1) the path in the "file" line is > relative to the files sub directory, NOT to the plugin directory. > (2) The last part of the can title (i.e. "readme") can actually be > anything you want, AS LONG AS it corresponds to one of the > item in th e"list" line of plugin.info file. For instance, you could > have your readme info in README.txt (following usual > conventions), and then "readme" in all lowercase and no ext in the > "title" field. > > 2. How to create a settings for my plugin that would either be added to > the control panel or be accessible from the plugin page > To have the settings accessible from the config panel, you need to > create a config file and then tag it with $:/tags/ControlPanel as PMario > said. If you want it as > a tab (panel) in the plugins page add it to the "list" line in > plugin.info. > In either case, the basic procedure is the same as above: create a file > in the format of your choice (see point 3 below) in the "files" subdir of > your plugin, then add a block describing > it in the tiddlywiki.files in the files subdirectory. If you go for the > config panel, you also add a line with "tags": "$:/tags/ControlPanel" . I > went the second route, and decided to put my settings in a "config" > panel of the plugin, and to use the json format. So I created config.json, > added "config" to the "list" line in plugin.info and added this block to > tiddlywiki.files: > { > "file": "config.json", > "fields": { > "type": "application/json", > "title": "$:/plugins/cleinias/sgfeditor/config" > } > }, > Notice that I changed the type to the correct json MIME type. > > 3. How to access said settings from the plugin code: > I haven't tried to access the settings from the config panel, so I > cannot say anything about it. I only had to add two lines to read the > config tiddler from my plugin code (I copied them from the railroad > plugin): > > // getTiddlerData reads a Json file into a javascript object: > var config = $tw.wiki.getTiddlerData( > "$:/plugins/cleinias/sgfeditor/config") > > Then for every setting, I provide three options: the value in the config > panel, the value possibly present in a corresponding field of the tiddler > the plugin widget is working on, or a default value I set in code (this is > also copied from the railroad plugin). So I have an object that reads all > the config parameters: > > var options = { > size : this.getAttribute("size", config.size || 19), > panels : this.getAttribute("panels", config.panels || > ['control', 'names', 'comment', 'tool', 'tree', 'file']) > ...... and do on > > > That's all. > > Cheers, > > S. > > > > >> -- > __________________________________________________ > Stefano Franchi > > stefano...@gmail.com <javascript:> > http://stefano.cleinias.org >
-- You received this message because you are subscribed to the Google Groups "TiddlyWikiDev" group. To unsubscribe from this group and stop receiving emails from it, send an email to tiddlywikidev+unsubscr...@googlegroups.com. To post to this group, send email to tiddlywikidev@googlegroups.com. Visit this group at https://groups.google.com/group/tiddlywikidev. To view this discussion on the web visit https://groups.google.com/d/msgid/tiddlywikidev/8667b08e-1190-4840-8bdb-d8d4dcf72795%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.