Thanks so much Saq and Jeremy!

Here <https://www.mentalnodes.com/folders-kill-creativity> is the final 
result – many thanks for your help!

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] <javascript:>> 
> 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
>>  
>> kill creativity:%20
>> 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
>>>>>
>>>>> 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] <javascript:>.
> 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/8d86aee5-fda1-49e2-a1b5-86611ec9367c%40googlegroups.com.

Reply via email to