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&amp;text=Folders
>  
> <https://twitter.com/intent/tweet?source=https://www.mentalnodes.com/Folders-kill-creativity&amp;text=Folders>
>  kill 
> creativity:%20https://www.mentalnodes.com/Folders-kill-creativity&amp;via=anthilemoon&amp;hashtags=mentalnodes
>  
> <https://www.mentalnodes.com/Folders-kill-creativity&amp;via=anthilemoon&amp;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
>  
> <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 
> <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/
>  <http://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/ 
> <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
>  
> <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 <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] 
> <mailto:[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/923D4EA6-74C8-4E27-8E8C-B74B4245A2FC%40gmail.com.

Reply via email to