Thank you Jed.
I will make some tests and share the results with you!

Best wishes
Mohammad


On Tue, Apr 21, 2020 at 3:30 PM Jed Carty <[email protected]> wrote:

> Oh, sorry about that. I had another tiddler generate the html file. Here
> is everything in one file, I am also adding it to the plugin development
> repo. The formatting for the html file output isn't great, but it should
> work:
>
> \define makeHTML(json)
> `
> <!doctype html>
> <html>
> <head>
> <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
> <meta name="application-name" content="TiddlyWiki Plugin Library" />
> <meta name="application-version" content="v0.0.0" />
> <meta name="copyright" content="Copyright 2015 Jeremy Ruston" />
> <link id="faviconLink" rel="shortcut icon" href="favicon.ico">
> <title>Plugin Library</title>
> <script>
> var assetList = $(JSONLISTING)$
>
> /*\
> title: $:/plugins/tiddlywiki/pluginlibrary/libraryserver.js
> type: application/javascript
> module-type: library
>
> A simple HTTP-over-window.postMessage implementation of a standard
> TiddlyWeb-compatible server. It uses real HTTP to load the individual
> tiddler JSON files.
>
> \*/
> (function(){
>
> /*jslint node: true, browser: true */
> /*global $tw: false */
> "use strict";
>
> // Listen for window messages
> window.addEventListener("message",function listener(event){
> console.log("plugin library: Received message from",event.origin);
> console.log("plugin library: Message content",event.data);
> switch(event.data.verb) {
> case "GET":
> if(event.data.url === "recipes/library/tiddlers.json") {
> // Route for recipes/library/tiddlers.json
> event.source.postMessage({
> verb: "GET-RESPONSE",
> status: "200",
> cookies: event.data.cookies,
> url: event.data.url,
> type: "application/json",
> body: JSON.stringify(assetList,null,4)
> },"*");
> } else if(event.data.url.indexOf("recipes/library/tiddlers/") === 0) {
> var url = "recipes/library/tiddlers/" +
> encodeURIComponent(removePrefix(event.data.url,"recipes/library/tiddlers/"));
> // Route for recipes/library/tiddlers/<uri-encoded-tiddler-title>.json
> httpGet(url,function(err,responseText) {
> if(err) {
> event.source.postMessage({
> verb: "GET-RESPONSE",
> status: "404",
> cookies: event.data.cookies,
> url: event.data.url,
> type: "text/plain",
> body: "Not found"
> },"*");
> } else {
> event.source.postMessage({
> verb: "GET-RESPONSE",
> status: "200",
> cookies: event.data.cookies,
> url: event.data.url,
> type: "application/json",
> body: responseText
> },"*");
> }
> });
> } else {
> event.source.postMessage({
> verb: "GET-RESPONSE",
> status: "404",
> cookies: event.data.cookies,
> url: event.data.url,
> type: "text/plain",
> body: "Not found"
> },"*");
> }
> break;
> }
> },false);
>
> // Helper to remove string prefixes
> function removePrefix(string,prefix) {
> if(string.indexOf(prefix) === 0) {
> return string.substr(prefix.length);
> } else {
> return string;
> }
> }
>
> // Helper for HTTP GET
> function httpGet(url,callback) {
> var http = new XMLHttpRequest();
> http.open("GET",url,true);
> http.onreadystatechange = function() {
> if(http.readyState == 4 && http.status == 200) {
> callback(null,http.responseText);
> }
> };
> http.send();
> }
>
> })();
>
> </script>
> </head>
> <body>
>
> <h1>HelloThere</h1>
>
> <p>This is the TiddlyWiki plugin library. It is not intended to be opened
> directly in the browser.</p>
>
> <p>See <a href="https://tiddlywiki.com/"; target="_blank">
> https://tiddlywiki.com/</a> for details of how to install plugins.</p>
>
> </body>
> </html>
> `
> \end
>
> \define oneTiddler()
>   <$list
>     filter='[<theTiddler>fields[]] -text +[bl[]]'
>   >
>     <br>
>     &nbsp;&nbsp;&nbsp;&nbsp;"<$view field='title' jsencoded/>": "<$view
> tiddler=<<theTiddler>> field=<<currentTiddler>> format=jsencoded/>",
>   </$list>
>   <$list
>     filter='[<theTiddler>fields[]] -text +[bl[]]'
>   >
>     <br>
>     &nbsp;&nbsp;&nbsp;&nbsp;"<$view field='title' jsencoded/>": "<$view
> tiddler=<<theTiddler>> field=<<currentTiddler>> format=jsencoded/>"
>   </$list>
> \end
>
> \define jsonListing()
> [<br>
> <$list
>   filter='[subfilter{$:/state/PluginLibrary!!filter}] +[bl[]]'
>   variable=theTiddler
> >
>   &nbsp;&nbsp;{
>   <<oneTiddler>>
>   <br>
>   &nbsp;&nbsp;},
>   <br>
> </$list>
> <$list
>   filter='[subfilter{$:/state/PluginLibrary!!filter}] +[last[]]'
>   variable=theTiddler
> >
>   &nbsp;&nbsp;{
>   <<oneTiddler>>
>   <br>
>   &nbsp;&nbsp;}
>   <br>
> </$list>
> ]
> \end
>
> This packages the plugins returned by this filter into the format needed
> by a plugin library.
>
> The file structure needs to be:
>
> *Library Folder
> ** recipes
> *** library
> **** tiddlers
> ***** //individual tiddler json files//
> **** tiddlers.json
> ** index.html
>
> filter: <$edit-text tiddler='$:/state/PluginLibrary' field=filter/>
>
>
> !! tiddlers.json
>
> ''filename:'' tiddlers.json
>
> ''contents:''
>
> <<jsonListing>>
>
> !! Tiddler JSON files:
>
> <$list filter={{$:/state/PluginLibrary!!filter}}>
>
> ---
> ''filename:'' <$view field='title' format='urlencoded'/>.json
>
> ''contents:''
>
> <$text text=<<jsontiddler>>/>
> </$list>
>
> ---
> ''filename:'' index.html
>
> ''contents:''
>
> <$wikify name=JSONLISTING text=<<jsonListing>>>
> <pre>
> <<makeHTML>>
> </pre>
> </$wikify>
>
>
> --
> You received this message because you are subscribed to the Google Groups
> "TiddlyWiki" 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/tiddlywiki/648ee829-7bf8-49b0-abcc-fa3d0214b637%40googlegroups.com
> <https://groups.google.com/d/msgid/tiddlywiki/648ee829-7bf8-49b0-abcc-fa3d0214b637%40googlegroups.com?utm_medium=email&utm_source=footer>
> .
>

-- 
You received this message because you are subscribed to the Google Groups 
"TiddlyWiki" 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/tiddlywiki/CAAV1gMBODxT_ZtFznbm6qVAxxm6zM5Htnsb%3Dup%2Bcz0VnSZZGOg%40mail.gmail.com.

Reply via email to