Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Activity
    Bimba Laszlo
    @bimlas

    @Janno

    Could you describe exactly what you did to get this message across? Try to reproduce it at https: //tiddlywiki.com and write down every step so that I can see this error as well.

    What form did it take? Popup / console / ...

    @matrixbot

    You're right, the GitLab saver does just that for me, tomorrow I'll see what's wrong.

    @sthiago

    Perhaps if you could increase the priority of the saver you want before releasing the tm-save-wiki event ... I don't see exactly the realization yet, I will look into the options tomorrow.

    Jan-Oliver Kaiser
    @Janno
    @bimlas I have since fixed the error by making the API calls adhere to gitlab's documentation. Will send a pull request soon.
    Bimba Laszlo
    @bimlas

    @Janno,

    Great, thanks for fixing it! :+1:

    Does this fix the bug mentioned by @matrixbot?
    Bimba Laszlo
    @bimlas

    @sthiago,

    I tried to change the priority from the outside, but of course I couldn't. Now I'm going to try to create a 9999 priority saver "interface" / "factory" that calls the selected saver.

    Bimba Laszlo
    @bimlas

    @sthiago

    Please let me know if this works for you!
    https://bimlas.gitlab.io/demo/tw5/preferred-saver.html

    Mario Pietsch
    @pmario
    @bimlas ... I think it would be nice to have multiple checkboxes instead of a "single" selector. We would need several "dirty" flags too, to see, if the selected saver has saved. ... But that could be a second step.
    Bimba Laszlo
    @bimlas
    @pmario
    I don't quite understand: would I list the savers in multiple lines and each would have an "enabled" button?
    Mario Pietsch
    @pmario
    That's right. If the saver.canSave() returns true, it should be able to select them.
    Thiago
    @sthiago
    @bimlas, Hey there, only today i saw your messages. I actually got to a point that I like. I created a separate button to trigger a github save, but the main save keeps saving automatically. I like it better not to clutter the repo with tons of commits. I took a quick look at your module, it seems to be in the right direction, but I'd have to keep that tiddler open to change, which I don't particularly like. But it's in the right direction! By the way, read a lot of the wiki when I was researching, I don't remember getting to that SavingMechanism tiddler, I had to figure out the messaging by reading the code lol.
    Milan Radojević
    @mikister

    Hello everyone, I have a quick question. I want to include an external stylesheet in my tiddlywiki5, I know I can have internal ones with $:/tags/Stylesheet tag, but I want to have external ones.

    Is there a standardized way to do this?

    mgordin
    @mgordin

    Hi folks - just wondering if anyone has an answer to this. I have a Tiddlywiki on node.js, and I'm noticing in the console that it's saving the same (seemingly closed) tiddlers over and over - e.g.,

    syncer-server-filesystem: Dispatching 'save' task: Session Notes 16
    syncer-server-filesystem: Dispatching 'save' task: Session Notes 17
    syncer-server-filesystem: Dispatching 'save' task: Session Notes 18

    looping repeatedly. Is this a normal thing, or is something weird going on with my Tiddlywiki?

    mgordin
    @mgordin
    Sorry, question retracted - realized it was due to something silly I did with custom plugins.
    matrixbot
    @matrixbot

    黒雪姫 > <@gitter_mikister:matrix.org> Hello everyone, I have a quick question. I want to include an external stylesheet in my tiddlywiki5, I know I can have internal ones with $:/tags/Stylesheet tag, but I want to have external ones.

    Is there a standardized way to do this?

    Well, you can use pretty much any HTML and CSS. So the way to have external CSS is the same as in HTML <link rel="stylesheet" type="text/css" href="https://www.w3schools.com/CSS/mystyle.css">. Now you only need to make a tiddler that has this HTML. You'll notice that it will only work when the Tiddler is being rendered, that's normal. So you simply need to always keep this tiddler displayed. You can achieve this by adding some of the special system tags that put Tiddlers as part of the UI. I personally like using $:/tags/PageTemplate (among few other tags) for such invisible things that I want to be always rendered.

    Good luck! I hope it will work for you.

    Milan Radojević
    @mikister
    @matrixbot Thanks for the suggestion, I'm curious what other tags are there?
    matrixbot
    @matrixbot

    黒雪姫 > <@gitter_mikister:matrix.org> @matrixbot Thanks for the suggestion, I'm curious what other tags are there?

    If you are interested about other system tags, you can simply search https://tiddlywiki.com/ for "SystemTag" (without quotes). There you can see a list of them with almost no description what they do. You may need to look up components yourself and figure it out on your own where a tag is used/displayed or ask about a tag or what you are trying to achieve. However, if you asked me what other tags you can use for this.... I can say few of them that I know of, so : $:/tags/PageTemplate , $:/tags/AboveStory, $:/tags/BelowStory, $:/tags/SideBar .

    On a side note, my favorite system tag is $:/tags/ViewTemplate which allows me to automatically apply a tiddler on every other tiddler like a template. You use this with conjuction with $list widget for pretty impressive things.

    I hope you have fun with using TiddlyWiki, it's very impressive.

    Milan Radojević
    @mikister
    Thanks @matrixbot
    William Mayner
    @wmayner
    Hi all! I just found out about TiddlyWiki, and I was hoping to get some advice from the community. My colleagues and I are looking for a service to start a Wiki that we can all edit, and then make public. So, rather than a personal notebook, it would be more like a publicly readable Wiki that can only be edited by certain people. So my questions are: (1) Is this possible with TiddlyWiki? (2) Even if it's technically possible, is TiddlyWiki a good tool for that purpose?
    matrixbot
    @matrixbot

    黒雪姫 I will try to reply to you on your first question. The second question should be answered by someone more experienced than me. Though, I think for the second question it depends on the needs. But again, someone more experienced should answer. So to focus on the first one.

    It goes without saying that you will be using server installation. I recommend you use a data folder (an empty folder that has an edition, an edition is file named tiddlywiki.info that contains the edition config). (actually this is alternative way to use git to simulate multi-user edits between individial .tid files)

    Here is a link to few tiddlers that I thought are related: https://tiddlywiki.com/#:[[Installing%20TiddlyWiki%20on%20Node.js]]%20[[WebServer%20Parameter%3A%20credentials]]%20[[WebServer%20Parameter%3A%20writers]]

    Again, this is the most basic way to do it. So to make it into steps:

    1. Install node.js
    2. Install Tiddlywiki
    3. Create new empty tiddlywiki folder - tiddlywiki mywiki --init server - creates "mywiki" with server edition at the current working directory.
    4. Create in the "mywiki" folder a credential file, a comma seperated values. it must have a header line with username,password. these are accounts for your writers.
    5. Now back at the directory where "mywiki" is, start the server with a command like this: tiddlywiki mywiki --listen credentials=mywriters.csv writers="john,mary" port="8888"
    6. visit the webpage hosted on port 8888, the command should disable editing for anonymous users and allow editing for john and mary. To login, you have to visit a page that forces basic web authorization.
    7. http://localhost:8888/login-basic should be the page that forces the basic web authorization so that your writers can login.

    So this is answering question 1 that it is technically possible. Let alone that there are even more ways than this, however this is probably the most straight forward.

    Now it is left for someone to answer question 2. I'd be glad if someone answers question 1 again, maybe there is a better way to do it.

    This is from me, I hope other people would provide much better than me. I hope this is helping you somehow.

    黒雪姫 * I will try to reply to you on your first question. The second question should be answered by someone more experienced than me. Though, I think for the second question it depends on the needs. But again, someone more experienced should answer. So to focus on the first one.

    It goes without saying that you will be using server installation. I recommend you use a data folder (an empty folder that has an edition, an edition is file named tiddlywiki.info that contains the edition config). (actually this is alternative way to use git to simulate multi-user edits between individial .tid files)

    Here is a link to few tiddlers that I thought are related: https://tiddlywiki.com/#:[[Installing%20TiddlyWiki%20on%20Node.js]]%20[[WebServer%20Parameter%3A%20credentials]]%20[[WebServer%20Parameter%3A%20writers]]%20[[WebServer%20Authorization]]%20TiddlyWikiFolders
    Again, this is the most basic way to do it. So to make it into steps:

    1. Install node.js
    2. Install Tiddlywiki
    3. Create new empty tiddlywiki folder - tiddlywiki mywiki --init server - creates "mywiki" with server edition at the current working directory.
    4. Create in the "mywiki" folder a credential file, a comma seperated values. it must have a header line with username,password. these are accounts for your writers.
    5. Now back at the directory where "mywiki" is, start the server with a command like this: tiddlywiki mywiki --listen credentials=mywriters.csv writers="john,mary" port="8888"
    6. visit the webpage hosted on port 8888, the command should disable editing for anonymous users and allow editing for john and mary. To login, you have to visit a page that forces basic web authorization.
    7. http://localhost:8888/login-basic should be the page that forces the basic web authorization so that your writers can login.

    So this is answering question 1 that it is technically possible. Let alone that there are even more ways than this, however this is probably the most straight forward.

    Now it is left for someone to answer question 2. I'd be glad if someone answers question 1 again, maybe there is a better way to do it.

    This is from me, I hope other people would provide much better than me. I hope this is helping you somehow.

    matrixbot
    @matrixbot
    黒雪姫 It's funny how I have no idea about this and I know the answer. Basically fill in Path to target file (e.g. /wiki/ ) with something even if it is \ ... This is what triggers the saver it seems, so if you don't have a path, you should write \ in there. Now, how do I know about this? Well, here: https://groups.google.com/forum/#!topic/TiddlyWiki/UqFiDei4w5s someone asked the same thing on the google news group recently
    黒雪姫 *Wrong slash direction / it should be this one
    Ranjit Singh
    @1nsp1r3rnzt
    Hi, Can anyone guide me how to edit tiddler creation date. I want to import old text notes into TiddlyWiki with orignal creation date. Thanks.
    matrixbot
    @matrixbot

    黒雪姫 Okay, since you are going to import old text notes into TiddlyWiki. I am going to advise you a solution that has to do with generating (programatically) tiddler files (the ones that TiddlyWiki on Node.js creates) simply because they can be easily imported into any version of TiddlyWiki5 including empty.html via drag and drop or the import button in tools. https://tiddlywiki.com/#TiddlerFiles

    Generally speaking, all tiddlers have fields. However, some of them are used by the core (not too many). Most notable ones are: title, text, created, modified, creator, modifier, tags, type and etc. Exhausive list of fields in TiddlyWiki can be found in "Control Panel" > "Info" > "Advanced" > "Tiddler Fields". And in documentation can be found here: https://tiddlywiki.com/#TiddlerFields

    Okay, so given now that we know all this. And as we can see from https://tiddlywiki.com/#TiddlerFiles a .tid file looks like this:

    created: 20191009140837400
    creator: Alice
    modified: 20191009140894743
    modifier: Bob
    title: Awesome Tiddler
    type: text/vnd.tiddlywiki
    
    This is the text of my Tiddler.
    Anything else below is Text.
    
    Doesn't matter how many new lines.

    Only the first newline is important as it delimits the "Header" that contains the fields.

    Remember that only "title" field is required. (Otherwise the format won't be recognized and they'd be untitled.) So in your case, how you'd want it to look, should be something like this:

    created: 20191009140837400
    title: My Text File Name for title
    
    text

    Now you can go and use any programming language of your choice (Perl, Python, etc) to generate yourself *.tid files. However, there is one last detail, how to create the created timestamp format. Well, it is simply YYYYMMDDhhmmssxxx where xxx is miliseconds, I assume you know the other letters (Year,Month,Day,hour,minutes,seconds) More information here: https://tiddlywiki.com/#Date%20Fields You can use the programming language of your choice to get the file attibutes for time created and similar when you generate your .tid files.

    Since they are text notes, you may also set the field type to type: text/plain. This can prevent your notes from inheriting TiddlyWiki syntax and it will help you keep any monospaced formatting if you have used in the text files. (You can later change it from within TiddlyWiki if you plan on reworking that note)

    Important: all fields that are used by the core have convention of being all lowercase. Remember, it is title and not Title and these two are completely different things, same goes for created.

    I think this is all that you need to know to start. If you have other problems or something confusing, feel free to ask again. I wish you good luck and that you will find a way to achieve this.


    A side note, if you never said that you want to import old text notes, my answer would be different and possibly not really what you want to do. Basically, you have to edit the created field on every tiddler. But that field is hidden by default. So you can use the Edit-text widget in a new tiddler, such as <$edit-text tiddler=HelloThere field=created /> or as a table:

    <$list filter="[all[tiddlers]!is[system]]" >
    <<currentTiddler>> <$edit-text tiddler<<currentTiddler>> field=created /> <br/>
    </$list>

    Either way, please read the answer above and not this one, This one gives you a different approach, hopefully it can help you learn more about TiddlyWiki.

    I wish you good luck and happy TiddlyWiking!

    matrixbot
    @matrixbot
    黒雪姫 Mini-tip on .tid files: You can click on the "V" icon left from the pencil on any https://tiddlywiki.com and from there you can select "Export tiddler" and then ".tid" file, this is how you can export individual tiddler into .tid file, if you ever need to move it around or to investigate. Also, the .tid file reminds me of http headers. Also if json is easier format for you to use, you can also do that and investigate the structure of it simply by testing it yourself by exporting one following the instruction here https://tiddlywiki.com/#How%20to%20export%20tiddlers or you may consider https://tiddlywiki.com/#MultiTiddlerFiles if that seems easier for you. However, if it is one time thing, I suggest you to do the method I explained in detail above as it seems most trivial to create.
    Ranjit Singh
    @1nsp1r3rnzt
    @matrixbot thanks for the detailed explaination. I understood it and will be implementing it.
    Ranjit Singh
    @1nsp1r3rnzt
    @matrixbot How can i show data from all tiddlers tagged with a specific tag in another tiddler? I have various tiddlers tagged with the month name. I want to show the data from all these in another tiddler named january. So far, I got <<list-links filter:"[tag[January]]">> which generates the list of all those tiddlers but I am clueless about how to include the data from them.
    matrixbot
    @matrixbot

    黒雪姫 Try this:
    <$list filter="[tag[January]]" >
    Hello, I am <<currentTiddler>> and My Title is {{!!title}}, but this is the same information? So it can be chosen. Also My Text looks like:
    {{!!text}}
    </$list>

    Please note that this is a TiddlyWiki Widget (and it looks like HTML tag, except it starts with $ and parameters are given like HTML attribs, where Macros (ones like <<list-links filter:"[tag[something]]" >> have different notation for optional parameter).

    Also what I think you are interested in is the transclusion feature of TiddlyWiki, I used that with {{!!text}} and {{!!title}}, simply because those are the fields. I used the $list widget to simply "loop" through every tiddler and display them one after another. From there you could make other interesting things but this should get you started. I think these tiddlers may be helpful to review/check out:
    https://tiddlywiki.com/#Transclusion:Transclusion%20%5B%5BTransclusion%20Basic%20Usage%5D%5D%20ListWidget

    If this doesn't help or you get another question, feel free to ask again. I will try to help you so that you can understand the concepts, I think this is the first step where you can start creating interesting things with TiddlyWiki, so keep it up.

    Ranjit Singh
    @1nsp1r3rnzt
    @matrixbot Great. I got this working. Now, How can i tag the newly created journal with today's date. I tried YYYY0MM0DD in the journal tags settings but it did not work.
    Paul Reiber
    @PaulReiber

    Spinning my wheels on this. Hoping someone can help.
    Here's a working filter, which matches when a field is exactly some value:
    filter='[field:somefield[exactvalue]]'

    I'm trying to build a filter that'll match when a field CONTAINS somewhere within it a given string.

    For example, if field somefield was "xxx yyy zzz" to match it because it has "yyy" somewhere in there.

    I've tried variations like this:
    filter='[has:somefield +contains[yyy]]'
    and:
    filter='[field:somefield +contains[yyy]]'

    ...neither which works. How can I say, "if string yyy is anywhere in the value of field somefield?

    matrixbot
    @matrixbot

    黒雪姫 You can use either the search operator for a field or if your field can be enumated as list you can simply use enlist or list operator and check if that produces a match with contains. However, I think what you are looking for is the search operator. You can use it like this:

         {{{  [search:somefield[something]  }}}

    Check here for more examples: https://tiddlywiki.com/#search%20Operator%20(Examples):%5B%5Bsearch%20Operator%20(Examples)%5D%5D%20%5B%5Bsearch%20Operator%5D%5D

    黒雪姫 * You can use either the search operator for a field or if your field can be enumated as list you can simply use enlist or list operator and check if that produces a match with contains. However, I think what you are looking for is the search operator. You can use it like this:

         {{{  [search:somefield[something]]  }}}

    Edit: forgot the closing bracket. Sorry.
    Check here for more examples: https://tiddlywiki.com/#search%20Operator%20(Examples):%5B%5Bsearch%20Operator%20(Examples)%5D%5D%20%5B%5Bsearch%20Operator%5D%5D

    Paul Reiber
    @PaulReiber
    Wow... thanks, @matrixbot !
    matrixbot
    @matrixbot
    黒雪姫 Anytime! I hope it helps!
    Paul Reiber
    @PaulReiber
    It worked perfectly with search... thanks again!
    matrixbot
    @matrixbot
    黒雪姫 And yes, "contains" seems to be for a "title list" for such fields https://tiddlywiki.com/#Title%20List
    黒雪姫 So it was search what you were looking for!
    黒雪姫 Yay, I am glad it worked!
    黒雪姫 I hope you have more fun in your TiddlyWiki adventure!
    Paul Reiber
    @PaulReiber
    Hello again! Follow-on question. I have an edit-text which properly populates a field, and want to refer to that field within the filter. Any idea why this doesn't work?
    [search:layout[{{$:/temp!!search}}]]
    ...shouldn't that find all tiddlers with a layout field that includes whatever's in the field $:/temp!!search ?
    matrixbot
    @matrixbot

    黒雪姫 The transclusion, variables in filters consits only of one corresponding bracket. e.g. {} for transclusion in filters and <> for using variables in filters. However, these brackets replace the regular "parameter" brackets in the filter, example:

      [search:layout[regular text brackets]]

    This is the regular way to pass literal text into the operator.

      [search:layout{$:/temp!!search}]

    This transcludes a field, same as {{$:/temp!!search}} but in the filter syntax

      [search:layout<variable>] 

    This uses a variable, usually you will use that to pass a variable as a text.

    So basically, in filters, the brackets are only once and they do get replaced depending on what you are doing, is it literal text or transclusion or variable

    Further reading:

    黒雪姫 Basically, filters are pretty basic when it comes to anything not literal text, so their brackets change to operate in predefined 3 different modes.

    黒雪姫 That's why you cannot do [search:layout[{{$:/temp!!search}}]] because, the filters do not translate wikitext at all, they don't know what WikiText is. They understand filter language at best, which works as described above.

    You can say that TiddlyWiki basically consists of 2 languages that complement each other, the WikiText + Widgets Macro language and Filter Language.

    matrixbot
    @matrixbot
    黒雪姫 If there are any more questions, I'd gladly try to demistify them. I hope this helps you learn more about TiddlyWiki and solves your problem!
    Paul Reiber
    @PaulReiber
    ...thanks again, matrixbot! Your explanation is outstanding - it'll help me a lot. Sure explains a lot of odd stuff I was seeing!
    matrixbot
    @matrixbot
    黒雪姫 Thank you for your kind words, it really makes me smile to see that they were helpful and that you appreciate them!