This worked out great! I now have exactly what I wanted. Thanks Saq and 
others for your help.

On Wednesday, May 20, 2020 at 7:44:59 AM UTC-7, Saq Imtiaz wrote:
>
> Essentially plugins are about packaging together several tiddlers that add 
> a certain featureset for easier distribution.
>
> To get started you can also skip the packaging as a plugin and just create 
> individual tiddlers.
>
> To just add a widget, create a tiddler with type *application/javascript*, 
> module-type *widget *and put your javascript code for your 
> action-getbookinfo widget in there. Save and reload and that widget will be 
> accessible in all tiddlers.
>
> On Wednesday, May 20, 2020 at 4:42:27 PM UTC+2, Saq Imtiaz wrote:
>>
>> @Flan: think of 
>> plugin
>>
>> as an umbrella term for tiddlers that add functionality to TiddlyWiki. A 
>> plugin consists of one or more tiddlers. A javascript tiddler with 
>> module-type 
>> widget
>>
>> can define a widget. A plugin can contain one or several such widgets.
>>
>> In this case, one of your plugin tiddlers would be a tiddler that has the 
>> javascript code for your widget. For example:
>>
>> If the plugin is $:/plugins/flan/bookinfo, it may contain several 
>> tiddlers including for example $:/plugins/flan/bookinfo/widgets/getbookinfo 
>> which has the code for your widget.
>>
>> A tiddler defining a widget needs the field *type* with value 
>> *application/javascript*, and the field *module-type* with value *widget*
>>
>>
>>
>> On Wednesday, May 20, 2020 at 4:34:41 PM UTC+2, Flan Mou wrote:
>>>
>>> Hi Saq,
>>>
>>> This is very useful, thanks. I'm now a bit confused: it sounds like I 
>>> want to create a widget and not a plugin? What's the difference?
>>>
>>> Is there any documentation available along the lines "How to create your 
>>> first widget"?
>>>
>>> If not:
>>> - I'm looking at action-createtiddler.js as a reference example. 
>>> - If I create an action-getbookinfo as you suggest, where/how do I 
>>> install this so that Tiddlers can access the widget?
>>> - Do I put it core/modules/widgets?
>>> - Will it be available for use automatically or do I have to do 
>>> something else? 
>>>
>>> Thanks for all your help. I'm trying to use the online documentation but 
>>> it's not very friendly to someone new to TW.
>>>
>>> On Wednesday, May 20, 2020 at 1:28:33 AM UTC-7, Saq Imtiaz wrote:
>>>>
>>>> Plugin javascript tiddlers need the correct module-type to determine 
>>>> how they are made available/run.
>>>> https://tiddlywiki.com/#ModuleType
>>>>
>>>> Here is what I recommend to get you started:
>>>>
>>>> To get the user input of what ISBN to look up, use an edit-text widget 
>>>> with a temporary tiddler like $:/myplugin/isbn-search
>>>> https://tiddlywiki.com/#EditTextWidget
>>>>
>>>> Since you want to execute an action on userinput, that is look up the 
>>>> isbn, use a button widget to trigger a custom action widget.
>>>>
>>>> You can model your action widget on
>>>>
>>>> https://github.com/Jermolene/TiddlyWiki5/blob/master/core/modules/widgets/action-setfield.js
>>>>
>>>> For starters, accept a single parameter, the isbn, make the http 
>>>> request and in the callback, parse the response and create a tiddler.
>>>>
>>>> For an action widget called action-getbookinfo, it would be invoked 
>>>> like this inside the button widget:
>>>> <$action-getbookinfo $isbn={{$:/myplugin/isbn-search}} />
>>>>
>>>> On Tuesday, May 19, 2020 at 4:57:32 PM UTC+2, Flan Mou wrote:
>>>>>
>>>>> Update: I followed the instructions here:
>>>>>
>>>>>
>>>>> https://tiddlywiki.com/dev/static/How%2520to%2520create%2520plugins%2520in%2520the%2520browser.html
>>>>>
>>>>> And created a plugin which simply contains:
>>>>>
>>>>> (function () { alert("Test alert"); })
>>>>>
>>>>> Everything got packed and saved, and the plugin appears installed. But 
>>>>> when I reload the alert box doesn't appear. I would have expected the 
>>>>> code 
>>>>> inside an installed plugin to run upon startup. How can I get TW to 
>>>>> execute 
>>>>> my plugin code?
>>>>>
>>>>> On Tuesday, May 19, 2020 at 7:20:38 AM UTC-7, Flan Mou wrote:
>>>>>
>>>>>> Yes, for example there is the OpenLibrary API:
>>>>>>
>>>>>> https://openlibrary.org/developers/api
>>>>>>
>>>>>> I'm fine with interacting with the API, it's just that I'm not sure 
>>>>>> how to build even a very simple request within TW. I was expecting to be 
>>>>>> able to create an HTML tiddler, add a <script> tag, and write some 
>>>>>> Javascript with XMLHttpRequest() within it. But it seems that's not 
>>>>>> possible. For example I created an HTML Tiddler with:
>>>>>>
>>>>>> <script>
>>>>>> alert("Testing");
>>>>>> </script>
>>>>>>
>>>>>> And that didn't work.
>>>>>>
>>>>>> I guess my question is: is there a way to get TW to execute arbitrary 
>>>>>> Javascript within a tiddler? If not, how do I make that happen? 
>>>>>> Apologies 
>>>>>> if this is available in the documentation somewhere but I couldn't find 
>>>>>> it.
>>>>>>
>>>>>>
>>>>>> On Monday, May 18, 2020 at 11:59:49 PM UTC-7, PMario wrote:
>>>>>>>
>>>>>>> Hi, 
>>>>>>> Is there a public service, where you can GET the info? Without an 
>>>>>>> API description, it's hard to do.
>>>>>>> -mario
>>>>>>>
>>>>>>> On Tuesday, May 19, 2020 at 6:14:29 AM UTC+2, Flan Mou wrote:
>>>>>>>>
>>>>>>>> Goal: to create a plugin(?) where: you type in an ISBN and it does 
>>>>>>>> a few HTTP GETs to get book information and populates a new tiddler 
>>>>>>>> with 
>>>>>>>> that info.
>>>>>>>>
>>>>>>>> I'm pretty new to TiddlyWiki and I've been trying to make my way 
>>>>>>>> through tiddlywiki.com/dev looking for examples I can base things 
>>>>>>>> off. I haven't seen anything relevant.
>>>>>>>>
>>>>>>>> I'd be happy for any points in useful directions.
>>>>>>>>
>>>>>>>> Thanks.
>>>>>>>>
>>>>>>>

-- 
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 [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/tiddlywikidev/66fda56f-3cb2-4234-a5d3-f64eeff6298c%40googlegroups.com.

Reply via email to