How to $tw.wiki.renderTiddler caption field?

195 views
Skip to first unread message

Siniy-Kit

unread,
Jan 2, 2018, 1:11:55 AM1/2/18
to TiddlyWiki
Hi! When I use $tw.wiki.renderTiddler("text/plain","$:/SiteTitle") I get value of text field of tiddler $:/SiteTitle. But how can i get value of caption field?

I try  var sitetit=" "+$tw.wiki.renderTiddler("text/plain","$:/SiteTitle",{field: "caption"}) but it dont work

Mark S.

unread,
Jan 2, 2018, 1:21:09 PM1/2/18
to TiddlyWiki
Just a guess, but what about $tw.wiki.renderTiddler("text/plain","$:/SiteTitle!!caption")  ??

Jeremy Ruston

unread,
Jan 2, 2018, 2:49:19 PM1/2/18
to tiddl...@googlegroups.com
Hi Siniy-Kit

Hi! When I use $tw.wiki.renderTiddler("text/plain","$:/SiteTitle") I get value of text field of tiddler $:/SiteTitle. But how can i get value of caption field?

I try  var sitetit=" "+$tw.wiki.renderTiddler("text/plain","$:/SiteTitle",{field: "caption"}) but it dont work

The wiki.renderTiddler() method doesn’t provide direct support for rendering a field other than the text field. You could roll your own variant that provided that feature, but it may be simpler to instead create a template tiddler containing <$transclude tiddler="$:/SiteTitle" field="caption”/> and then to render that tiddler.

Best wishes

Jeremy.


--
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 tiddlywiki+...@googlegroups.com.
To post to this group, send email to tiddl...@googlegroups.com.
Visit this group at https://groups.google.com/group/tiddlywiki.
To view this discussion on the web visit https://groups.google.com/d/msgid/tiddlywiki/298d9849-c34b-46f4-b52c-f83f3e613435%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Siniy-Kit

unread,
Jan 2, 2018, 6:23:07 PM1/2/18
to TiddlyWiki
Hi Jeremy and Mark. Thank you for answers. In my old projects I use

var  tovDostav= document.querySelector('[title="dost"]').getAttribute('price') ;

 so I get fields value from DOM tree.  But in my new project (on start of loading) I have absolutely empty Tiddlywiki and all data is loaded  from google spreadsheet id from URL parameter.
So there is no my "dost" tiddler (and all other loaded tiddlers) in DOM and my old script get error if I try to use loaded data.

for example thisTW5

so everyone can make copy of this table to his google drive, share it, public then modify and run my empty TW5 with his id parameter.
My idea was to make "free internet shop" for everybody without any hosting.

Now I am making ban an security module to prevent overwriting  some tiddlers and not to show table if it's email in ban-list. 





вторник, 2 января 2018 г., 22:49:19 UTC+3 пользователь Jeremy Ruston написал:

Siniy-Kit

unread,
Jan 5, 2018, 2:39:35 PM1/5/18
to TiddlyWiki
Hi, Jeremy. I think a lot, but I don't know how to make my own variant with all fields reading. As far as I understand this function here $:/core/modules/wiki.js


exports.renderTiddler = function(outputType,title,options) {
        options
= options || {};
       
var parser = this.parseTiddler(title,options),
                widgetNode
= this.makeWidget(parser,options);
       
var container = $tw.fakeDocument.createElement("div");
        widgetNode
.render(container,null);
       
return outputType === "text/html" ? container.innerHTML : (outputType === "text/plain-formatted" ? container.formattedTextContent : container.textContent);
};


but I don't understand what to change to make it parse all fields. Help please.



вторник, 2 января 2018 г., 22:49:19 UTC+3 пользователь Jeremy Ruston написал:
Hi Siniy-Kit

Jeremy Ruston

unread,
Jan 6, 2018, 4:47:42 AM1/6/18
to tiddl...@googlegroups.com
Hi Siniy-Kit

Making those core modifications isn't ideal; it's rather brittle because of the possibility of future core enhancements. Is there any reason you can't use the other technique I suggested, of transcluding an intermediate tiddler?

Best wishes

sini-Kit

unread,
Jan 6, 2018, 6:34:21 AM1/6/18
to TiddlyWiki
yes. There are some reasons I cant use this technique. For example, all items in shop have two fields weight and size. When script get order, it counts sum of weights and sizes from this fields picking them by title. So I can get delivery price of current order by formula. it is not possible to create additional tiddlers  for all items in shop. I thought that there is no difference what field value to extract text or weight.
But if it will be a problem to modify renderTiddler  function i'll try to modify my script not to use it.

суббота, 6 января 2018 г., 12:47:42 UTC+3 пользователь Jeremy Ruston написал:
Reply all
Reply to author
Forward
0 new messages