Hi Anne-Laure, Thank you for sharing!
On Saturday, April 25, 2020 at 7:17:02 PM UTC+4:30, Anne-Laure Le Cunff wrote: > > Thanks so much Saq and Jeremy! > > Here <https://www.mentalnodes.com/folders-kill-creativity> is the final > result – many thanks for your help! > This is lovely! The UI is simple and semantic! --Mohammad > On Saturday, April 25, 2020 at 1:39:15 PM UTC+1, Jeremy Ruston wrote: >> >> Sorry to be late to this thread. >> >> The static site generation templates included in the core don’t need to >> know the URL at which the site will be published because it only generates >> relative URLs. As things stand, users have to edit the definition >> of tv-wikilink-template in those templates to include their full URL. >> >> An alternative that might work better in some situations would be pass >> the URL as a variable to the --rendertiddler or --render commands, and >> update the definition of tv-wikilink-template to include that variable. >> >> Best wishes >> >> Jeremy >> >> >> >> On 25 Apr 2020, at 10:58, Saq Imtiaz <[email protected]> wrote: >> >> @Anne-Laure you are welcome and this is helpful to the community too. We >> are very good at thinking in terms of manipulating content and presentation >> inside a running TW, but need some practice (and documentation) on >> extrapolating that to static html rendered from tiddlers. >> >> If you are keeping the JS macros in place, the last short version I >> posted is worth a try at some point. >> >> You are getting a uppercase first letter because the javascript macros >> turns the title into lowercase for the url and filenames. >> >> To do the same with tv-filter-export-link: >> [split[ ]join[-]encodeuricomponent[]lowercase[]] >> >> >> On Saturday, April 25, 2020 at 11:50:03 AM UTC+2, Anne-Laure Le Cunff >> wrote: >>> >>> Thanks so much, Saq! >>> >>> I may look into this later, but when I implemented your approach, it >>> generated exactly what I wanted, for instance (that's from the static >>> website output): >>> >>> <a href=" >>> https://twitter.com/intent/tweet?source=https://www.mentalnodes.com/Folders-kill-creativity&text=Folders >>> >>> kill creativity:%20 >>> https://www.mentalnodes.com/Folders-kill-creativity&via=anthilemoon&hashtags=mentalnodes" >>> >>> target="_blank" title="Tweet"><img alt="Tweet" >>> src="social-icons/Twitter.png"></a> >>> >>> >>> (not sure why the URL says "Folders" and not "folders" but that's minor) >>> >>> Very grateful! >>> >>> On Saturday, April 25, 2020 at 10:37:13 AM UTC+1, Saq Imtiaz wrote: >>>> >>>> @Anne-Laure we should have asked you for those files from the >>>> beginning! That would have made helping you out a lot easier all along :) >>>> >>>> Those instructions for regex use one of the other three variables that >>>> I mentioned, tv-get-export-link instead of tv-filter-export-link, which >>>> requires javascript. >>>> >>>> You can mix and match both approaches but then it can be a little >>>> tricky to ensure that both always return the exact same filenames and >>>> corresponding links. This may not be an issue, but there is a chance it >>>> might cause problems at some point. Basically its a case of making sure >>>> the >>>> filter in tv-filter-export-link does the exact same thing as the >>>> javascript. >>>> >>>> With the way I outlined, you use the same filters for both and there is >>>> no javascript involved, so there are no chances of such issues. Or >>>> alternatively one could write another javascript macro that defines the >>>> url >>>> variable, using the same javascript logic. >>>> For a non-developer I think the non-javascript based approach will be >>>> easiest in the long run. >>>> >>>> Regards, >>>> Saq >>>> >>>> On Saturday, April 25, 2020 at 11:11:56 AM UTC+2, Anne-Laure Le Cunff >>>> wrote: >>>>> >>>>> Hi Saq, >>>>> >>>>> First, thanks so much for your help! >>>>> >>>>> Yes, I have modified *static.tiddler.html* - it looks like this >>>>> <https://github.com/anthilemoon/tw-experiments/blob/master/%24__ness_labs_template_static-view-template.tid> >>>>> >>>>> in my setup — and it looks like your approach is working! Thank you! Will >>>>> keep on tweaking, but if you're curious you can see here >>>>> <https://github.com/anthilemoon/tw-experiments> the files where I did >>>>> the regex edits. (following these instructions >>>>> <https://www.didaxy.com/exporting-static-sites-from-tiddlywiki-part-5> >>>>> ) >>>>> >>>>> Many thanks! >>>>> >>>>> On Saturday, April 25, 2020 at 9:37:44 AM UTC+1, Saq Imtiaz wrote: >>>>>> >>>>>> @Anne-Laure : I suspect we have been overcomplicating a bit because >>>>>> most of us are not familiar with the static site generation process. If >>>>>> you >>>>>> can walk us through a few details of your setup I think we are close a >>>>>> solution. Short instructions at the end, but please read through >>>>>> everything. >>>>>> >>>>>> Have you modified this template >>>>>> static.tiddler.html >>>>>> >>>>>> from the folder >>>>>> /core/templates? >>>>>> >>>>>> If so, please post your customized template. If not, where exactly >>>>>> are you using regexp to replace the spaces in file names, and the links >>>>>> to >>>>>> them, with hyphens? >>>>>> >>>>>> TiddlyWiki defines three variables that can be used to tweak the >>>>>> structure of url's in the static files generated: >>>>>> >>>>>> https://tiddlywiki.com/#tv-wikilink-template%20Variable:%5B%5Btv-wikilink-template%20Variable%5D%5D%20%5B%5Btv-filter-export-link%20Variable%5D%5D%20%5B%5Btv-get-export-link%20Variable%5D%5D >>>>>> >>>>>> You said you have replaced the spaces in tiddler names with hyphens, >>>>>> the correct way to do this in links would be via the variable >>>>>> tv-filter-export-link >>>>>> >>>>>> https://tiddlywiki.com/#tv-filter-export-link%20Variable used at the >>>>>> top of static.tiddler.html as follows: >>>>>> >>>>>> \define tv-filter-export-link() [split[ ]join[-]encodeuricomponent[]] >>>>>> >>>>>> Assuming it is setup this way, the following filter will get you the >>>>>> file name portion of the url: >>>>>> [<currentTiddler>subfilter<tv-filter-export-link>] >>>>>> >>>>>> Since TW doesn't know where your files will be served we need to add >>>>>> in the domain name: >>>>>> [<currentTiddler>subfilter<tv-filter-export-link>addprefix[https:// >>>>>> www.mentalnodes.com/]] >>>>>> >>>>>> a better way to do this would be to create a tiddler called something >>>>>> like $:/config/static/domain and give it the text value >>>>>> https://mentalnodes.com/ so that we can re-use and easily change the >>>>>> domain name. >>>>>> Then the filter for the URL becomes: >>>>>> [<currentTiddler>subfilter<tv-filter-export-link>addprefix{$:/config/ >>>>>> static/domain}] >>>>>> >>>>>> >>>>>> *Putting it all together: (and assuming you aren't doing anything >>>>>> elsewhere to tweak the file names)* >>>>>> At the top of your template: >>>>>> >>>>>> \define tv-filter-export-link() [split[ ]join[-]encodeuricomponent[]] >>>>>> >>>>>> \define tweet-this(url,title,description) >>>>>> <a href=" >>>>>> https://twitter.com/intent/tweet?source=$url$&text=$title$%20$description$&via=anthilemoon >>>>>> " target="_blank" title="Tweet"><img alt="Tweet" src= >>>>>> "social-icons/Twitter.png" /></a> >>>>>> \end >>>>>> >>>>>> >>>>>> Use as: >>>>>> >>>>>> <$macrocall $name="tweet-this" url={{{ [<currentTiddler>subfilter >>>>>> <tv-filter-export-link>addprefix{$:/config/static/domain}] }}} >>>>>> title={{!!title}} description={{!!description}} /> >>>>>> >>>>>> To get your file names to match, you can use this filter with the >>>>>> RenderCommand when generating static files: >>>>>> https://tiddlywiki.com/#RenderCommand >>>>>> >>>>>> "[split[ >>>>>> ]join[-]encodeuricomponent[]addsuffix[.html]addprefix[static/]]" >>>>>> >>>>>> For easier access to the url in the template, you can wrap a set >>>>>> widget around the entirety of the html portion of your template: >>>>>> \define macros go here >>>>>> >>>>>> <$set name="url" filter= >>>>>> """[<currentTiddler>subfilter<tv-filter-export-link>addprefix{$:/config/static/domain}]""" >>>>>> > >>>>>> <!------html starts here--> >>>>>> >>>>>> >>>>>> <<url>> will give you the url, relies on tv-filter-export-link being >>>>>> defined in the template >>>>>> >>>>>> >>>>>> </$set> >>>>>> >>>>>> >>>>>> Please let us know if that works. If so, it can likely be further >>>>>> simplified for re-use. >>>>>> >>>>>> Regards, >>>>>> Saq >>>>>> >>>>> >> -- >> 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/5f8ea810-f1e1-4bee-89c8-02192e4f4a63%40googlegroups.com >> >> <https://groups.google.com/d/msgid/tiddlywiki/5f8ea810-f1e1-4bee-89c8-02192e4f4a63%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/225dcaac-d846-4013-a128-4c91c3a9dff6%40googlegroups.com.

