mirror of
https://github.com/Jermolene/TiddlyWiki5
synced 2024-12-26 01:50:28 +00:00
Merge remote-tracking branch 'upstream/master' into fr-FR
This commit is contained in:
commit
6b91c354c3
@ -1728,6 +1728,7 @@ $tw.boot.startup = function(options) {
|
|||||||
$tw.utils.registerFileType("text/css","utf8",".css");
|
$tw.utils.registerFileType("text/css","utf8",".css");
|
||||||
$tw.utils.registerFileType("text/html","utf8",".html");
|
$tw.utils.registerFileType("text/html","utf8",".html");
|
||||||
$tw.config.fileExtensionInfo[".htm"] = {type: "text/html"};
|
$tw.config.fileExtensionInfo[".htm"] = {type: "text/html"};
|
||||||
|
$tw.config.fileExtensionInfo[".hta"] = {type: "text/html"};
|
||||||
$tw.utils.registerFileType("application/hta","utf16le",".hta",{deserializerType:"text/html"});
|
$tw.utils.registerFileType("application/hta","utf16le",".hta",{deserializerType:"text/html"});
|
||||||
$tw.utils.registerFileType("application/javascript","utf8",".js");
|
$tw.utils.registerFileType("application/javascript","utf8",".js");
|
||||||
$tw.utils.registerFileType("application/json","utf8",".json");
|
$tw.utils.registerFileType("application/json","utf8",".json");
|
||||||
|
@ -1,3 +0,0 @@
|
|||||||
title: $:/config/EditorTypeMappings/image/gif
|
|
||||||
|
|
||||||
bitmap
|
|
@ -1,3 +0,0 @@
|
|||||||
title: $:/config/EditorTypeMappings/image/jpeg
|
|
||||||
|
|
||||||
bitmap
|
|
@ -1,3 +0,0 @@
|
|||||||
title: $:/config/EditorTypeMappings/image/jpg
|
|
||||||
|
|
||||||
bitmap
|
|
@ -1,3 +0,0 @@
|
|||||||
title: $:/config/EditorTypeMappings/image/png
|
|
||||||
|
|
||||||
bitmap
|
|
@ -1,3 +0,0 @@
|
|||||||
title: $:/config/EditorTypeMappings/image/x-icon
|
|
||||||
|
|
||||||
bitmap
|
|
@ -1,3 +0,0 @@
|
|||||||
title: $:/config/EditorTypeMappings/text/vnd.tiddlywiki
|
|
||||||
|
|
||||||
text
|
|
8
core/icon.tid
Normal file
8
core/icon.tid
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
title: $:/core/icon
|
||||||
|
tags: $:/tags/Image
|
||||||
|
|
||||||
|
<svg width="22pt" height="22pt" viewBox="0 0 128 128">
|
||||||
|
<g fill-rule="evenodd">
|
||||||
|
<path d="M64,0 L118.5596,32 L118.5596,96 L64,128 L9.44039956,96 L9.44039956,32 L64,0 Z M85.1274062,95.4080042 C81.5494069,95.3047989 79.9756384,95.3136745 78.1534289,92.2560668 L76.733228,92.2975844 C75.0801573,92.2226776 75.7690718,92.256631 74.6662332,92.2006037 C72.822332,92.1273894 73.1177105,90.3396383 72.7933215,89.3950941 C72.2744094,86.1888106 73.4800004,82.9659571 73.4419681,79.7590415 C73.428503,78.6206623 71.8498363,74.5912119 71.2858469,73.150598 C69.5178104,73.490271 67.7401827,73.5550323 65.9465048,73.6462337 C61.8120677,73.6358996 57.7056703,73.1192806 53.628962,72.4632293 C52.8345141,75.8119659 50.473106,80.4990751 52.4249964,83.9024219 C54.794228,87.4227874 56.45684,88.3980868 59.0339286,88.6103485 C61.6109895,88.8224384 62.1929077,91.7913467 61.5694236,92.8517379 C61.0175661,93.5845847 60.0476425,93.7176093 59.2235739,93.8951553 L57.5752147,93.9742093 C56.2780933,93.9296822 55.1187057,93.5723203 53.9629071,93.0211763 C52.0327307,91.9217335 50.0392154,89.6360411 48.5580719,87.9950695 C48.9028934,88.6503604 49.1085703,89.9296134 48.7958122,90.5249222 C47.9200982,91.7907825 44.1326257,91.7830485 42.3980986,90.996433 C40.4277043,90.1030197 35.6664658,83.8299171 34.9303347,79.1316435 C36.8887135,75.3525836 39.7416856,72.0607931 41.1850909,67.9459622 C38.038852,65.8974525 36.3537697,62.5626501 36.5725198,58.7851619 L36.6514762,58.3478913 C33.5557196,58.9392548 35.1611076,58.7192345 31.8308843,58.9762949 C21.2252017,58.9431831 11.8983553,51.6054609 17.1501626,40.2013394 C17.4916881,39.5260388 17.8165752,38.9120742 18.3955298,39.205288 C18.8602051,39.440565 18.793457,40.3843583 18.5597268,41.4309776 C15.5577203,55.057365 30.2297484,55.161659 39.2489049,52.6401668 C40.1440491,52.3898612 41.9243599,50.7040626 43.1576153,50.1452033 C45.1734825,49.231769 47.3615008,48.8611654 49.5329344,48.5941256 C54.9337165,47.9661653 61.4247946,50.8693254 64.7228943,50.9641212 C68.0210328,51.0589131 72.7127563,50.1582941 75.5928121,50.3479196 C77.6825379,50.4454833 79.734518,50.8303777 81.7507717,51.3786556 C83.0558682,44.8897102 83.1481363,40.1071855 86.2420439,39 C88.0578592,39.2926449 89.4570618,41.8175853 90.4927503,43.1666676 C92.6062592,43.0809984 94.6134653,43.6270518 96.6091885,44.233091 C100.222332,43.7098824 103.254293,41.6394732 106.445091,40.0288813 C103.211767,42.7223157 102.77315,47.1042714 103.142605,51.1564486 C103.280001,53.2591496 102.697713,55.5420684 101.977868,57.6949551 C100.630795,61.2025356 98.0292951,64.8997754 95.009908,64.7101481 C93.868464,64.673306 93.2053722,64.0138 92.3570101,63.3096933 C92.1924386,64.7358711 91.5456263,66.0084523 90.9221089,67.2697748 C89.4822206,70.066388 85.7194927,71.2987762 82.2354164,74.2849828 C78.7515768,77.2712347 83.3502408,87.9363951 84.4652464,89.8796277 C85.5800708,91.8230453 88.6922789,92.5339992 87.484639,94.28798 C87.1151913,94.8672415 86.5502884,95.0744181 85.9465544,95.2991347 L85.1274062,95.4080042 Z M45.0303574,86.5575217 L45.5828655,86.699414 C46.277142,86.4290005 47.6727292,86.8469317 48.4130246,87.0512628 C47.0498362,85.7357167 44.9960929,83.8038623 43.5164417,82.5859671 C43.0307739,81.1115156 43.2380006,79.6278431 43.3424927,78.122648 L43.3634516,77.9981264 C42.7802099,79.2030731 42.040056,80.3743566 41.6422405,81.6426885 C41.176708,83.3537773 43.7112632,85.1999538 44.6940603,86.2580263 L45.0303574,86.5575217 Z"></path>
|
||||||
|
</g>
|
||||||
|
</svg>
|
8
core/images/export-button.tid
Normal file
8
core/images/export-button.tid
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
title: $:/core/images/export-button
|
||||||
|
tags: $:/tags/Image
|
||||||
|
|
||||||
|
<svg class="tw-image-export-button tw-image-button" width="22pt" height="22pt" viewBox="0 0 128 128">
|
||||||
|
<g fill-rule="evenodd">
|
||||||
|
<path d="M128.078948,81.2190241 L128.078948,103.072887 C128.078948,110.252507 122.258391,116.079527 115.07837,116.079527 L13.0007031,116.079527 C5.81517113,116.079527 0.0001254444,110.256256 0.0001254444,103.072887 L0.0001254444,60.043677 C0.0001254444,52.8640576 5.82068232,47.037037 13.0007031,47.037037 L50.9939627,47.037037 C46.9232966,53.1682159 47.3681412,61.433368 52.4317358,67.049353 L36.0221654,67.049353 C31.0486129,67.049353 27.016752,71.0784493 27.016752,76.0490922 L27.016752,86.0668561 C27.016752,91.0372749 31.0503474,95.0665954 36.0221654,95.0665954 L92.0569077,95.0665954 C97.0304602,95.0665954 101.062321,91.0374991 101.062321,86.0668561 L101.062321,76.6968446 L104.185741,73.5608014 L108.938546,78.3104149 C114.124001,83.4958696 121.907794,84.4351094 128.078948,81.2190241 L128.078948,81.2190241 Z M126.997239,16.6885444 C127.022653,13.3460126 124.333584,10.6569433 120.991052,10.682357 L71.0419165,11.0621275 C67.6993847,11.0875413 64.9691114,13.8178146 64.9436976,17.1603465 C64.9314934,18.7654933 65.5574285,20.3000438 66.6838081,21.4264234 L74.4804244,29.2230397 C76.8259808,31.5685961 76.7968452,35.4006519 74.4153482,37.7821489 L60.4010471,51.79645 C58.0195502,54.1779469 57.9904145,58.0100028 60.3359709,60.3555592 L77.324037,77.3436253 C79.6695934,79.6891817 83.5016493,79.6600461 85.8831462,77.2785491 L99.8974474,63.264248 C102.278944,60.8827511 106.111,60.8536154 108.456557,63.1991718 L116.253173,70.9957881 C118.598729,73.3413446 122.430785,73.3122089 124.812282,70.930712 C125.955921,69.7870731 126.605265,68.2428265 126.617469,66.6376797 L126.997239,16.6885444 Z"></path>
|
||||||
|
</g>
|
||||||
|
</svg>
|
8
core/images/plugin-generic-language.tid
Normal file
8
core/images/plugin-generic-language.tid
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
title: $:/core/images/plugin-generic-language
|
||||||
|
tags: $:/tags/Image
|
||||||
|
|
||||||
|
<svg width="22pt" height="22pt" viewBox="0 0 128 128">
|
||||||
|
<g fill-rule="evenodd">
|
||||||
|
<path d="M61.2072232,68.1369825 C56.8829239,70.9319564 54.2082892,74.793177 54.2082892,79.0581634 C54.2082892,86.9638335 63.3980995,93.4821994 75.2498076,94.3940006 C77.412197,98.2964184 83.8475284,101.178858 91.5684735,101.403106 C86.4420125,100.27851 82.4506393,97.6624107 80.9477167,94.3948272 C92.8046245,93.4861461 102,86.9662269 102,79.0581634 C102,70.5281905 91.3014611,63.6132813 78.1041446,63.6132813 C71.5054863,63.6132813 65.5315225,65.3420086 61.2072232,68.1369825 Z M74.001066,53.9793443 C69.6767667,56.7743182 63.7028029,58.5030456 57.1041446,58.5030456 C54.4851745,58.5030456 51.9646095,58.2307276 49.6065315,57.7275105 C46.2945155,59.9778212 41.2235699,61.4171743 35.5395922,61.4171743 C35.4545771,61.4171743 35.3696991,61.4168523 35.2849622,61.4162104 C39.404008,60.5235193 42.7961717,58.6691298 44.7630507,56.286533 C37.8379411,53.5817651 33.2082892,48.669413 33.2082892,43.0581634 C33.2082892,34.5281905 43.9068281,27.6132812 57.1041446,27.6132812 C70.3014611,27.6132812 81,34.5281905 81,43.0581634 C81,47.3231498 78.3253653,51.1843704 74.001066,53.9793443 Z M64,0 L118.5596,32 L118.5596,96 L64,128 L9.44039956,96 L9.44039956,32 L64,0 Z"></path>
|
||||||
|
</g>
|
||||||
|
</svg>
|
8
core/images/plugin-generic-plugin.tid
Normal file
8
core/images/plugin-generic-plugin.tid
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
title: $:/core/images/plugin-generic-plugin
|
||||||
|
tags: $:/tags/Image
|
||||||
|
|
||||||
|
<svg width="22pt" height="22pt" viewBox="0 0 128 128">
|
||||||
|
<g fill-rule="evenodd">
|
||||||
|
<path d="M40.3972881,76.4456988 L40.3972881,95.3404069 L54.5170166,95.3404069 L54.5170166,95.3404069 C54.5165526,95.3385183 54.516089,95.3366295 54.515626,95.3347404 C54.6093153,95.3385061 54.7034848,95.3404069 54.7980982,95.3404069 C58.6157051,95.3404069 61.710487,92.245625 61.710487,88.4280181 C61.710487,86.6197822 61.01617,84.9737128 59.8795929,83.7418666 L59.8795929,83.7418666 C59.8949905,83.7341665 59.9104102,83.7265043 59.925852,83.7188798 C58.8840576,82.5086663 58.2542926,80.9336277 58.2542926,79.2114996 C58.2542926,75.3938927 61.3490745,72.2991108 65.1666814,72.2991108 C68.9842884,72.2991108 72.0790703,75.3938927 72.0790703,79.2114996 C72.0790703,81.1954221 71.2432806,82.9841354 69.9045961,84.2447446 L69.9045961,84.2447446 C69.9333407,84.2629251 69.9619885,84.281245 69.9905383,84.2997032 L69.9905383,84.2997032 C69.1314315,85.4516923 68.6228758,86.8804654 68.6228758,88.4280181 C68.6228758,91.8584969 71.1218232,94.7053153 74.3986526,95.2474079 C74.3913315,95.2784624 74.3838688,95.3094624 74.3762652,95.3404069 L95.6963988,95.3404069 L95.6963988,75.5678578 L95.6963988,75.5678578 C95.6466539,75.5808558 95.5967614,75.5934886 95.5467242,75.6057531 C95.5504899,75.5120637 95.5523907,75.4178943 95.5523907,75.3232809 C95.5523907,71.505674 92.4576088,68.4108921 88.6400019,68.4108921 C86.831766,68.4108921 85.1856966,69.105209 83.9538504,70.2417862 L83.9538504,70.2417862 C83.9461503,70.2263886 83.938488,70.2109688 83.9308636,70.1955271 C82.7206501,71.2373215 81.1456115,71.8670865 79.4234834,71.8670865 C75.6058765,71.8670865 72.5110946,68.7723046 72.5110946,64.9546976 C72.5110946,61.1370907 75.6058765,58.0423088 79.4234834,58.0423088 C81.4074059,58.0423088 83.1961192,58.8780985 84.4567284,60.2167829 L84.4567284,60.2167829 C84.4749089,60.1880383 84.4932288,60.1593906 84.511687,60.1308407 L84.511687,60.1308407 C85.6636761,60.9899475 87.0924492,61.4985032 88.6400019,61.4985032 C92.0704807,61.4985032 94.9172991,58.9995558 95.4593917,55.7227265 C95.538755,55.7414363 95.6177614,55.761071 95.6963988,55.7816184 L95.6963988,40.0412962 L74.3762652,40.0412962 L74.3762652,40.0412962 C74.3838688,40.0103516 74.3913315,39.9793517 74.3986526,39.9482971 L74.3986526,39.9482971 C71.1218232,39.4062046 68.6228758,36.5593862 68.6228758,33.1289073 C68.6228758,31.5813547 69.1314315,30.1525815 69.9905383,29.0005925 C69.9619885,28.9821342 69.9333407,28.9638143 69.9045961,28.9456339 C71.2432806,27.6850247 72.0790703,25.8963113 72.0790703,23.9123888 C72.0790703,20.0947819 68.9842884,17 65.1666814,17 C61.3490745,17 58.2542926,20.0947819 58.2542926,23.9123888 C58.2542926,25.6345169 58.8840576,27.2095556 59.925852,28.419769 L59.925852,28.419769 C59.9104102,28.4273935 59.8949905,28.4350558 59.8795929,28.4427558 C61.01617,29.674602 61.710487,31.3206715 61.710487,33.1289073 C61.710487,36.9465143 58.6157051,40.0412962 54.7980982,40.0412962 C54.7034848,40.0412962 54.6093153,40.0393953 54.515626,40.0356296 L54.515626,40.0356296 C54.516089,40.0375187 54.5165526,40.0394075 54.5170166,40.0412962 L40.3972881,40.0412962 L40.3972881,52.887664 L40.3972881,52.887664 C40.4916889,53.3430132 40.5412962,53.8147625 40.5412962,54.2980982 C40.5412962,58.1157051 37.4465143,61.210487 33.6289073,61.210487 C32.0813547,61.210487 30.6525815,60.7019313 29.5005925,59.8428245 C29.4821342,59.8713744 29.4638143,59.9000221 29.4456339,59.9287667 C28.1850247,58.5900823 26.3963113,57.7542926 24.4123888,57.7542926 C20.5947819,57.7542926 17.5,60.8490745 17.5,64.6666814 C17.5,68.4842884 20.5947819,71.5790703 24.4123888,71.5790703 C26.134517,71.5790703 27.7095556,70.9493053 28.919769,69.9075109 L28.919769,69.9075109 C28.9273935,69.9229526 28.9350558,69.9383724 28.9427558,69.95377 C30.174602,68.8171928 31.8206715,68.1228758 33.6289073,68.1228758 C37.4465143,68.1228758 40.5412962,71.2176578 40.5412962,75.0352647 C40.5412962,75.5186004 40.4916889,75.9903496 40.3972881,76.4456988 Z M64,0 L118.5596,32 L118.5596,96 L64,128 L9.44039956,96 L9.44039956,32 L64,0 Z"></path>
|
||||||
|
</g>
|
||||||
|
</svg>
|
8
core/images/plugin-generic-theme.tid
Normal file
8
core/images/plugin-generic-theme.tid
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
title: $:/core/images/plugin-generic-theme
|
||||||
|
tags: $:/tags/Image
|
||||||
|
|
||||||
|
<svg width="22pt" height="22pt" viewBox="0 0 128 128">
|
||||||
|
<g fill-rule="evenodd">
|
||||||
|
<path d="M27.6619958,98.5383065 C27.5690581,98.5388896 27.4761291,98.539182 27.383212,98.539182 C41.5122315,92.2342259 36.7359182,71.4340774 52.2062903,71.4340772 C52.3396942,72.0325374 52.4778143,72.6764878 52.6543744,73.3309353 C41.7206358,71.5725612 42.70852,93.6013809 27.6619958,98.5383065 Z M27.962646,98.5354078 C44.3675979,98.3221342 60.9448114,89.104528 60.944811,79.6231217 C57.0326028,79.6231217 55.0057081,78.1546059 53.8483468,76.2715831 C46.8437297,73.3160546 41.0335584,95.5643154 27.9626323,98.5354081 Z M60.4476718,66.8723739 C57.4632888,63.6421817 54.9582687,60.7541572 53.4305549,58.7453802 C47.3662923,50.7715364 44.307483,54.9700909 40.8462757,58.7453801 C37.3850684,62.5206692 41.7580858,65.5796149 38.4732643,68.2464352 C35.1884428,70.9132556 35.391237,71.8376623 29.8473278,66.9588778 C24.3034186,62.0800933 23.919977,60.7368279 26.4649349,57.9530299 C29.0098928,55.1692318 31.1369568,59.5524845 36.3357237,54.6053302 C41.5344905,49.6581758 37.1673192,45.2736183 37.1673192,45.2736183 C37.1673192,45.2736183 47.9916921,23.1463023 62.4556497,24.7805686 C76.9196074,26.4148348 56.9839048,22.6644011 52.0250205,40.0179431 C49.9018746,47.4478606 52.4201529,45.6971267 56.4460414,48.8353078 C57.8695188,49.9449088 63.120208,53.6842856 69.3136884,58.3372485 C77.8095419,50.1273311 87.3705002,40.8200581 90.1462007,38.0443577 C94.9225135,33.268045 99.6988262,38.0443577 94.9225134,42.8206705 C92.2168565,45.5263274 83.0052228,54.3768782 74.6585455,62.4104777 C84.7196352,70.2010353 95.1107413,79.0341049 95.1107416,82.5307694 C95.1107421,88.9149413 92.3944614,92.7263341 86.6764506,90.6368273 C83.0906414,89.3264812 73.3126471,80.2536547 65.0234105,71.7029822 C62.8994697,73.7599251 61.2357389,75.3821997 60.3189624,76.2989761 C57.6045976,78.4574835 53.6647127,73.2589589 55.5426497,71.5226634 C56.5140946,70.6244887 58.249291,68.9770292 60.4476718,66.8723739 L60.4476718,66.8723739 Z M64,0 L118.5596,32 L118.5596,96 L64,128 L9.44039956,96 L9.44039956,32 L64,0 Z"></path>
|
||||||
|
</g>
|
||||||
|
</svg>
|
9
core/images/tag-button.tid
Normal file
9
core/images/tag-button.tid
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
title: $:/core/images/tag-button
|
||||||
|
tags: $:/tags/Image
|
||||||
|
|
||||||
|
<svg class="tw-image-tag-button tw-image-button" width="22pt" height="22pt" viewBox="0 0 128 128">
|
||||||
|
<g fill-rule="evenodd">
|
||||||
|
<path d="M18.1643182,47.6600756 L18.1677196,51.7651887 C18.1708869,55.5878829 20.3581578,60.8623899 23.0531352,63.5573673 L84.9021823,125.406414 C87.5996731,128.103905 91.971139,128.096834 94.6717387,125.396234 L125.766905,94.3010679 C128.473612,91.5943612 128.472063,87.2264889 125.777085,84.5315115 L63.9280381,22.6824644 C61.2305472,19.9849735 55.9517395,17.801995 52.1318769,17.8010313 L25.0560441,17.7942007 C21.2311475,17.7932358 18.1421354,20.8872832 18.1452985,24.7049463 L18.1535504,34.6641936 C18.2481119,34.6754562 18.3439134,34.6864294 18.4409623,34.6971263 C22.1702157,35.1081705 26.9295004,34.6530132 31.806204,33.5444844 C32.1342781,33.0700515 32.5094815,32.6184036 32.9318197,32.1960654 C35.6385117,29.4893734 39.5490441,28.718649 42.94592,29.8824694 C43.0432142,29.8394357 43.1402334,29.7961748 43.2369683,29.7526887 L43.3646982,30.0368244 C44.566601,30.5115916 45.6933052,31.2351533 46.6655958,32.2074439 C50.4612154,36.0030635 50.4663097,42.1518845 46.6769742,45.94122 C43.0594074,49.5587868 37.2914155,49.7181264 33.4734256,46.422636 C28.1082519,47.5454734 22.7987486,48.0186448 18.1643182,47.6600756 Z"></path>
|
||||||
|
<path d="M47.6333528,39.5324628 L47.6562932,39.5834939 C37.9670934,43.9391617 26.0718874,46.3819521 17.260095,45.4107025 C5.27267473,44.0894301 -1.02778744,36.4307276 2.44271359,24.0779512 C5.56175386,12.9761516 14.3014034,4.36129832 24.0466405,1.54817001 C34.7269254,-1.53487574 43.7955833,3.51606438 43.7955834,14.7730751 L35.1728168,14.7730752 C35.1728167,9.91428944 32.0946059,8.19982862 26.4381034,9.83267419 C19.5270911,11.8276553 13.046247,18.2159574 10.7440788,26.4102121 C8.82861123,33.2280582 11.161186,36.0634845 18.2047888,36.8398415 C25.3302805,37.6252244 35.7353482,35.4884477 44.1208333,31.7188498 L44.1475077,31.7781871 C44.159701,31.7725635 44.1718402,31.7671479 44.1839238,31.7619434 C45.9448098,31.0035157 50.4503245,38.3109156 47.7081571,39.5012767 C47.6834429,39.512005 47.6585061,39.5223987 47.6333528,39.5324628 Z"></path>
|
||||||
|
</g>
|
||||||
|
</svg>
|
@ -52,5 +52,7 @@ HideSideBar/Caption: hide sidebar
|
|||||||
HideSideBar/Hint: Hide sidebar
|
HideSideBar/Hint: Hide sidebar
|
||||||
ShowSideBar/Caption: show sidebar
|
ShowSideBar/Caption: show sidebar
|
||||||
ShowSideBar/Hint: Show sidebar
|
ShowSideBar/Hint: Show sidebar
|
||||||
|
TagManager/Caption: tag manager
|
||||||
|
TagManager/Hint: Open tag manager
|
||||||
Theme/Caption: theme
|
Theme/Caption: theme
|
||||||
Theme/Hint: Choose the display theme
|
Theme/Hint: Choose the display theme
|
||||||
|
@ -64,9 +64,6 @@ Basics/Title/Prompt: Title of this ~TiddlyWiki:
|
|||||||
Basics/Username/Prompt: Username for signing edits:
|
Basics/Username/Prompt: Username for signing edits:
|
||||||
Basics/Version/Prompt: ~TiddlyWiki version:
|
Basics/Version/Prompt: ~TiddlyWiki version:
|
||||||
Plugins/Caption: Plugins
|
Plugins/Caption: Plugins
|
||||||
Plugins/Fields/Description: Description
|
|
||||||
Plugins/Fields/Title: Title
|
|
||||||
Plugins/Fields/Version: Version
|
|
||||||
Plugins/Language/Prompt: Languages
|
Plugins/Language/Prompt: Languages
|
||||||
Plugins/Plugin/Prompt: Plugins
|
Plugins/Plugin/Prompt: Plugins
|
||||||
Plugins/Theme/Prompt: Themes
|
Plugins/Theme/Prompt: Themes
|
||||||
|
@ -30,3 +30,4 @@ TagManager/Colour/Heading: Colour
|
|||||||
TagManager/Count/Heading: Count
|
TagManager/Count/Heading: Count
|
||||||
TagManager/Icon/Heading: Icon
|
TagManager/Icon/Heading: Icon
|
||||||
TagManager/Tag/Heading: Tag
|
TagManager/Tag/Heading: Tag
|
||||||
|
UnsavedChangesWarning: You have unsaved changes in TiddlyWiki
|
||||||
|
@ -11,8 +11,6 @@ Recent/Caption: Recent
|
|||||||
Shadows/Caption: Shadows
|
Shadows/Caption: Shadows
|
||||||
System/Caption: System
|
System/Caption: System
|
||||||
Tags/Caption: Tags
|
Tags/Caption: Tags
|
||||||
Tags/TagManager/Caption: Tag Manager
|
|
||||||
Tags/Untagged/Caption: untagged
|
Tags/Untagged/Caption: untagged
|
||||||
Tools/Caption: Tools
|
Tools/Caption: Tools
|
||||||
Types/Caption: Types
|
Types/Caption: Types
|
||||||
|
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
title: $:/language/Flag
|
title: $:/languages/en-GB/icon
|
||||||
type: image/svg+xml
|
type: image/svg+xml
|
||||||
|
|
||||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 60 30" width="1200" height="600">
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 60 30" width="1200" height="600">
|
@ -48,7 +48,7 @@ exports.parse = function() {
|
|||||||
// Advance the parser position to past the tag
|
// Advance the parser position to past the tag
|
||||||
this.parser.pos = tag.end;
|
this.parser.pos = tag.end;
|
||||||
// Check for an immediately following double linebreak
|
// Check for an immediately following double linebreak
|
||||||
var hasLineBreak = !tag.isSelfClosing && !!$tw.utils.parseTokenRegExp(this.parser.source,this.parser.pos,/([^\S\n]*\r?\n(?:[^\S\n]*\r?\n|$))/g);
|
var hasLineBreak = !tag.isSelfClosing && !!$tw.utils.parseTokenRegExp(this.parser.source,this.parser.pos,/([^\S\n\r]*\r?\n(?:[^\S\n\r]*\r?\n|$))/g);
|
||||||
// Set whether we're in block mode
|
// Set whether we're in block mode
|
||||||
tag.isBlock = this.is.block || hasLineBreak;
|
tag.isBlock = this.is.block || hasLineBreak;
|
||||||
// Parse the body if we need to
|
// Parse the body if we need to
|
||||||
@ -125,7 +125,7 @@ exports.parseTag = function(source,pos,options) {
|
|||||||
pos = token.end;
|
pos = token.end;
|
||||||
// Check for a required line break
|
// Check for a required line break
|
||||||
if(options.requireLineBreak) {
|
if(options.requireLineBreak) {
|
||||||
token = $tw.utils.parseTokenRegExp(source,pos,/([^\S\n]*\r?\n(?:[^\S\n]*\r?\n|$))/g);
|
token = $tw.utils.parseTokenRegExp(source,pos,/([^\S\n\r]*\r?\n(?:[^\S\n\r]*\r?\n|$))/g);
|
||||||
if(!token) {
|
if(!token) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
@ -27,7 +27,7 @@ Instantiate parse rule
|
|||||||
exports.init = function(parser) {
|
exports.init = function(parser) {
|
||||||
this.parser = parser;
|
this.parser = parser;
|
||||||
// Regexp to match
|
// Regexp to match
|
||||||
this.matchRegExp = /^\\define\s+([^(\s]+)\(\s*([^)]*)\)(\r?\n)?/mg;
|
this.matchRegExp = /^\\define\s+([^(\s]+)\(\s*([^)]*)\)(\s*\r?\n)?/mg;
|
||||||
};
|
};
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -58,7 +58,7 @@ exports.parse = function() {
|
|||||||
var reEnd;
|
var reEnd;
|
||||||
if(this.match[3]) {
|
if(this.match[3]) {
|
||||||
// If so, the end of the body is marked with \end
|
// If so, the end of the body is marked with \end
|
||||||
reEnd = /(\r?\n\\end\r?\n)/mg;
|
reEnd = /(\r?\n\\end(?:$|\r?\n))/mg;
|
||||||
} else {
|
} else {
|
||||||
// Otherwise, the end of the definition is marked by the end of the line
|
// Otherwise, the end of the definition is marked by the end of the line
|
||||||
reEnd = /(\r?\n)/mg;
|
reEnd = /(\r?\n)/mg;
|
||||||
|
@ -24,10 +24,10 @@ exports.name = "wikilink";
|
|||||||
exports.types = {inline: true};
|
exports.types = {inline: true};
|
||||||
|
|
||||||
var textPrimitives = {
|
var textPrimitives = {
|
||||||
upperLetter: "[A-Z\u00c0-\u00de\u0150\u0170]",
|
upperLetter: "[A-Z\u00c0-\u00d6\u00d8-\u00de\u0150\u0170]",
|
||||||
lowerLetter: "[a-z0-9_\\-\u00df-\u00ff\u0151\u0171]",
|
lowerLetter: "[a-z0-9\u00df-\u00f6\u00f8-\u00ff\u0151\u0171]",
|
||||||
anyLetter: "[A-Za-z0-9_\\-\u00c0-\u00de\u00df-\u00ff\u0150\u0170\u0151\u0171]",
|
anyLetter: "[A-Za-z0-9\u00c0-\u00d6\u00d8-\u00de\u00df-\u00f6\u00f8-\u00ff\u0150\u0170\u0151\u0171]",
|
||||||
anyLetterStrict: "[A-Za-z0-9\u00c0-\u00de\u00df-\u00ff\u0150\u0170\u0151\u0171]"
|
blockPrefixLetters: "[A-Za-z0-9\-_\u00c0-\u00d6\u00d8-\u00de\u00df-\u00f6\u00f8-\u00ff\u0150\u0170\u0151\u0171]"
|
||||||
};
|
};
|
||||||
|
|
||||||
textPrimitives.unWikiLink = "~";
|
textPrimitives.unWikiLink = "~";
|
||||||
@ -54,9 +54,9 @@ exports.parse = function() {
|
|||||||
if(linkText.substr(0,1) === textPrimitives.unWikiLink) {
|
if(linkText.substr(0,1) === textPrimitives.unWikiLink) {
|
||||||
return [{type: "text", text: linkText.substr(1)}];
|
return [{type: "text", text: linkText.substr(1)}];
|
||||||
}
|
}
|
||||||
// If the link has been preceded with a letter then don't treat it as a link
|
// If the link has been preceded with a blocked letter then don't treat it as a link
|
||||||
if(this.match.index > 0) {
|
if(this.match.index > 0) {
|
||||||
var preRegExp = new RegExp(textPrimitives.anyLetterStrict,"mg");
|
var preRegExp = new RegExp(textPrimitives.blockPrefixLetters,"mg");
|
||||||
preRegExp.lastIndex = this.match.index-1;
|
preRegExp.lastIndex = this.match.index-1;
|
||||||
var preMatch = preRegExp.exec(this.parser.source);
|
var preMatch = preRegExp.exec(this.parser.source);
|
||||||
if(preMatch && preMatch.index === this.match.index-1) {
|
if(preMatch && preMatch.index === this.match.index-1) {
|
||||||
|
170
core/modules/saver-handler.js
Normal file
170
core/modules/saver-handler.js
Normal file
@ -0,0 +1,170 @@
|
|||||||
|
/*\
|
||||||
|
title: $:/core/modules/saver-handler.js
|
||||||
|
type: application/javascript
|
||||||
|
module-type: global
|
||||||
|
|
||||||
|
The saver handler tracks changes to the store and handles saving the entire wiki via saver modules.
|
||||||
|
|
||||||
|
\*/
|
||||||
|
(function(){
|
||||||
|
|
||||||
|
/*jslint node: true, browser: true */
|
||||||
|
/*global $tw: false */
|
||||||
|
"use strict";
|
||||||
|
|
||||||
|
/*
|
||||||
|
Instantiate the saver handler with the following options:
|
||||||
|
wiki: wiki to be synced
|
||||||
|
*/
|
||||||
|
function SaverHandler(options) {
|
||||||
|
var self = this;
|
||||||
|
this.wiki = options.wiki;
|
||||||
|
// Make a logger
|
||||||
|
this.logger = new $tw.utils.Logger("saver-handler");
|
||||||
|
// Initialise our savers
|
||||||
|
if($tw.browser) {
|
||||||
|
this.initSavers();
|
||||||
|
}
|
||||||
|
// Compile the dirty tiddler filter
|
||||||
|
this.filterFn = this.wiki.compileFilter(this.wiki.getTiddlerText(this.titleSyncFilter));
|
||||||
|
// Count of tiddlers that have been changed but not yet saved
|
||||||
|
this.numTasksInQueue = 0;
|
||||||
|
// Listen out for changes to tiddlers
|
||||||
|
this.wiki.addEventListener("change",function(changes) {
|
||||||
|
var filteredChanges = self.filterFn.call(self.wiki,function(callback) {
|
||||||
|
$tw.utils.each(changes,function(change,title) {
|
||||||
|
var tiddler = self.wiki.getTiddler(title);
|
||||||
|
callback(tiddler,title);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
self.numTasksInQueue += filteredChanges.length;
|
||||||
|
self.updateDirtyStatus();
|
||||||
|
});
|
||||||
|
// Browser event handlers
|
||||||
|
if($tw.browser) {
|
||||||
|
// Set up our beforeunload handler
|
||||||
|
window.addEventListener("beforeunload",function(event) {
|
||||||
|
var confirmationMessage = undefined;
|
||||||
|
if(self.isDirty()) {
|
||||||
|
confirmationMessage = $tw.language.getString("UnsavedChangesWarning");
|
||||||
|
event.returnValue = confirmationMessage; // Gecko
|
||||||
|
}
|
||||||
|
return confirmationMessage;
|
||||||
|
});
|
||||||
|
// Install the save action handlers
|
||||||
|
$tw.rootWidget.addEventListener("tw-save-wiki",function(event) {
|
||||||
|
self.saveWiki({
|
||||||
|
template: event.param,
|
||||||
|
downloadType: "text/plain"
|
||||||
|
});
|
||||||
|
});
|
||||||
|
$tw.rootWidget.addEventListener("tw-auto-save-wiki",function(event) {
|
||||||
|
self.saveWiki({
|
||||||
|
method: "autosave",
|
||||||
|
template: event.param,
|
||||||
|
downloadType: "text/plain"
|
||||||
|
});
|
||||||
|
});
|
||||||
|
$tw.rootWidget.addEventListener("tw-download-file",function(event) {
|
||||||
|
self.saveWiki({
|
||||||
|
method: "download",
|
||||||
|
template: event.param,
|
||||||
|
downloadType: "text/plain"
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
SaverHandler.prototype.titleSyncFilter = "$:/config/SyncFilter";
|
||||||
|
SaverHandler.prototype.titleAutoSave = "$:/config/AutoSave";
|
||||||
|
SaverHandler.prototype.titleSavedNotification = "$:/language/Notifications/Save/Done";
|
||||||
|
|
||||||
|
/*
|
||||||
|
Select the appropriate saver modules and set them up
|
||||||
|
*/
|
||||||
|
SaverHandler.prototype.initSavers = function(moduleType) {
|
||||||
|
moduleType = moduleType || "saver";
|
||||||
|
// Instantiate the available savers
|
||||||
|
this.savers = [];
|
||||||
|
var self = this;
|
||||||
|
$tw.modules.forEachModuleOfType(moduleType,function(title,module) {
|
||||||
|
if(module.canSave(self)) {
|
||||||
|
self.savers.push(module.create(self.wiki));
|
||||||
|
}
|
||||||
|
});
|
||||||
|
// Sort the savers into priority order
|
||||||
|
this.savers.sort(function(a,b) {
|
||||||
|
if(a.info.priority < b.info.priority) {
|
||||||
|
return -1;
|
||||||
|
} else {
|
||||||
|
if(a.info.priority > b.info.priority) {
|
||||||
|
return +1;
|
||||||
|
} else {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
/*
|
||||||
|
Save the wiki contents. Options are:
|
||||||
|
method: "save" or "download"
|
||||||
|
template: the tiddler containing the template to save
|
||||||
|
downloadType: the content type for the saved file
|
||||||
|
*/
|
||||||
|
SaverHandler.prototype.saveWiki = function(options) {
|
||||||
|
options = options || {};
|
||||||
|
var self = this,
|
||||||
|
method = options.method || "save",
|
||||||
|
template = options.template || "$:/core/save/all",
|
||||||
|
downloadType = options.downloadType || "text/plain",
|
||||||
|
text = this.wiki.renderTiddler(downloadType,template),
|
||||||
|
callback = function(err) {
|
||||||
|
if(err) {
|
||||||
|
alert("Error while saving:\n\n" + err);
|
||||||
|
} else {
|
||||||
|
$tw.notifier.display(self.titleSavedNotification);
|
||||||
|
if(options.callback) {
|
||||||
|
options.callback();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
// Ignore autosave if disabled
|
||||||
|
if(method === "autosave" && this.wiki.getTiddlerText(this.titleAutoSave,"yes") !== "yes") {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
// Call the highest priority saver that supports this method
|
||||||
|
for(var t=this.savers.length-1; t>=0; t--) {
|
||||||
|
var saver = this.savers[t];
|
||||||
|
if(saver.info.capabilities.indexOf(method) !== -1 && saver.save(text,method,callback)) {
|
||||||
|
this.logger.log("Saving wiki with method",method,"through saver",saver.info.name);
|
||||||
|
// Clear the task queue if we're saving (rather than downloading)
|
||||||
|
if(method !== "download") {
|
||||||
|
this.numTasksInQueue = 0;
|
||||||
|
this.updateDirtyStatus();
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
};
|
||||||
|
|
||||||
|
/*
|
||||||
|
Checks whether the wiki is dirty (ie the window shouldn't be closed)
|
||||||
|
*/
|
||||||
|
SaverHandler.prototype.isDirty = function() {
|
||||||
|
return this.numTasksInQueue > 0;
|
||||||
|
};
|
||||||
|
|
||||||
|
/*
|
||||||
|
Update the document body with the class "tw-dirty" if the wiki has unsaved/unsynced changes
|
||||||
|
*/
|
||||||
|
SaverHandler.prototype.updateDirtyStatus = function() {
|
||||||
|
if($tw.browser) {
|
||||||
|
$tw.utils.toggleClass(document.body,"tw-dirty",this.isDirty());
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
exports.SaverHandler = SaverHandler;
|
||||||
|
|
||||||
|
})();
|
@ -15,7 +15,7 @@ Password handling
|
|||||||
// Export name and synchronous status
|
// Export name and synchronous status
|
||||||
exports.name = "password";
|
exports.name = "password";
|
||||||
exports.platforms = ["browser"];
|
exports.platforms = ["browser"];
|
||||||
exports.after = ["rootwidget"];
|
exports.after = ["startup"];
|
||||||
exports.synchronous = true;
|
exports.synchronous = true;
|
||||||
|
|
||||||
exports.startup = function() {
|
exports.startup = function() {
|
||||||
|
@ -15,21 +15,11 @@ Setup the root widget and the core root widget handlers
|
|||||||
// Export name and synchronous status
|
// Export name and synchronous status
|
||||||
exports.name = "rootwidget";
|
exports.name = "rootwidget";
|
||||||
exports.platforms = ["browser"];
|
exports.platforms = ["browser"];
|
||||||
exports.after = ["load-modules"];
|
exports.after = ["startup"];
|
||||||
exports.before = ["story"];
|
exports.before = ["story"];
|
||||||
exports.synchronous = true;
|
exports.synchronous = true;
|
||||||
|
|
||||||
var widget = require("$:/core/modules/widgets/widget.js");
|
|
||||||
|
|
||||||
exports.startup = function() {
|
exports.startup = function() {
|
||||||
// Create a root widget for attaching event handlers. By using it as the parentWidget for another widget tree, one can reuse the event handlers
|
|
||||||
$tw.rootWidget = new widget.widget({
|
|
||||||
type: "widget",
|
|
||||||
children: []
|
|
||||||
},{
|
|
||||||
wiki: $tw.wiki,
|
|
||||||
document: document
|
|
||||||
});
|
|
||||||
// Install the modal message mechanism
|
// Install the modal message mechanism
|
||||||
$tw.modal = new $tw.utils.Modal($tw.wiki);
|
$tw.modal = new $tw.utils.Modal($tw.wiki);
|
||||||
$tw.rootWidget.addEventListener("tw-modal",function(event) {
|
$tw.rootWidget.addEventListener("tw-modal",function(event) {
|
||||||
@ -45,36 +35,16 @@ exports.startup = function() {
|
|||||||
$tw.rootWidget.addEventListener("tw-scroll",function(event) {
|
$tw.rootWidget.addEventListener("tw-scroll",function(event) {
|
||||||
$tw.pageScroller.handleEvent(event);
|
$tw.pageScroller.handleEvent(event);
|
||||||
});
|
});
|
||||||
// Install the save action handlers
|
|
||||||
$tw.rootWidget.addEventListener("tw-save-wiki",function(event) {
|
|
||||||
$tw.syncer.saveWiki({
|
|
||||||
template: event.param,
|
|
||||||
downloadType: "text/plain"
|
|
||||||
});
|
|
||||||
});
|
|
||||||
$tw.rootWidget.addEventListener("tw-auto-save-wiki",function(event) {
|
|
||||||
$tw.syncer.saveWiki({
|
|
||||||
method: "autosave",
|
|
||||||
template: event.param,
|
|
||||||
downloadType: "text/plain"
|
|
||||||
});
|
|
||||||
});
|
|
||||||
$tw.rootWidget.addEventListener("tw-download-file",function(event) {
|
|
||||||
$tw.syncer.saveWiki({
|
|
||||||
method: "download",
|
|
||||||
template: event.param,
|
|
||||||
downloadType: "text/plain"
|
|
||||||
});
|
|
||||||
});
|
|
||||||
var fullscreen = $tw.utils.getFullScreenApis();
|
var fullscreen = $tw.utils.getFullScreenApis();
|
||||||
$tw.rootWidget.addEventListener("tw-full-screen",function(event) {
|
if(fullscreen) {
|
||||||
if(document[fullscreen._fullscreenElement]) {
|
$tw.rootWidget.addEventListener("tw-full-screen",function(event) {
|
||||||
document[fullscreen._exitFullscreen]();
|
if(document[fullscreen._fullscreenElement]) {
|
||||||
} else {
|
document[fullscreen._exitFullscreen]();
|
||||||
document.documentElement[fullscreen._requestFullscreen](Element.ALLOW_KEYBOARD_INPUT);
|
} else {
|
||||||
}
|
document.documentElement[fullscreen._requestFullscreen](Element.ALLOW_KEYBOARD_INPUT);
|
||||||
});
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
// If we're being viewed on a data: URI then give instructions for how to save
|
// If we're being viewed on a data: URI then give instructions for how to save
|
||||||
if(document.location.protocol === "data:") {
|
if(document.location.protocol === "data:") {
|
||||||
$tw.rootWidget.dispatchEvent({
|
$tw.rootWidget.dispatchEvent({
|
||||||
|
@ -20,6 +20,8 @@ exports.synchronous = true;
|
|||||||
// Set to `true` to enable performance instrumentation
|
// Set to `true` to enable performance instrumentation
|
||||||
var PERFORMANCE_INSTRUMENTATION = false;
|
var PERFORMANCE_INSTRUMENTATION = false;
|
||||||
|
|
||||||
|
var widget = require("$:/core/modules/widgets/widget.js");
|
||||||
|
|
||||||
exports.startup = function() {
|
exports.startup = function() {
|
||||||
var modules,n,m,f;
|
var modules,n,m,f;
|
||||||
if($tw.browser) {
|
if($tw.browser) {
|
||||||
@ -50,19 +52,31 @@ exports.startup = function() {
|
|||||||
});
|
});
|
||||||
// Clear outstanding tiddler store change events to avoid an unnecessary refresh cycle at startup
|
// Clear outstanding tiddler store change events to avoid an unnecessary refresh cycle at startup
|
||||||
$tw.wiki.clearTiddlerEventQueue();
|
$tw.wiki.clearTiddlerEventQueue();
|
||||||
// Set up the syncer object
|
// Create a root widget for attaching event handlers. By using it as the parentWidget for another widget tree, one can reuse the event handlers
|
||||||
$tw.syncer = new $tw.Syncer({wiki: $tw.wiki});
|
if($tw.browser) {
|
||||||
|
$tw.rootWidget = new widget.widget({
|
||||||
|
type: "widget",
|
||||||
|
children: []
|
||||||
|
},{
|
||||||
|
wiki: $tw.wiki,
|
||||||
|
document: document
|
||||||
|
});
|
||||||
|
}
|
||||||
|
// Find a working syncadaptor
|
||||||
|
$tw.syncadaptor = undefined;
|
||||||
|
$tw.modules.forEachModuleOfType("syncadaptor",function(title,module) {
|
||||||
|
if(!$tw.syncadaptor && module.adaptorClass) {
|
||||||
|
$tw.syncadaptor = new module.adaptorClass({wiki: $tw.wiki});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
// Set up the syncer object if we've got a syncadaptor, otherwise setup the saverhandler
|
||||||
|
if($tw.syncadaptor) {
|
||||||
|
$tw.syncer = new $tw.Syncer({wiki: $tw.wiki, syncadaptor: $tw.syncadaptor});
|
||||||
|
} else {
|
||||||
|
$tw.saverHandler = new $tw.SaverHandler({wiki: $tw.wiki});
|
||||||
|
}
|
||||||
// Host-specific startup
|
// Host-specific startup
|
||||||
if($tw.browser) {
|
if($tw.browser) {
|
||||||
// Set up our beforeunload handler
|
|
||||||
window.addEventListener("beforeunload",function(event) {
|
|
||||||
var confirmationMessage = undefined;
|
|
||||||
if($tw.syncer.isDirty()) {
|
|
||||||
confirmationMessage = "You have unsaved changes in TiddlyWiki";
|
|
||||||
event.returnValue = confirmationMessage; // Gecko
|
|
||||||
}
|
|
||||||
return confirmationMessage;
|
|
||||||
});
|
|
||||||
// Install the popup manager
|
// Install the popup manager
|
||||||
$tw.popup = new $tw.utils.Popup({
|
$tw.popup = new $tw.utils.Popup({
|
||||||
rootElement: document.body
|
rootElement: document.body
|
||||||
|
@ -1,34 +0,0 @@
|
|||||||
/*\
|
|
||||||
title: $:/core/modules/startup/syncer-browser.js
|
|
||||||
type: application/javascript
|
|
||||||
module-type: startup
|
|
||||||
|
|
||||||
Startup handling
|
|
||||||
|
|
||||||
\*/
|
|
||||||
(function(){
|
|
||||||
|
|
||||||
/*jslint node: true, browser: true */
|
|
||||||
/*global $tw: false */
|
|
||||||
"use strict";
|
|
||||||
|
|
||||||
// Export name and synchronous status
|
|
||||||
exports.name = "syncer-browser";
|
|
||||||
exports.platforms = ["browser"];
|
|
||||||
exports.after = ["rootwidget"];
|
|
||||||
exports.synchronous = true;
|
|
||||||
|
|
||||||
exports.startup = function() {
|
|
||||||
// Listen out for login/logout/refresh events in the browser
|
|
||||||
$tw.rootWidget.addEventListener("tw-login",function() {
|
|
||||||
$tw.syncer.handleLoginEvent();
|
|
||||||
});
|
|
||||||
$tw.rootWidget.addEventListener("tw-logout",function() {
|
|
||||||
$tw.syncer.handleLogoutEvent();
|
|
||||||
});
|
|
||||||
$tw.rootWidget.addEventListener("tw-server-refresh",function() {
|
|
||||||
$tw.syncer.handleRefreshEvent();
|
|
||||||
});
|
|
||||||
};
|
|
||||||
|
|
||||||
})();
|
|
@ -14,24 +14,15 @@ The syncer tracks changes to the store. If a syncadaptor is used then individual
|
|||||||
|
|
||||||
/*
|
/*
|
||||||
Instantiate the syncer with the following options:
|
Instantiate the syncer with the following options:
|
||||||
|
syncadaptor: reference to syncadaptor to be used
|
||||||
wiki: wiki to be synced
|
wiki: wiki to be synced
|
||||||
*/
|
*/
|
||||||
function Syncer(options) {
|
function Syncer(options) {
|
||||||
var self = this;
|
var self = this;
|
||||||
this.wiki = options.wiki;
|
this.wiki = options.wiki;
|
||||||
|
this.syncadaptor = options.syncadaptor
|
||||||
// Make a logger
|
// Make a logger
|
||||||
this.logger = new $tw.utils.Logger("syncer" + ($tw.browser ? "-browser" : "") + ($tw.node ? "-server" : ""));
|
this.logger = new $tw.utils.Logger("syncer" + ($tw.browser ? "-browser" : "") + ($tw.node ? "-server" : ""));
|
||||||
// Find a working syncadaptor
|
|
||||||
this.syncadaptor = undefined;
|
|
||||||
$tw.modules.forEachModuleOfType("syncadaptor",function(title,module) {
|
|
||||||
if(!self.syncadaptor && module.adaptorClass) {
|
|
||||||
self.syncadaptor = new module.adaptorClass(self);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
// Initialise our savers
|
|
||||||
if($tw.browser) {
|
|
||||||
this.initSavers();
|
|
||||||
}
|
|
||||||
// Compile the dirty tiddler filter
|
// Compile the dirty tiddler filter
|
||||||
this.filterFn = this.wiki.compileFilter(this.wiki.getTiddlerText(this.titleSyncFilter));
|
this.filterFn = this.wiki.compileFilter(this.wiki.getTiddlerText(this.titleSyncFilter));
|
||||||
// Record information for known tiddlers
|
// Record information for known tiddlers
|
||||||
@ -45,12 +36,32 @@ function Syncer(options) {
|
|||||||
this.wiki.addEventListener("change",function(changes) {
|
this.wiki.addEventListener("change",function(changes) {
|
||||||
self.syncToServer(changes);
|
self.syncToServer(changes);
|
||||||
});
|
});
|
||||||
// Listen out for lazyLoad events
|
// Browser event handlers
|
||||||
if(this.syncadaptor) {
|
if($tw.browser) {
|
||||||
this.wiki.addEventListener("lazyLoad",function(title) {
|
// Set up our beforeunload handler
|
||||||
self.handleLazyLoadEvent(title);
|
window.addEventListener("beforeunload",function(event) {
|
||||||
|
var confirmationMessage = undefined;
|
||||||
|
if(self.isDirty()) {
|
||||||
|
confirmationMessage = $tw.language.getString("UnsavedChangesWarning");
|
||||||
|
event.returnValue = confirmationMessage; // Gecko
|
||||||
|
}
|
||||||
|
return confirmationMessage;
|
||||||
|
});
|
||||||
|
// Listen out for login/logout/refresh events in the browser
|
||||||
|
$tw.rootWidget.addEventListener("tw-login",function() {
|
||||||
|
self.handleLoginEvent();
|
||||||
|
});
|
||||||
|
$tw.rootWidget.addEventListener("tw-logout",function() {
|
||||||
|
self.handleLogoutEvent();
|
||||||
|
});
|
||||||
|
$tw.rootWidget.addEventListener("tw-server-refresh",function() {
|
||||||
|
self.handleRefreshEvent();
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
// Listen out for lazyLoad events
|
||||||
|
this.wiki.addEventListener("lazyLoad",function(title) {
|
||||||
|
self.handleLazyLoadEvent(title);
|
||||||
|
});
|
||||||
// Get the login status
|
// Get the login status
|
||||||
this.getStatus(function (err,isLoggedIn) {
|
this.getStatus(function (err,isLoggedIn) {
|
||||||
// Do a sync from the server
|
// Do a sync from the server
|
||||||
@ -64,7 +75,6 @@ Constants
|
|||||||
Syncer.prototype.titleIsLoggedIn = "$:/status/IsLoggedIn";
|
Syncer.prototype.titleIsLoggedIn = "$:/status/IsLoggedIn";
|
||||||
Syncer.prototype.titleUserName = "$:/status/UserName";
|
Syncer.prototype.titleUserName = "$:/status/UserName";
|
||||||
Syncer.prototype.titleSyncFilter = "$:/config/SyncFilter";
|
Syncer.prototype.titleSyncFilter = "$:/config/SyncFilter";
|
||||||
Syncer.prototype.titleAutoSave = "$:/config/AutoSave";
|
|
||||||
Syncer.prototype.titleSavedNotification = "$:/language/Notifications/Save/Done";
|
Syncer.prototype.titleSavedNotification = "$:/language/Notifications/Save/Done";
|
||||||
Syncer.prototype.taskTimerInterval = 1 * 1000; // Interval for sync timer
|
Syncer.prototype.taskTimerInterval = 1 * 1000; // Interval for sync timer
|
||||||
Syncer.prototype.throttleInterval = 1 * 1000; // Defer saving tiddlers if they've changed in the last 1s...
|
Syncer.prototype.throttleInterval = 1 * 1000; // Defer saving tiddlers if they've changed in the last 1s...
|
||||||
@ -91,79 +101,6 @@ Syncer.prototype.readTiddlerInfo = function() {
|
|||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
/*
|
|
||||||
Select the appropriate saver modules and set them up
|
|
||||||
*/
|
|
||||||
Syncer.prototype.initSavers = function(moduleType) {
|
|
||||||
moduleType = moduleType || "saver";
|
|
||||||
// Instantiate the available savers
|
|
||||||
this.savers = [];
|
|
||||||
var self = this;
|
|
||||||
$tw.modules.forEachModuleOfType(moduleType,function(title,module) {
|
|
||||||
if(module.canSave(self)) {
|
|
||||||
self.savers.push(module.create(self.wiki));
|
|
||||||
}
|
|
||||||
});
|
|
||||||
// Sort the savers into priority order
|
|
||||||
this.savers.sort(function(a,b) {
|
|
||||||
if(a.info.priority < b.info.priority) {
|
|
||||||
return -1;
|
|
||||||
} else {
|
|
||||||
if(a.info.priority > b.info.priority) {
|
|
||||||
return +1;
|
|
||||||
} else {
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
|
||||||
};
|
|
||||||
|
|
||||||
/*
|
|
||||||
Save the wiki contents. Options are:
|
|
||||||
method: "save" or "download"
|
|
||||||
template: the tiddler containing the template to save
|
|
||||||
downloadType: the content type for the saved file
|
|
||||||
*/
|
|
||||||
Syncer.prototype.saveWiki = function(options) {
|
|
||||||
options = options || {};
|
|
||||||
var self = this,
|
|
||||||
method = options.method || "save",
|
|
||||||
template = options.template || "$:/core/save/all",
|
|
||||||
downloadType = options.downloadType || "text/plain",
|
|
||||||
text = this.wiki.renderTiddler(downloadType,template),
|
|
||||||
callback = function(err) {
|
|
||||||
if(err) {
|
|
||||||
alert("Error while saving:\n\n" + err);
|
|
||||||
} else {
|
|
||||||
$tw.notifier.display(self.titleSavedNotification);
|
|
||||||
if(options.callback) {
|
|
||||||
options.callback();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
};
|
|
||||||
// Ignore autosave if we've got a syncadaptor or autosave is disabled
|
|
||||||
if(method === "autosave") {
|
|
||||||
if(this.syncadaptor || this.wiki.getTiddlerText(this.titleAutoSave,"yes") !== "yes") {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// Call the highest priority saver that supports this method
|
|
||||||
for(var t=this.savers.length-1; t>=0; t--) {
|
|
||||||
var saver = this.savers[t];
|
|
||||||
if(saver.info.capabilities.indexOf(method) !== -1 && saver.save(text,method,callback)) {
|
|
||||||
this.logger.log("Saving wiki with method",method,"through saver",saver.info.name);
|
|
||||||
// Clear the task queue if we're saving (rather than downloading)
|
|
||||||
if(method !== "download") {
|
|
||||||
this.readTiddlerInfo();
|
|
||||||
this.taskQueue = {};
|
|
||||||
this.updateDirtyStatus();
|
|
||||||
}
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
};
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
Checks whether the wiki is dirty (ie the window shouldn't be closed)
|
Checks whether the wiki is dirty (ie the window shouldn't be closed)
|
||||||
*/
|
*/
|
||||||
@ -415,9 +352,7 @@ Syncer.prototype.enqueueSyncTask = function(task) {
|
|||||||
this.updateDirtyStatus();
|
this.updateDirtyStatus();
|
||||||
}
|
}
|
||||||
// Process the queue
|
// Process the queue
|
||||||
if(this.syncadaptor) {
|
$tw.utils.nextTick(function() {self.processTaskQueue.call(self);});
|
||||||
$tw.utils.nextTick(function() {self.processTaskQueue.call(self);});
|
|
||||||
}
|
|
||||||
};
|
};
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -498,7 +433,7 @@ Syncer.prototype.chooseNextTask = function() {
|
|||||||
// Exclude the task if it is a save and the tiddler has been modified recently, but not hit the fallback time
|
// Exclude the task if it is a save and the tiddler has been modified recently, but not hit the fallback time
|
||||||
if(task.type === "save" && (now - task.lastModificationTime) < self.throttleInterval &&
|
if(task.type === "save" && (now - task.lastModificationTime) < self.throttleInterval &&
|
||||||
(now - task.queueTime) < self.fallbackInterval) {
|
(now - task.queueTime) < self.fallbackInterval) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
// Exclude the task if it is newer than the current best candidate
|
// Exclude the task if it is newer than the current best candidate
|
||||||
if(candidateTask && candidateTask.queueTime < task.queueTime) {
|
if(candidateTask && candidateTask.queueTime < task.queueTime) {
|
||||||
@ -560,6 +495,8 @@ Syncer.prototype.dispatchTask = function(task,callback) {
|
|||||||
}
|
}
|
||||||
// Invoke the callback
|
// Invoke the callback
|
||||||
callback(null);
|
callback(null);
|
||||||
|
},{
|
||||||
|
tiddlerInfo: self.tiddlerInfo[task.title]
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
@ -135,8 +135,8 @@ Return the names of the fullscreen APIs
|
|||||||
*/
|
*/
|
||||||
exports.getFullScreenApis = function() {
|
exports.getFullScreenApis = function() {
|
||||||
var d = document,
|
var d = document,
|
||||||
db = d.body;
|
db = d.body,
|
||||||
return {
|
result = {
|
||||||
"_requestFullscreen": db.webkitRequestFullscreen !== undefined ? "webkitRequestFullscreen" :
|
"_requestFullscreen": db.webkitRequestFullscreen !== undefined ? "webkitRequestFullscreen" :
|
||||||
db.mozRequestFullScreen !== undefined ? "mozRequestFullScreen" :
|
db.mozRequestFullScreen !== undefined ? "mozRequestFullScreen" :
|
||||||
db.msRequestFullscreen !== undefined ? "msRequestFullscreen" :
|
db.msRequestFullscreen !== undefined ? "msRequestFullscreen" :
|
||||||
@ -150,6 +150,11 @@ exports.getFullScreenApis = function() {
|
|||||||
d.msFullscreenElement !== undefined ? "msFullscreenElement" :
|
d.msFullscreenElement !== undefined ? "msFullscreenElement" :
|
||||||
d.fullscreenElement !== undefined ? "fullscreenElement" : ""
|
d.fullscreenElement !== undefined ? "fullscreenElement" : ""
|
||||||
};
|
};
|
||||||
|
if(!result._requestFullscreen || !result._exitFullscreen || !result._fullscreenElement) {
|
||||||
|
return null;
|
||||||
|
} else {
|
||||||
|
return result;
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
})();
|
})();
|
||||||
|
@ -83,7 +83,7 @@ Selectively refreshes the widget if needed. Returns true if the widget or any of
|
|||||||
*/
|
*/
|
||||||
EditWidget.prototype.refresh = function(changedTiddlers) {
|
EditWidget.prototype.refresh = function(changedTiddlers) {
|
||||||
var changedAttributes = this.computeAttributes();
|
var changedAttributes = this.computeAttributes();
|
||||||
if(changedAttributes.tiddler || changedAttributes.field || changedAttributes.index) {
|
if(changedAttributes.tiddler || changedAttributes.field || changedAttributes.index || changedTiddlers[this.editTitle]) {
|
||||||
this.refreshSelf();
|
this.refreshSelf();
|
||||||
return true;
|
return true;
|
||||||
} else {
|
} else {
|
||||||
|
@ -56,7 +56,11 @@ LinkWidget.prototype.renderLink = function(parent,nextSibling) {
|
|||||||
// Create our element
|
// Create our element
|
||||||
var domNode = this.document.createElement("a");
|
var domNode = this.document.createElement("a");
|
||||||
// Assign classes
|
// Assign classes
|
||||||
var classes = ["tw-tiddlylink"];
|
var classes = [];
|
||||||
|
if(this.linkClasses) {
|
||||||
|
classes.push(this.linkClasses);
|
||||||
|
}
|
||||||
|
classes.push("tw-tiddlylink");
|
||||||
if(this.isShadow) {
|
if(this.isShadow) {
|
||||||
classes.push("tw-tiddlylink-shadow");
|
classes.push("tw-tiddlylink-shadow");
|
||||||
}
|
}
|
||||||
@ -182,6 +186,8 @@ LinkWidget.prototype.execute = function() {
|
|||||||
// Get the link title and aria label
|
// Get the link title and aria label
|
||||||
this.tooltip = this.getAttribute("tooltip");
|
this.tooltip = this.getAttribute("tooltip");
|
||||||
this["aria-label"] = this.getAttribute("aria-label");
|
this["aria-label"] = this.getAttribute("aria-label");
|
||||||
|
// Get the link classes
|
||||||
|
this.linkClasses = this.getAttribute("class");
|
||||||
// Determine the link characteristics
|
// Determine the link characteristics
|
||||||
this.isMissing = !this.wiki.tiddlerExists(this.to);
|
this.isMissing = !this.wiki.tiddlerExists(this.to);
|
||||||
this.isShadow = this.wiki.isShadowTiddler(this.to);
|
this.isShadow = this.wiki.isShadowTiddler(this.to);
|
||||||
|
@ -30,8 +30,9 @@ TextNodeWidget.prototype.render = function(parent,nextSibling) {
|
|||||||
this.parentDomNode = parent;
|
this.parentDomNode = parent;
|
||||||
this.computeAttributes();
|
this.computeAttributes();
|
||||||
this.execute();
|
this.execute();
|
||||||
var text = this.getAttribute("text",this.parseTreeNode.text),
|
var text = this.getAttribute("text",this.parseTreeNode.text);
|
||||||
textNode = this.document.createTextNode(text);
|
text = text.replace(/\r/mg,"");
|
||||||
|
var textNode = this.document.createTextNode(text);
|
||||||
parent.insertBefore(textNode,nextSibling);
|
parent.insertBefore(textNode,nextSibling);
|
||||||
this.domNodes.push(textNode);
|
this.domNodes.push(textNode);
|
||||||
};
|
};
|
||||||
|
@ -85,6 +85,8 @@ TranscludeWidget.prototype.makeRecursionMarker = function() {
|
|||||||
output.push(this.transcludeField || "");
|
output.push(this.transcludeField || "");
|
||||||
output.push("|");
|
output.push("|");
|
||||||
output.push(this.transcludeIndex || "");
|
output.push(this.transcludeIndex || "");
|
||||||
|
output.push("|");
|
||||||
|
output.push(this.transcludeSubTiddler || "");
|
||||||
output.push("}");
|
output.push("}");
|
||||||
return output.join("");
|
return output.join("");
|
||||||
};
|
};
|
||||||
|
@ -3,5 +3,6 @@
|
|||||||
"description": "TiddlyWiki5 core plugin",
|
"description": "TiddlyWiki5 core plugin",
|
||||||
"author": "JeremyRuston",
|
"author": "JeremyRuston",
|
||||||
"core-version": ">=5.0.0",
|
"core-version": ">=5.0.0",
|
||||||
"plugin-priority": "0"
|
"plugin-priority": "0",
|
||||||
|
"list": "readme"
|
||||||
}
|
}
|
||||||
|
8
core/readme.tid
Normal file
8
core/readme.tid
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
title: $:/core/readme
|
||||||
|
|
||||||
|
This plugin contains TiddlyWiki's core components, comprising:
|
||||||
|
|
||||||
|
* JavaScript code modules
|
||||||
|
* Icons
|
||||||
|
* Templates needed to create TiddlyWiki's user interface
|
||||||
|
* British English (''en-GB'') translations of the localisable strings used by the core
|
@ -3,32 +3,64 @@ tags: $:/tags/ControlPanel
|
|||||||
caption: {{$:/language/ControlPanel/Plugins/Caption}}
|
caption: {{$:/language/ControlPanel/Plugins/Caption}}
|
||||||
|
|
||||||
\define lingo-base() $:/language/ControlPanel/Plugins/
|
\define lingo-base() $:/language/ControlPanel/Plugins/
|
||||||
|
\define popup-state-macro()
|
||||||
|
$(qualified-state)$-$(currentTiddler)$
|
||||||
|
\end
|
||||||
|
\define tabs-state-macro()
|
||||||
|
$(popup-state)$-$(pluginInfoType)$
|
||||||
|
\end
|
||||||
|
\define plugin-icon-title()
|
||||||
|
$(currentTiddler)$/icon
|
||||||
|
\end
|
||||||
\define plugin-table(type)
|
\define plugin-table(type)
|
||||||
<table>
|
<$set name="qualified-state" value=<<qualify "$:/state/plugin-info">>>
|
||||||
<tbody>
|
|
||||||
<tr>
|
|
||||||
<th>
|
|
||||||
<<lingo Fields/Description>>
|
|
||||||
</th>
|
|
||||||
<th>
|
|
||||||
<<lingo Fields/Version>>
|
|
||||||
</th>
|
|
||||||
</tr>
|
|
||||||
<$list filter="[!has[draft.of]plugin-type[$type$]sort[description]]">
|
<$list filter="[!has[draft.of]plugin-type[$type$]sort[description]]">
|
||||||
<tr>
|
<$set name="popup-state" value=<<popup-state-macro>>>
|
||||||
<td>
|
<$link to={{!!title}} class="tw-plugin-info">
|
||||||
<$link to={{!!title}}>
|
<div class="tw-plugin-info-chunk">
|
||||||
''<$view field="description"><$view field="title"/></$view>''<br>
|
<$reveal type="nomatch" state=<<popup-state>> text="yes">
|
||||||
|
<$button class="btn-invisible btn-dropdown" set=<<popup-state>> setTo="yes">
|
||||||
|
{{$:/core/images/right-arrow}}
|
||||||
|
</$button>
|
||||||
|
</$reveal>
|
||||||
|
<$reveal type="match" state=<<popup-state>> text="yes">
|
||||||
|
<$button class="btn-invisible btn-dropdown" set=<<popup-state>> setTo="no">
|
||||||
|
{{$:/core/images/down-arrow}}
|
||||||
|
</$button>
|
||||||
|
</$reveal>
|
||||||
|
</div>
|
||||||
|
<div class="tw-plugin-info-chunk">
|
||||||
|
<$transclude tiddler=<<currentTiddler>> subtiddler=<<plugin-icon-title>>>
|
||||||
|
<$transclude tiddler="$:/core/images/plugin-generic-$type$"/>
|
||||||
|
</$transclude>
|
||||||
|
</div>
|
||||||
|
<div class="tw-plugin-info-chunk">
|
||||||
|
<div>
|
||||||
|
''<$view field="description"><$view field="title"/></$view>''
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
<$view field="title"/>
|
<$view field="title"/>
|
||||||
</$link>
|
</div>
|
||||||
</td>
|
<div>
|
||||||
<td>
|
|
||||||
<$view field="version"/>
|
<$view field="version"/>
|
||||||
</td>
|
</div>
|
||||||
</tr>
|
</div>
|
||||||
|
</$link>
|
||||||
|
<$reveal type="match" text="yes" state=<<popup-state>>>
|
||||||
|
<$reveal type="nomatch" text="" state="!!list">
|
||||||
|
<div class="tw-plugin-info-dropdown">
|
||||||
|
<$macrocall $name="tabs" state=<<tabs-state-macro>> tabsList={{!!list}} default="readme" template="$:/core/ui/PluginInfo"/>
|
||||||
|
</div>
|
||||||
|
</$reveal>
|
||||||
|
<$reveal type="match" text="" state="!!list">
|
||||||
|
<div class="tw-plugin-info-dropdown">
|
||||||
|
No information provided
|
||||||
|
</div>
|
||||||
|
</$reveal>
|
||||||
|
</$reveal>
|
||||||
|
</$set>
|
||||||
</$list>
|
</$list>
|
||||||
</tbody>
|
</$set>
|
||||||
</table>
|
|
||||||
\end
|
\end
|
||||||
|
|
||||||
! <<lingo Plugin/Prompt>>
|
! <<lingo Plugin/Prompt>>
|
||||||
|
@ -5,12 +5,15 @@ tags: $:/tags/EditTemplate
|
|||||||
\define config-title()
|
\define config-title()
|
||||||
$:/config/EditTemplateFields/Visibility/$(currentField)$
|
$:/config/EditTemplateFields/Visibility/$(currentField)$
|
||||||
\end
|
\end
|
||||||
|
\define config-filter()
|
||||||
|
[[hide]] -[title{$(config-title)$}]
|
||||||
|
\end
|
||||||
<$fieldmangler>
|
<$fieldmangler>
|
||||||
<div class="tw-edit-fields">
|
<div class="tw-edit-fields">
|
||||||
<table class="tw-edit-fields">
|
<table class="tw-edit-fields">
|
||||||
<tbody>
|
<tbody>
|
||||||
<$list filter="[all[current]fields[]] +[sort[title]]" variable="currentField">
|
<$list filter="[all[current]fields[]] +[sort[title]]" variable="currentField">
|
||||||
<$reveal type="nomatch" state=<<config-title>> text="hide">
|
<$list filter=<<config-filter>> variable="temp">
|
||||||
<tr class="tw-edit-field">
|
<tr class="tw-edit-field">
|
||||||
<td class="tw-edit-field-name">
|
<td class="tw-edit-field-name">
|
||||||
<$text text=<<currentField>>/>:</td>
|
<$text text=<<currentField>>/>:</td>
|
||||||
@ -21,7 +24,7 @@ $:/config/EditTemplateFields/Visibility/$(currentField)$
|
|||||||
<$button message="tw-remove-field" param=<<currentField>> class="btn-invisible">{{$:/core/images/delete-button}}</$button>
|
<$button message="tw-remove-field" param=<<currentField>> class="btn-invisible">{{$:/core/images/delete-button}}</$button>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
</$reveal>
|
</$list>
|
||||||
</$list>
|
</$list>
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
|
@ -2,8 +2,19 @@ title: $:/core/ui/MoreSideBar/Tags
|
|||||||
tags: $:/tags/MoreSideBar
|
tags: $:/tags/MoreSideBar
|
||||||
caption: {{$:/language/SideBar/Tags/Caption}}
|
caption: {{$:/language/SideBar/Tags/Caption}}
|
||||||
|
|
||||||
\define lingo-base() $:/language/SideBar/Tags/
|
<$set name="tw-config-toolbar-icons" value="yes">
|
||||||
<$button to="$:/TagManager" class="btn"><<lingo TagManager/Caption>></$button>
|
|
||||||
|
<$set name="tw-config-toolbar-text" value="yes">
|
||||||
|
|
||||||
|
<$set name="tw-config-toolbar-class" value="">
|
||||||
|
|
||||||
|
{{$:/core/ui/Buttons/tag-manager}}
|
||||||
|
|
||||||
|
</$set>
|
||||||
|
|
||||||
|
</$set>
|
||||||
|
|
||||||
|
</$set>
|
||||||
|
|
||||||
<$list filter="[tags[]!is[system]sort[title]]">
|
<$list filter="[tags[]!is[system]sort[title]]">
|
||||||
|
|
||||||
|
@ -3,10 +3,15 @@ tags: $:/tags/PageControls
|
|||||||
caption: {{$:/core/images/globe}} {{$:/language/Buttons/Language/Caption}}
|
caption: {{$:/core/images/globe}} {{$:/language/Buttons/Language/Caption}}
|
||||||
description: {{$:/language/Buttons/Language/Hint}}
|
description: {{$:/language/Buttons/Language/Hint}}
|
||||||
|
|
||||||
|
\define flag-title()
|
||||||
|
$(languagePluginTitle)$/icon
|
||||||
|
\end
|
||||||
<$button popup=<<qualify "$:/state/popup/language">> title={{$:/language/Buttons/Language/Hint}} aria-label={{$:/language/Buttons/Language/Caption}} class=<<tw-config-toolbar-class>> selectedClass="tw-selected">
|
<$button popup=<<qualify "$:/state/popup/language">> title={{$:/language/Buttons/Language/Hint}} aria-label={{$:/language/Buttons/Language/Caption}} class=<<tw-config-toolbar-class>> selectedClass="tw-selected">
|
||||||
<$list filter="[<tw-config-toolbar-icons>prefix[yes]]">
|
<$list filter="[<tw-config-toolbar-icons>prefix[yes]]">
|
||||||
<span class="tw-image-button">
|
<span class="tw-image-button">
|
||||||
<$image source="$:/language/Flag"/>
|
<$set name="languagePluginTitle" value={{$:/language}}>
|
||||||
|
<$image source=<<flag-title>>/>
|
||||||
|
</$set>
|
||||||
</span>
|
</span>
|
||||||
</$list>
|
</$list>
|
||||||
<$list filter="[<tw-config-toolbar-text>prefix[yes]]">
|
<$list filter="[<tw-config-toolbar-text>prefix[yes]]">
|
||||||
@ -27,11 +32,13 @@ description: {{$:/language/Buttons/Language/Hint}}
|
|||||||
</$reveal>
|
</$reveal>
|
||||||
</span>
|
</span>
|
||||||
<span class="tw-image-button">
|
<span class="tw-image-button">
|
||||||
<$transclude subtiddler="$:/language/Flag">
|
<$set name="languagePluginTitle" value=<<currentTiddler>>>
|
||||||
|
<$transclude subtiddler=<<flag-title>>>
|
||||||
<$list filter="[all[current]field:title[$:/languages/en-GB]]">
|
<$list filter="[all[current]field:title[$:/languages/en-GB]]">
|
||||||
<$transclude tiddler="$:/core" subtiddler="$:/language/Flag"/>
|
<$transclude tiddler="$:/languages/en-GB/icon"/>
|
||||||
</$list>
|
</$list>
|
||||||
</$transclude>
|
</$transclude>
|
||||||
|
</$set>
|
||||||
</span>
|
</span>
|
||||||
<$view field="description">
|
<$view field="description">
|
||||||
<$view field="name">
|
<$view field="name">
|
||||||
|
13
core/ui/PageControls/tag-button.tid
Normal file
13
core/ui/PageControls/tag-button.tid
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
title: $:/core/ui/Buttons/tag-manager
|
||||||
|
tags: $:/tags/PageControls
|
||||||
|
caption: {{$:/core/images/tag-button}} {{$:/language/Buttons/TagManager/Caption}}
|
||||||
|
description: {{$:/language/Buttons/TagManager/Hint}}
|
||||||
|
|
||||||
|
<$button to="$:/TagManager" title={{$:/language/Buttons/TagManager/Hint}} aria-label={{$:/language/Buttons/TagManager/Caption}} class=<<tw-config-toolbar-class>>>
|
||||||
|
<$list filter="[<tw-config-toolbar-icons>prefix[yes]]">
|
||||||
|
{{$:/core/images/tag-button}}
|
||||||
|
</$list>
|
||||||
|
<$list filter="[<tw-config-toolbar-text>prefix[yes]]">
|
||||||
|
<$text text={{$:/language/Buttons/TagManager/Caption}}/>
|
||||||
|
</$list>
|
||||||
|
</$button>
|
15
core/ui/PluginInfo.tid
Normal file
15
core/ui/PluginInfo.tid
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
title: $:/core/ui/PluginInfo
|
||||||
|
|
||||||
|
\define localised-info-tiddler-title()
|
||||||
|
$(currentTiddler)$/$(languageTitle)$/$(currentTab)$
|
||||||
|
\end
|
||||||
|
\define info-tiddler-title()
|
||||||
|
$(currentTiddler)$/$(currentTab)$
|
||||||
|
\end
|
||||||
|
<$transclude tiddler=<<localised-info-tiddler-title>> mode="block">
|
||||||
|
<$transclude tiddler=<<currentTiddler>> subtiddler=<<localised-info-tiddler-title>> mode="block">
|
||||||
|
<$transclude tiddler=<<currentTiddler>> subtiddler=<<info-tiddler-title>> mode="block">
|
||||||
|
No ''"<$text text=<<currentTab>>/>"'' found
|
||||||
|
</$transclude>
|
||||||
|
</$transclude>
|
||||||
|
</$transclude>
|
@ -1,19 +1,24 @@
|
|||||||
title: $:/TagManager
|
title: $:/TagManager
|
||||||
|
|
||||||
\define lingo-base() $:/language/TagManager/
|
\define lingo-base() $:/language/TagManager/
|
||||||
\define iconEditor(title)
|
\define iconEditorTab(type)
|
||||||
<$edit-text field="icon" tag="input" size="20"/> <$button popup=<<qualify "$:/state/popup/icon/$title$">> class="btn-invisible btn-dropdown">{{$:/core/images/down-arrow}}</$button>
|
<$list filter="[all[shadows+tiddlers]is[image]] [all[shadows+tiddlers]tag[$:/tags/Image]] -[type[application/pdf]] +[sort[title]] +[$type$is[system]]">
|
||||||
<div class="tw-block-dropdown-wrapper">
|
|
||||||
<$reveal state=<<qualify "$:/state/popup/icon/$title$">> type="nomatch" text="" default="">
|
|
||||||
<$linkcatcher to="$title$!!icon">
|
|
||||||
<div class="tw-block-dropdown tw-edit-type-dropdown">
|
|
||||||
<$list filter="[all[shadows+tiddlers]is[image]] [all[shadows+tiddlers]tag[$:/tags/Image]] +[sort[title]]">
|
|
||||||
<$link to={{!!title}}>
|
<$link to={{!!title}}>
|
||||||
<$view field="title"/>
|
<$transclude/> <$view field="title"/>
|
||||||
</$link>
|
</$link>
|
||||||
</$list>
|
</$list>
|
||||||
</div>
|
\end
|
||||||
|
\define iconEditor(title)
|
||||||
|
<div class="tw-drop-down-wrapper">
|
||||||
|
<$edit-text field="icon" tag="input" size="20"/> <$button popup=<<qualify "$:/state/popup/icon/$title$">> class="btn-invisible btn-dropdown">{{$:/core/images/down-arrow}}</$button>
|
||||||
|
<$reveal state=<<qualify "$:/state/popup/icon/$title$">> type="popup" position="belowleft" text="" default="">
|
||||||
|
<div class="tw-drop-down">
|
||||||
|
<$linkcatcher to="$title$!!icon">
|
||||||
|
<<iconEditorTab type:"!">>
|
||||||
|
<hr/>
|
||||||
|
<<iconEditorTab type:"">>
|
||||||
</$linkcatcher>
|
</$linkcatcher>
|
||||||
|
</div>
|
||||||
</$reveal>
|
</$reveal>
|
||||||
</div>
|
</div>
|
||||||
\end
|
\end
|
||||||
|
@ -10,3 +10,5 @@ modifier: hide
|
|||||||
type: hide
|
type: hide
|
||||||
draft.title: hide
|
draft.title: hide
|
||||||
draft.of: hide
|
draft.of: hide
|
||||||
|
revision: hide
|
||||||
|
bag: hide
|
||||||
|
8
core/wiki/config/EditorTypeMappings.multids
Normal file
8
core/wiki/config/EditorTypeMappings.multids
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
title: $:/config/EditorTypeMappings/
|
||||||
|
|
||||||
|
image/gif: bitmap
|
||||||
|
image/jpeg: bitmap
|
||||||
|
image/jpg: bitmap
|
||||||
|
image/png: bitmap
|
||||||
|
image/x-icon: bitmap
|
||||||
|
text/vnd.tiddlywiki: text
|
@ -6,6 +6,7 @@ core/ui/Buttons/full-screen: hide
|
|||||||
core/ui/Buttons/home: hide
|
core/ui/Buttons/home: hide
|
||||||
core/ui/Buttons/import: hide
|
core/ui/Buttons/import: hide
|
||||||
core/ui/Buttons/language: hide
|
core/ui/Buttons/language: hide
|
||||||
|
core/ui/Buttons/tag-manager: hide
|
||||||
core/ui/Buttons/more-page-actions: hide
|
core/ui/Buttons/more-page-actions: hide
|
||||||
core/ui/Buttons/permaview: hide
|
core/ui/Buttons/permaview: hide
|
||||||
core/ui/Buttons/storyview: hide
|
core/ui/Buttons/storyview: hide
|
||||||
|
@ -1,3 +1,3 @@
|
|||||||
title: $:/config/SyncFilter
|
title: $:/config/SyncFilter
|
||||||
|
|
||||||
[is[tiddler]] -[[$:/HistoryList]] -[[$:/StoryList]] -[[$:/isEncrypted]] -[prefix[$:/status]] -[prefix[$:/state]] -[prefix[$:/temp]]
|
[is[tiddler]] -[[$:/HistoryList]] -[[$:/StoryList]] -[[$:/Import]] -[[$:/isEncrypted]] -[prefix[$:/status]] -[prefix[$:/state]] -[prefix[$:/temp]]
|
3
core/wiki/language.tid
Normal file
3
core/wiki/language.tid
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
title: $:/language
|
||||||
|
|
||||||
|
$:/languages/en-GB
|
@ -1,2 +1,2 @@
|
|||||||
title: $:/tags/PageControls
|
title: $:/tags/PageControls
|
||||||
list: [[$:/core/ui/Buttons/home]] [[$:/core/ui/Buttons/close-all]] [[$:/core/ui/Buttons/permaview]] [[$:/core/ui/Buttons/new-tiddler]] [[$:/core/ui/Buttons/import]] [[$:/core/ui/Buttons/control-panel]] [[$:/core/ui/Buttons/language]] [[$:/core/ui/Buttons/theme]] [[$:/core/ui/Buttons/storyview]] [[$:/core/ui/Buttons/encryption]] [[$:/core/ui/Buttons/full-screen]] [[$:/core/ui/Buttons/save-wiki]] [[$:/core/ui/Buttons/more-page-actions]]
|
list: [[$:/core/ui/Buttons/home]] [[$:/core/ui/Buttons/close-all]] [[$:/core/ui/Buttons/permaview]] [[$:/core/ui/Buttons/new-tiddler]] [[$:/core/ui/Buttons/import]] [[$:/core/ui/Buttons/control-panel]] [[$:/core/ui/Buttons/tag-manager]] [[$:/core/ui/Buttons/language]] [[$:/core/ui/Buttons/theme]] [[$:/core/ui/Buttons/storyview]] [[$:/core/ui/Buttons/encryption]] [[$:/core/ui/Buttons/full-screen]] [[$:/core/ui/Buttons/save-wiki]] [[$:/core/ui/Buttons/more-page-actions]]
|
||||||
|
@ -45,6 +45,16 @@ describe("WikiText tests", function() {
|
|||||||
it("should support attributes specified as macro invocations", function() {
|
it("should support attributes specified as macro invocations", function() {
|
||||||
expect(wiki.renderTiddler("text/html","TiddlerFour")).toBe("<p><a class='tw-tiddlylink tw-tiddlylink-missing' href='#This%20is%20my%20''amazingly''%20groovy%20macro!'>This is a link</a></p>");
|
expect(wiki.renderTiddler("text/html","TiddlerFour")).toBe("<p><a class='tw-tiddlylink tw-tiddlylink-missing' href='#This%20is%20my%20''amazingly''%20groovy%20macro!'>This is a link</a></p>");
|
||||||
});
|
});
|
||||||
|
it("should identify wikiwords to automatically link", function() {
|
||||||
|
expect(wiki.renderText("text/html","text/vnd-tiddlywiki","No wikilinks here").indexOf("<a") !== -1).toBe(false);
|
||||||
|
expect(wiki.renderText("text/html","text/vnd-tiddlywiki","One WikiLink here").indexOf("<a") !== -1).toBe(true);
|
||||||
|
expect(wiki.renderText("text/html","text/vnd-tiddlywiki","No Wiki-Link here").indexOf("<a") !== -1).toBe(false);
|
||||||
|
expect(wiki.renderText("text/html","text/vnd-tiddlywiki","No Wiki×Link here").indexOf("<a") !== -1).toBe(false);
|
||||||
|
expect(wiki.renderText("text/html","text/vnd-tiddlywiki","No Wiki÷Link here").indexOf("<a") !== -1).toBe(false);
|
||||||
|
expect(wiki.renderText("text/html","text/vnd-tiddlywiki","No xWikiLink here").indexOf("<a") !== -1).toBe(false);
|
||||||
|
expect(wiki.renderText("text/html","text/vnd-tiddlywiki","No -WikiLink here").indexOf("<a") !== -1).toBe(false);
|
||||||
|
expect(wiki.renderText("text/html","text/vnd-tiddlywiki","No _WikiLink here").indexOf("<a") !== -1).toBe(false);
|
||||||
|
});
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -33,4 +33,4 @@ eg: `Jeremy Ruston, @Jermolene, 2011/11/22`
|
|||||||
|
|
||||||
!!!! Attribution
|
!!!! Attribution
|
||||||
|
|
||||||
The CLA documents used for this project were created using [[Harmony Project Templates|http://www.harmonyagreements.org]]. "~HA-CLA-I-LIST Version 1.0" for "CLA-individual" and "~HA-CLA-E-LIST Version 1.0" for "CLA-entity"
|
The CLA documents used for this project were created using [[Harmony Project Templates|http://www.harmonyagreements.org]]. "HA-CLA-I-LIST Version 1.0" for "CLA-individual" and "HA-CLA-E-LIST Version 1.0" for "CLA-entity"
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
created: 20131129090249275
|
created: 20131129090249275
|
||||||
modified: 20140720212022007
|
modified: 20140811172052886
|
||||||
tags: introduction
|
tags: introduction
|
||||||
title: GettingStarted
|
title: GettingStarted
|
||||||
type: text/vnd.tiddlywiki
|
type: text/vnd.tiddlywiki
|
||||||
@ -11,31 +11,9 @@ GettingStarted - $(browser-name)$
|
|||||||
<$macrocall $name="tabs" state="$:/state/tabs/platform" tabsList="[prefix[GettingStarted - ]]" default=<<default-platform>> class="tw-vertical"/>
|
<$macrocall $name="tabs" state="$:/state/tabs/platform" tabsList="[prefix[GettingStarted - ]]" default=<<default-platform>> class="tw-vertical"/>
|
||||||
</$set>
|
</$set>
|
||||||
|
|
||||||
-----
|
See also:
|
||||||
|
|
||||||
TiddlyWiki is very flexible, and there are many different ways to use it. Here we're focusing on using it as a standalone file in the browser, which is a good choice for most users as it doesn't require any special knowledge or tools. For more options you can also run [[TiddlyWiki on Node.js]].
|
* [[Saving with Encryption]] explains how to use TiddlyWiki's built-in encryption to protect your content with a password
|
||||||
|
|
||||||
[[Video Tutorials]] are available, too.
|
|
||||||
|
|
||||||
! The 'works anywhere' method
|
|
||||||
|
|
||||||
{{Saving with the HTML5 fallback saver}}
|
|
||||||
|
|
||||||
! The convenient and fast method
|
|
||||||
|
|
||||||
Saving changes as described above is quite inconvenient because of the degree of manual intervention that browsers require. The following alternative method is recommended for everyone who is able to use Mozilla's [[Firefox]] browser.
|
|
||||||
|
|
||||||
{{Saving with TiddlyFox}}
|
|
||||||
|
|
||||||
! Other ways of saving changes
|
|
||||||
|
|
||||||
[[Saving with Encryption]] explains how to use TiddlyWiki's built-in encryption to protect your content with a password.
|
|
||||||
|
|
||||||
You can also try:
|
|
||||||
|
|
||||||
* [[Using TiddlyWiki on TiddlyDesktop]], a custom desktop application for working with TiddlyWiki
|
|
||||||
* [[Saving on iPad/iPhone]] with the custom ''TWEdit'' app
|
|
||||||
* [[Saving on Android]] with the custom ''~AndTidWiki'' app
|
|
||||||
* [[Saving on InternetExplorer]] with the [[TiddlyIE]] extension, or via the [[Windows HTA Hack]]
|
|
||||||
* [[Saving on TiddlySpot]], a free service that lets you use TiddlyWiki online
|
* [[Saving on TiddlySpot]], a free service that lets you use TiddlyWiki online
|
||||||
* Running [[TiddlyWiki on node-webkit]], turning a single TiddlyWiki into a native application on your desktop
|
* Running [[TiddlyWiki on node-webkit]], turning a single TiddlyWiki into a native application on your desktop
|
||||||
|
* [[Using TiddlyWiki on TiddlyDesktop]], a custom desktop application for working with TiddlyWiki
|
||||||
|
@ -1,12 +1,14 @@
|
|||||||
created: 20130822170200000
|
created: 20130822170200000
|
||||||
modified: 20140624094134118
|
modified: 20140813164027280
|
||||||
tags: introduction
|
tags: introduction
|
||||||
title: HelloThere
|
title: HelloThere
|
||||||
type: text/vnd.tiddlywiki
|
type: text/vnd.tiddlywiki
|
||||||
|
|
||||||
Welcome to TiddlyWiki, a complete interactive wiki in JavaScript. It can be used as a [[single HTML file in the browser|SingleFileApplication]] or as a powerful [[Node.js application|Node.js]]. It is highly customisable: the entire user interface is itself implemented in hackable WikiText.
|
Welcome to TiddlyWiki, a non-linear personal web notebook that anyone can use and keep forever, independently of any corporation.
|
||||||
|
|
||||||
This is version <<version>> of ~TiddlyWiki, a major reboot designed [[for the next 25 years|Future of TiddlyWiki]]. It is currently in beta (see the detailed ReleaseHistory). There is a RoadMap for moving to the full release. It is a great time to [[get involved|Community]] and support the future development of ~TiddlyWiki.
|
TiddlyWiki is a complete interactive wiki in JavaScript. It can be used as a [[single HTML file in the browser|SingleFileApplication]] or as a powerful [[Node.js application|Node.js]]. It is highly customisable: the entire user interface is itself implemented in hackable WikiText.
|
||||||
|
|
||||||
|
This is version <<version-link>> of ~TiddlyWiki, a major reboot designed [[for the next 25 years|Future of TiddlyWiki]]. It is currently in beta (see the detailed ReleaseHistory) with a RoadMap for moving to the full release. It is a great time to [[get involved|Community]] and support the future development of ~TiddlyWiki.
|
||||||
|
|
||||||
//~TiddlyWiki is a free, open source project that depends on [[your love and support|HelpingTiddlyWiki]] for its survival//.
|
//~TiddlyWiki is a free, open source project that depends on [[your love and support|HelpingTiddlyWiki]] for its survival//.
|
||||||
|
|
||||||
@ -14,9 +16,7 @@ This is version <<version>> of ~TiddlyWiki, a major reboot designed [[for the ne
|
|||||||
|
|
||||||
<a class="tw-message-icon" href="http://tiddlywiki.com/" target="_blank">{{TiddlyWiki Classic.png}}</a>
|
<a class="tw-message-icon" href="http://tiddlywiki.com/" target="_blank">{{TiddlyWiki Classic.png}}</a>
|
||||||
|
|
||||||
!! TiddlyWikiClassic - http://classic.tiddlywiki.com
|
!! TiddlyWikiClassic
|
||||||
|
|
||||||
On this site, unless noted otherwise, "~TiddlyWiki" refers to the new version 5, and "~TiddlyWikiClassic" is used to identify the older version.
|
The original "Classic" version of TiddlyWiki is still available at http://classic.tiddlywiki.com. Note that it is not fully backwards compatible: existing content will need massaging, while plugins and themes will have to be completely rewritten. The upgrade path will get smoother as the new version matures.
|
||||||
|
|
||||||
The deep internal improvements mean that the new version of ~TiddlyWiki is not fully compatible with ~TiddlyWikiClassic. Existing content will need massaging, while plugins and themes will have to be completely rewritten. The upgrade path will get smoother as the new version matures.
|
|
||||||
</div>
|
</div>
|
||||||
|
20
editions/tw5.com/tiddlers/ImageGallery Example.tid
Normal file
20
editions/tw5.com/tiddlers/ImageGallery Example.tid
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
created: 20140809113603449
|
||||||
|
modified: 20140809113849873
|
||||||
|
tags: demo
|
||||||
|
title: ImageGallery Example
|
||||||
|
type: text/vnd.tiddlywiki
|
||||||
|
|
||||||
|
Here is an example of using the ListWidget and the TranscludeWidget to show a grid of all system images (ie, tiddlers tagged [[$:/tags/Image]]).
|
||||||
|
|
||||||
|
<style>
|
||||||
|
.my-gallery svg {
|
||||||
|
width: 6em;
|
||||||
|
height: 6em;
|
||||||
|
margin: 1em;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
<div class="my-gallery">
|
||||||
|
<$list filter="[all[tiddlers+shadows]tag[$:/tags/Image]]">
|
||||||
|
<$transclude/>
|
||||||
|
</$list>
|
||||||
|
</div>
|
@ -1,15 +1,26 @@
|
|||||||
created: 20140518150234142
|
caption: 5.0.14-beta
|
||||||
modified: 20140624094134118
|
created: 20140718150234142
|
||||||
|
modified: 20140813153116300
|
||||||
tags: releasenote
|
tags: releasenote
|
||||||
title: Release 5.0.14-beta
|
title: Release 5.0.14-beta
|
||||||
type: text/vnd.tiddlywiki
|
type: text/vnd.tiddlywiki
|
||||||
caption: 5.0.14-beta
|
released: 201408131731
|
||||||
|
|
||||||
//[[See GitHub for detailed change history of this release|https://github.com/Jermolene/TiddlyWiki5/compare/v5.0.13-beta...v5.0.14-beta]]//
|
//[[See GitHub for detailed change history of this release|https://github.com/Jermolene/TiddlyWiki5/compare/v5.0.13-beta...v5.0.14-beta]]//
|
||||||
|
|
||||||
!! Major Changes
|
!! Major Changes
|
||||||
|
|
||||||
!!! Introduction of Upgrade Mechanism
|
!!! Improved Control Panel Plugins Tab
|
||||||
|
|
||||||
|
The ''Plugins'' tab of the [[control panel|$:/ControlPanel]] has been improved with the addition of documentation tabs that plugins can use to show documentation. There is also a larger draggable area for dragging tiddlers across to other wikis.
|
||||||
|
|
||||||
|
!!! Configurable Button Toolbars
|
||||||
|
|
||||||
|
The page toolbar and the tiddler toolbars can now be configured with several new buttons - see the [[control panel|$:/ControlPanel]] under the ''Appearance'' and ''Toolbars'' tabs.
|
||||||
|
|
||||||
|
The sidebar tools tab now shows all the available page controls, allowing them to be invoked or checked to appear in the toolbar. The tiddler info area now includes a tools tab that includes buttons for all the tiddler actions.
|
||||||
|
|
||||||
|
!!! Upgrade Mechanism
|
||||||
|
|
||||||
There are two components:
|
There are two components:
|
||||||
|
|
||||||
@ -19,32 +30,45 @@ There are two components:
|
|||||||
*** The [[plugin upgrader|$:/core/modules/upgraders/plugins.js]] module handles version checking of plugins and upgrading them from a special UpgradeLibrary plugin tiddler
|
*** The [[plugin upgrader|$:/core/modules/upgraders/plugins.js]] module handles version checking of plugins and upgrading them from a special UpgradeLibrary plugin tiddler
|
||||||
*** The [[system upgrader|$:/core/modules/upgraders/system.js]] module is responsible for suppressing the importing of certain system tiddlers (currently [[$:/StoryList]] and [[$:/HistoryList]])
|
*** The [[system upgrader|$:/core/modules/upgraders/system.js]] module is responsible for suppressing the importing of certain system tiddlers (currently [[$:/StoryList]] and [[$:/HistoryList]])
|
||||||
*** The [[themetweak upgrader|$:/core/modules/upgraders/themetweaks.js]] module handles migrating theme tweaks from their pre-5.0.14-beta format (see below)
|
*** The [[themetweak upgrader|$:/core/modules/upgraders/themetweaks.js]] module handles migrating theme tweaks from their pre-5.0.14-beta format (see below)
|
||||||
* An UpgradePlugin and associated edition that provides a custom, single-purpose user interface for upgrading standalone TiddlyWiki files
|
* An UpgradePlugin and associated edition that provides a custom, single-purpose user interface for upgrading standalone TiddlyWiki files - see http://tiddlywiki.com/upgrade.html
|
||||||
|
|
||||||
!!! PermaView (and PermaLinks) Off by Default
|
!!! Improvements to CamelCase Recognition
|
||||||
|
|
||||||
The browser address bar is automatically updated with previous beta releases of TiddlyWiki so that it dynamically reflects the tiddlers that are currently open. This makes it easier to get a permalink for copying and pasting elsewhere, but it leads to much confusion for casual users who don't always understand why unexpected tiddlers are being displayed.
|
TiddlyWiki now takes a much more conservative approach to recognising CamelCase terms that should be automatically linked. Previously, the dash and underscore were treated as lower case letters, leading to a number of false positives. See the [[GitHub bug #337|https://github.com/Jermolene/TiddlyWiki5/issues/337]] for details.
|
||||||
|
|
||||||
|
!!! Automatic Permalinking Off by Default
|
||||||
|
|
||||||
|
With previous beta releases of TiddlyWiki the browser address bar is automatically updated so that it dynamically reflects the tiddlers that are currently open. This makes it easier to get a permalink for copying and pasting elsewhere, but it leads to much confusion for casual users who don't always understand why unexpected tiddlers are being displayed after they have refreshed the page in the browser.
|
||||||
|
|
||||||
For 5.0.14-beta, the setting has been changed. Visit [[control panel|$:/ControlPanel]] ''Advanced''/''Settings'' to switch the setting back to "Include the target tiddler and the current story sequence".
|
For 5.0.14-beta, the setting has been changed. Visit [[control panel|$:/ControlPanel]] ''Advanced''/''Settings'' to switch the setting back to "Include the target tiddler and the current story sequence".
|
||||||
|
|
||||||
!! Accessibility Improvements
|
|
||||||
|
|
||||||
*
|
|
||||||
|
|
||||||
!! Usability Improvements
|
!! Usability Improvements
|
||||||
|
|
||||||
|
* [[Added|https://github.com/Jermolene/TiddlyWiki5/commit/f6d7d87a3d49f816ccc050bdf4a5394eed37dd51]] previews to the icon dropdown in the [[tag manager|$:/TagManager]]
|
||||||
|
* [[Added|https://github.com/Jermolene/TiddlyWiki5/commit/56945d91d327489478fc44dce5234ece35a01abb]] an indication of unsaved changes by changing the colour of the save changes button
|
||||||
|
* [[Split|https://github.com/Jermolene/TiddlyWiki5/commit/7aa6c7c06d8b5359f183e6b9f6f57cf89611cda8]] the wikitext emphasis parsers into separate modules so that they can be independently controlled with the `\rules` pragma
|
||||||
* [[Refactored|https://github.com/Jermolene/TiddlyWiki5/commit/f43cd5ba9c6e5eda221ec738174e61e34fad2b8d]] (and [[here|https://github.com/Jermolene/TiddlyWiki5/commit/a3de93b4eb8b108239b2e4b496308026e9e9eef8]]) ReleaseHistory to place the releases into vertical tabs
|
* [[Refactored|https://github.com/Jermolene/TiddlyWiki5/commit/f43cd5ba9c6e5eda221ec738174e61e34fad2b8d]] (and [[here|https://github.com/Jermolene/TiddlyWiki5/commit/a3de93b4eb8b108239b2e4b496308026e9e9eef8]]) ReleaseHistory to place the releases into vertical tabs
|
||||||
* [[Stopped|https://github.com/Jermolene/TiddlyWiki5/commit/3ff7462afd5414b92680c6b6e67274be79233224]] saving [[$:/HistoryList]], thus avoiding it uncontrollably increasing in size
|
* [[Stopped|https://github.com/Jermolene/TiddlyWiki5/commit/3ff7462afd5414b92680c6b6e67274be79233224]] saving [[$:/HistoryList]], thus avoiding it uncontrollably increasing in size
|
||||||
* [[Improved|https://github.com/Jermolene/TiddlyWiki5/commit/73cf1bfdb3cd238ac7800162f58d44a8bb60019b]] (and [[here|https://github.com/Jermolene/TiddlyWiki5/commit/d5e4b9b5d1e7db5ad4d769433cc934ef08265f57]]) print stylesheet to remove page background
|
* [[Improved|https://github.com/Jermolene/TiddlyWiki5/commit/73cf1bfdb3cd238ac7800162f58d44a8bb60019b]] (and [[here|https://github.com/Jermolene/TiddlyWiki5/commit/d5e4b9b5d1e7db5ad4d769433cc934ef08265f57]]) print stylesheet to remove page background
|
||||||
* [[Updated|https://github.com/Jermolene/TiddlyWiki5/commit/07f13b310d300631267936ad8bc55a338369afc0]] display of plugin tiddlers so that their constituent tiddlers are shown, rather than the raw JSON
|
* [[Updated|https://github.com/Jermolene/TiddlyWiki5/commit/07f13b310d300631267936ad8bc55a338369afc0]] display of plugin tiddlers so that their constituent tiddlers are shown, rather than the raw JSON
|
||||||
|
* [[Moved|https://github.com/Jermolene/TiddlyWiki5/commit/799a5b059a40a51fdeb1dae7a0eb5bf8a79f5106]] the functionality of the fullscreen plugin into the core
|
||||||
|
|
||||||
!! Hackability Improvements
|
!! Hackability Improvements
|
||||||
|
|
||||||
|
* [[Extended|https://github.com/Jermolene/TiddlyWiki5/commit/c23f6af4b5c59f4d09dd8d6704e1939bb9d5b2d3]] TiddlerWidget to add a CSS class corresponding to each tag present on displayed tiddlers
|
||||||
|
* [[Added|https://github.com/Jermolene/TiddlyWiki5/commit/d357e1706c91d17a72fb19fedf43e57071fc7dd6]] support for hiding specified fields in the tiddler editor
|
||||||
|
* [[Added|https://github.com/Jermolene/TiddlyWiki5/commit/be040ea8a2cc8962f1a28a313e4c9ebc2d5c0e31]] support for variable operands in filters (see [[Introduction to Filters]])
|
||||||
|
* [[Added|https://github.com/Jermolene/TiddlyWiki5/commit/1f16ef6fa88b51d2dad7c8e57fcff014950a7442]] support for widget messages [[tw-permalink|WidgetMessage: tw-permalink]] and [[tw-permaview|WidgetMessage: tw-permaview]]
|
||||||
|
* [[Added|https://github.com/Jermolene/TiddlyWiki5/tree/master/plugins/tiddlywiki/browser-sniff]] browser sniffing plugin so that tiddlywiki.com can present the correct browser-specific documentation
|
||||||
|
* [[Added|https://github.com/Jermolene/TiddlyWiki5/commit/ef67cc3fd9b267a522598abccdfbb93fbfca240c]] a configuration option for specifying the default location for saving new tiddlers in the client-server configuration
|
||||||
|
* [[Added|https://github.com/Jermolene/TiddlyWiki5/commit/b4d47858e587c96f3a68cc28cffff181ec45f55f]] support for the InfoMechanism
|
||||||
* [[Extended|https://github.com/Jermolene/TiddlyWiki5/commit/f08f57c5d24eb0146ac2cb77472a5fc5f135f1e9]] CheckboxWidget to allow it to toggle fields as well as tags
|
* [[Extended|https://github.com/Jermolene/TiddlyWiki5/commit/f08f57c5d24eb0146ac2cb77472a5fc5f135f1e9]] CheckboxWidget to allow it to toggle fields as well as tags
|
||||||
* [[Refactored|https://github.com/Jermolene/TiddlyWiki5/commit/21c137a66c37f010b36697bb6bed5321138fbb9f]] [[control panel|$:/ControlPanel]] theme tweaks to be stored in individual tiddlers
|
* [[Refactored|https://github.com/Jermolene/TiddlyWiki5/commit/21c137a66c37f010b36697bb6bed5321138fbb9f]] [[control panel|$:/ControlPanel]] theme tweaks to be stored in individual tiddlers
|
||||||
* [[Extend|https://github.com/Jermolene/TiddlyWiki5/commit/e18d8a88661a1c2caa1b722841747c75ca6af437]] the TabsMacro to allow tabs to be templated
|
* [[Extend|https://github.com/Jermolene/TiddlyWiki5/commit/e18d8a88661a1c2caa1b722841747c75ca6af437]] the TabsMacro to allow tabs to be templated
|
||||||
* [[Added|https://github.com/Jermolene/TiddlyWiki5/commit/91acad0f7ce8637945a953dfcb122cd31292626d]] (and [[here|https://github.com/Jermolene/TiddlyWiki5/commit/8612bc4006e717e4fa3c562fa72a85650206b66f]]) SystemTags support for inserting content above and below the story river
|
* [[Added|https://github.com/Jermolene/TiddlyWiki5/commit/91acad0f7ce8637945a953dfcb122cd31292626d]] (and [[here|https://github.com/Jermolene/TiddlyWiki5/commit/8612bc4006e717e4fa3c562fa72a85650206b66f]]) SystemTags support for inserting content above and below the story river
|
||||||
* [[Added|https://github.com/Jermolene/TiddlyWiki5/commit/f793816dfa687ae7791143b33487fd5f95f3265c]] support for transcluding plugin subtiddlers with the TranscludeWidget
|
* [[Added|https://github.com/Jermolene/TiddlyWiki5/commit/f793816dfa687ae7791143b33487fd5f95f3265c]] support for transcluding plugin subtiddlers with the TranscludeWidget
|
||||||
|
* [[Added|https://github.com/Jermolene/TiddlyWiki5/commit/c73853288c5b4b0716da94fea2f2edec09345643]] (and [[here|https://github.com/Jermolene/TiddlyWiki5/commit/08f775eac8cb053d08c1c561e65a5eeb87c4c6b6]]) support for importing from `*.htm` and `*.hta` files as well as the existing support for `*.html` files
|
||||||
|
* [[Extended|https://github.com/Jermolene/TiddlyWiki5/commit/73d7e85e11c7732080ca8bc4321ebb12afbac09c]] the "sticky titles" theme so that it works when tiddlers are in edit mode
|
||||||
|
|
||||||
!! Bug Fixes
|
!! Bug Fixes
|
||||||
|
|
||||||
@ -52,9 +76,13 @@ For 5.0.14-beta, the setting has been changed. Visit [[control panel|$:/ControlP
|
|||||||
* [[Fixed|https://github.com/Jermolene/TiddlyWiki5/commit/d93da81671a704377209fc1871425c3a7c5db35a]] bug with missing hover colours for external links
|
* [[Fixed|https://github.com/Jermolene/TiddlyWiki5/commit/d93da81671a704377209fc1871425c3a7c5db35a]] bug with missing hover colours for external links
|
||||||
* [[Fixed|https://github.com/Jermolene/TiddlyWiki5/commit/465f4ac46903070759a572d183c498c5579cb922]] problem with refreshing modal dialogues
|
* [[Fixed|https://github.com/Jermolene/TiddlyWiki5/commit/465f4ac46903070759a572d183c498c5579cb922]] problem with refreshing modal dialogues
|
||||||
* [[Fixed|https://github.com/Jermolene/TiddlyWiki5/commit/3351ae7e29cbf3bed6fc1925ef33664bcc59fef5]] issue with cookies disabled on Firefox
|
* [[Fixed|https://github.com/Jermolene/TiddlyWiki5/commit/3351ae7e29cbf3bed6fc1925ef33664bcc59fef5]] issue with cookies disabled on Firefox
|
||||||
|
* [[Relax|https://github.com/Jermolene/TiddlyWiki5/commit/5260899d8b090e8886e41e3aa770fdcf5967ad8c]] the requirement for a newline immediately the closing `\end` of a macro definition
|
||||||
|
|
||||||
!! Contributors
|
!! Contributors
|
||||||
|
|
||||||
[[@Jermolene|https://github.com/Jermolene]] would like to thank the contributors to this release who have generously given their time to help improve TiddlyWiki:
|
[[@Jermolene|https://github.com/Jermolene]] would like to thank the contributors to this release who have generously given their time to help improve TiddlyWiki:
|
||||||
|
|
||||||
* [[@BramChen|https://github.com/BramChen]]
|
* [[@BramChen|https://github.com/BramChen]]
|
||||||
|
* [[@pmario|https://github.com/pmario]]
|
||||||
|
* [[@ssokolow|https://github.com/ssokolow]]
|
||||||
|
* [[@xcazin|https://github.com/xcazin]]
|
||||||
|
30
editions/tw5.com/tiddlers/Release 5.0.15beta.tid
Normal file
30
editions/tw5.com/tiddlers/Release 5.0.15beta.tid
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
caption: 5.0.15-beta
|
||||||
|
created: 20140812150234142
|
||||||
|
modified: 20140813153116300
|
||||||
|
tags: releasenote
|
||||||
|
title: Release 5.0.15-beta
|
||||||
|
type: text/vnd.tiddlywiki
|
||||||
|
|
||||||
|
//[[See GitHub for detailed change history of this release|https://github.com/Jermolene/TiddlyWiki5/compare/v5.0.14-beta...v5.0.15-beta]]//
|
||||||
|
|
||||||
|
This is a small release to resolve some minor issues with [[Release 5.0.14-beta]].
|
||||||
|
|
||||||
|
!! Usability Improvements
|
||||||
|
|
||||||
|
* [[Added|https://github.com/Jermolene/TiddlyWiki5/commit/4b05608ad5e77043b01495825ea0f0e76c378760]] page control button for invoking the [[tag manager|$:/TagManager]]
|
||||||
|
|
||||||
|
!! Hackability Improvements
|
||||||
|
|
||||||
|
* [[Refactored|https://github.com/Jermolene/TiddlyWiki5/commit/f75af2c983e10e8a82639890b993fb5cf042d610]] `saver-handler.js` out of `syncer.js`
|
||||||
|
|
||||||
|
!! Bug Fixes
|
||||||
|
|
||||||
|
* [[Fixed|https://github.com/Jermolene/TiddlyWiki5/commit/c8830d32f74b8c228553f11f7f55b5be45ae6471]] problem with building TiddlyWiki under Windows
|
||||||
|
* [[Fixed|https://github.com/Jermolene/TiddlyWiki5/commit/34461cb2fe554331a0269fd7795b1d6a879fcba9]] unclickable download ink in upgrade wizard
|
||||||
|
* [[Fixed|https://github.com/Jermolene/TiddlyWiki5/commit/9e85ddfec78dd8df71e6173100dce659417551f4]] missing language flag in ''empty.html''
|
||||||
|
|
||||||
|
!! Contributors
|
||||||
|
|
||||||
|
[[@Jermolene|https://github.com/Jermolene]] would like to thank the contributors to this release who have generously given their time to help improve TiddlyWiki:
|
||||||
|
|
||||||
|
* [[@BramChen|https://github.com/BramChen]]
|
@ -5,4 +5,4 @@ type: text/vnd.tiddlywiki
|
|||||||
|
|
||||||
Here are the details of recent releases of TiddlyWiki5. See [[TiddlyWiki5 Versioning]] for details of how releases are named.
|
Here are the details of recent releases of TiddlyWiki5. See [[TiddlyWiki5 Versioning]] for details of how releases are named.
|
||||||
|
|
||||||
<<tabs "[tag[releasenote]!sort[created]]" "Release 5.0.14-beta" "$:/state/tab2" "tw-vertical" "ReleaseHistoryTemplate">>
|
<<tabs "[tag[releasenote]!sort[created]]" "Release 5.0.15-beta" "$:/state/tab2" "tw-vertical" "ReleaseHistoryTemplate">>
|
||||||
|
23
editions/tw5.com/tiddlers/Saving on Safari.tid
Normal file
23
editions/tw5.com/tiddlers/Saving on Safari.tid
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
created: 20140811171304926
|
||||||
|
modified: 20140811171800263
|
||||||
|
tags: howto
|
||||||
|
title: Saving on Safari
|
||||||
|
type: text/vnd.tiddlywiki
|
||||||
|
|
||||||
|
This method of saving changes is clunky because it requires manual intervention for each save.
|
||||||
|
|
||||||
|
# [[Download]] an empty TiddlyWiki by clicking this button:
|
||||||
|
#> {{$:/editions/tw5.com/snippets/download-empty-button}}
|
||||||
|
#> If the button doesn't work save this link: http://tiddlywiki.com/empty.html
|
||||||
|
#> Your browser may ask you to accept the download before it begins
|
||||||
|
# Locate the file you just downloaded
|
||||||
|
#* You may rename it, but be sure to keep the `.html` or `.htm` extension
|
||||||
|
# Open the file in Safari
|
||||||
|
# Try creating a new tiddler using the ''new tiddler'' {{$:/core/images/new-button}} button in the sidebar. Type some content for the tiddler, and click the {{$:/core/images/done-button}} ''done'' button
|
||||||
|
# Save your changes by clicking the {{$:/core/images/save-button}} ''save changes'' button in the sidebar
|
||||||
|
# A popup "Download changes" window is displayed that includes a link labelled //Right-click to save changes//
|
||||||
|
# Right-click on the link and select "Download Linked File As..." from the popup menu
|
||||||
|
# Navigate to the folder containing your wiki HTML file and select the existing file
|
||||||
|
# Click the "Save" button
|
||||||
|
# Click "Replace" to confirm replacing the existing file
|
||||||
|
# Verify that your changes have been saved correctly
|
@ -1,7 +1,10 @@
|
|||||||
title: TableOfContents
|
|
||||||
list-after: $:/core/ui/SideBar/Open
|
|
||||||
tags: $:/tags/SideBar
|
|
||||||
caption: {{$:/language/SideBar/Contents/Caption}}
|
caption: {{$:/language/SideBar/Contents/Caption}}
|
||||||
|
created: 20140809114010378
|
||||||
|
list-after: $:/core/ui/SideBar/Open
|
||||||
|
modified: 20140809114018461
|
||||||
|
tags: $:/tags/SideBar
|
||||||
|
title: TableOfContents
|
||||||
|
type: text/vnd.tiddlywiki
|
||||||
|
|
||||||
\define toc-heading(caption,body)
|
\define toc-heading(caption,body)
|
||||||
<$reveal type="nomatch" state=<<qualify "$:/state/toc/$caption$">> text="show">
|
<$reveal type="nomatch" state=<<qualify "$:/state/toc/$caption$">> text="show">
|
||||||
@ -106,6 +109,7 @@ $body$
|
|||||||
## [[Creating SubStories]]
|
## [[Creating SubStories]]
|
||||||
## [[Editing Tiddlers with Emacs]]
|
## [[Editing Tiddlers with Emacs]]
|
||||||
## [[GoogleChromeTips]]
|
## [[GoogleChromeTips]]
|
||||||
|
## [[ImageGallery Example]]
|
||||||
## [[Making curved text with SVG]]
|
## [[Making curved text with SVG]]
|
||||||
## [[Preserving open tiddlers at startup]]
|
## [[Preserving open tiddlers at startup]]
|
||||||
## [[Setting a favicon]]
|
## [[Setting a favicon]]
|
||||||
@ -179,18 +183,30 @@ $body$
|
|||||||
">>
|
">>
|
||||||
## <<toc-heading "Widget Messages" "
|
## <<toc-heading "Widget Messages" "
|
||||||
## WidgetMessages
|
## WidgetMessages
|
||||||
|
## [[tw-auto-save-wiki|WidgetMessage: tw-auto-save-wiki]]
|
||||||
## [[tw-cancel-tiddler|WidgetMessage: tw-cancel-tiddler]]
|
## [[tw-cancel-tiddler|WidgetMessage: tw-cancel-tiddler]]
|
||||||
## [[tw-clear-password|WidgetMessage: tw-clear-password]]
|
## [[tw-clear-password|WidgetMessage: tw-clear-password]]
|
||||||
## [[tw-close-all-tiddlers|WidgetMessage: tw-close-all-tiddlers]]
|
## [[tw-close-all-tiddlers|WidgetMessage: tw-close-all-tiddlers]]
|
||||||
## [[tw-close-other-tiddlers|WidgetMessage: tw-close-other-tiddlers]]
|
## [[tw-close-other-tiddlers|WidgetMessage: tw-close-other-tiddlers]]
|
||||||
## [[tw-close-tiddler|WidgetMessage: tw-close-tiddler]]
|
## [[tw-close-tiddler|WidgetMessage: tw-close-tiddler]]
|
||||||
## [[tw-delete-tiddler|WidgetMessage: tw-delete-tiddler]]
|
## [[tw-delete-tiddler|WidgetMessage: tw-delete-tiddler]]
|
||||||
|
## [[tw-download-file|WidgetMessage: tw-download-file]]
|
||||||
## [[tw-edit-tiddler|WidgetMessage: tw-edit-tiddler]]
|
## [[tw-edit-tiddler|WidgetMessage: tw-edit-tiddler]]
|
||||||
|
## [[tw-full-screen|WidgetMessage: tw-full-screen]]
|
||||||
## [[tw-home|WidgetMessage: tw-home]]
|
## [[tw-home|WidgetMessage: tw-home]]
|
||||||
## [[tw-import-tiddlers|WidgetMessage: tw-import-tiddlers]]
|
## [[tw-import-tiddlers|WidgetMessage: tw-import-tiddlers]]
|
||||||
|
## [[tw-login|WidgetMessage: tw-login]]
|
||||||
|
## [[tw-logout|WidgetMessage: tw-logout]]
|
||||||
|
## [[tw-modal|WidgetMessage: tw-modal]]
|
||||||
## [[tw-navigate|WidgetMessage: tw-navigate]]
|
## [[tw-navigate|WidgetMessage: tw-navigate]]
|
||||||
## [[tw-new-tiddler|WidgetMessage: tw-new-tiddler]]
|
## [[tw-new-tiddler|WidgetMessage: tw-new-tiddler]]
|
||||||
|
## [[tw-notify|WidgetMessage: tw-notify]]
|
||||||
|
## [[tw-perform-import|WidgetMessage: tw-perform-import]]
|
||||||
|
## [[tw-permalink|WidgetMessage: tw-permalink]]
|
||||||
|
## [[tw-permaview|WidgetMessage: tw-permaview]]
|
||||||
## [[tw-save-tiddler|WidgetMessage: tw-save-tiddler]]
|
## [[tw-save-tiddler|WidgetMessage: tw-save-tiddler]]
|
||||||
|
## [[tw-save-wiki|WidgetMessage: tw-save-wiki]]
|
||||||
|
## [[tw-server-refresh|WidgetMessage: tw-server-refresh]]
|
||||||
## [[tw-set-password|WidgetMessage: tw-set-password]]
|
## [[tw-set-password|WidgetMessage: tw-set-password]]
|
||||||
">>
|
">>
|
||||||
## <<toc-heading "Filter Operators" "
|
## <<toc-heading "Filter Operators" "
|
||||||
@ -330,6 +346,7 @@ $body$
|
|||||||
## [[Release 5.0.11-beta]]
|
## [[Release 5.0.11-beta]]
|
||||||
## [[Release 5.0.12-beta]]
|
## [[Release 5.0.12-beta]]
|
||||||
## [[Release 5.0.13-beta]]
|
## [[Release 5.0.13-beta]]
|
||||||
|
## [[Release 5.0.14-beta]]
|
||||||
">>
|
">>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
@ -16,6 +16,8 @@ An external image is an ordinary image tiddler that has a ''_canonical_uri'' fie
|
|||||||
|
|
||||||
To manually create an external image just create the tiddler with the appropriate image content type, and add a ''_canonical_uri'' field with a URI pointing to the actual image location.
|
To manually create an external image just create the tiddler with the appropriate image content type, and add a ''_canonical_uri'' field with a URI pointing to the actual image location.
|
||||||
|
|
||||||
|
''IMPORTANT:'' Double-check your spelling. ``_canonical_uri`` is spelled [[URI|https://en.wikipedia.org/wiki/URI#The_relationship_between_URIs.2C_URLs.2C_and_URNs]], not URL.
|
||||||
|
|
||||||
! Creating external images under Node.js
|
! Creating external images under Node.js
|
||||||
|
|
||||||
The following steps are used to create a static HTML file version of a wiki accompanied by an ''images'' folder containing the referenced external images:
|
The following steps are used to create a static HTML file version of a wiki accompanied by an ''images'' folder containing the referenced external images:
|
||||||
|
@ -1,5 +1,7 @@
|
|||||||
title: GettingStarted - Android
|
|
||||||
caption: Android
|
caption: Android
|
||||||
|
created: 20140811171036268
|
||||||
|
modified: 20140811171041595
|
||||||
|
title: GettingStarted - Android
|
||||||
|
type: text/vnd.tiddlywiki
|
||||||
|
|
||||||
These are instructions for Android.
|
{{Saving on Android}}
|
||||||
|
|
||||||
|
@ -1,4 +1,9 @@
|
|||||||
title: GettingStarted - Chrome
|
|
||||||
caption: Chrome
|
caption: Chrome
|
||||||
|
created: 20140811165935523
|
||||||
|
modified: 20140811170107969
|
||||||
|
title: GettingStarted - Chrome
|
||||||
|
type: text/vnd.tiddlywiki
|
||||||
|
|
||||||
These are instructions for Chrome
|
TiddlyWiki on Google Chrome can only save changes using the HTML5-compatible fallback saver module.
|
||||||
|
|
||||||
|
{{Saving with the HTML5 fallback saver}}
|
||||||
|
@ -1,4 +1,9 @@
|
|||||||
title: GettingStarted - Firefox
|
|
||||||
caption: Firefox
|
caption: Firefox
|
||||||
|
created: 20140811170425199
|
||||||
|
modified: 20140811170527083
|
||||||
|
title: GettingStarted - Firefox
|
||||||
|
type: text/vnd.tiddlywiki
|
||||||
|
|
||||||
These are instructions for Firefox
|
Firefox provides the best user experience for using TiddlyWiki with the TiddlyFox browser extension.
|
||||||
|
|
||||||
|
{{Saving with TiddlyFox}}
|
||||||
|
@ -1,5 +1,9 @@
|
|||||||
title: GettingStarted - Internet Explorer
|
|
||||||
caption: Internet Explorer
|
caption: Internet Explorer
|
||||||
|
created: 20140811172058274
|
||||||
|
modified: 20140811172247864
|
||||||
|
title: GettingStarted - Internet Explorer
|
||||||
|
type: text/vnd.tiddlywiki
|
||||||
|
|
||||||
These are instructions for Internet Explorer.
|
{{Saving with TiddlyIE}}
|
||||||
|
|
||||||
|
The [[Windows HTA Hack]] describes an alternative method of using TiddlyWiki with Internet Explorer.
|
@ -1,4 +1,7 @@
|
|||||||
title: GettingStarted - Node.js
|
|
||||||
caption: Node.js
|
caption: Node.js
|
||||||
|
created: 20140811172010003
|
||||||
|
modified: 20140811172012677
|
||||||
|
title: GettingStarted - Node.js
|
||||||
|
type: text/vnd.tiddlywiki
|
||||||
|
|
||||||
Instructions for Node.js
|
{{Installing TiddlyWiki on Node.js}}
|
||||||
|
@ -1,5 +1,10 @@
|
|||||||
title: GettingStarted - Safari
|
|
||||||
caption: Safari
|
caption: Safari
|
||||||
|
created: 20140811171121022
|
||||||
|
modified: 20140811171247643
|
||||||
|
title: GettingStarted - Safari
|
||||||
|
type: text/vnd.tiddlywiki
|
||||||
|
|
||||||
These are instructions for Safari.
|
TiddlyWiki on Safari can only save changes using the HTML5-compatible fallback saver module.
|
||||||
|
|
||||||
|
{{Saving on Safari}}
|
||||||
|
|
||||||
|
@ -1,5 +1,7 @@
|
|||||||
title: GettingStarted - iOS
|
|
||||||
caption: iPad/iPhone
|
caption: iPad/iPhone
|
||||||
|
created: 20140811170918707
|
||||||
|
modified: 20140811170921731
|
||||||
|
title: GettingStarted - iOS
|
||||||
|
type: text/vnd.tiddlywiki
|
||||||
|
|
||||||
These are instructions for iPad/iPhone/iPod.
|
{{Saving on iPad/iPhone}}
|
||||||
|
|
||||||
|
@ -1,5 +0,0 @@
|
|||||||
title: GettingStarted - unknown
|
|
||||||
caption: unknown
|
|
||||||
|
|
||||||
Your current browser is unknown.
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
|||||||
created: 20130826122000000
|
created: 20130826122000000
|
||||||
modified: 20131214094840608
|
modified: 20140807094840608
|
||||||
tags: mechanism
|
tags: mechanism
|
||||||
title: PluginMechanism
|
title: PluginMechanism
|
||||||
type: text/vnd.tiddlywiki
|
type: text/vnd.tiddlywiki
|
||||||
@ -32,6 +32,7 @@ Plugins are stored as tiddlers with the following fields:
|
|||||||
|type |Must be ''application/json'' |
|
|type |Must be ''application/json'' |
|
||||||
|plugin-type |Can be ''plugin'' (default) or ''theme'' |
|
|plugin-type |Can be ''plugin'' (default) or ''theme'' |
|
||||||
|text |JSON encoding of the list of tiddlers comprising the plugin |
|
|text |JSON encoding of the list of tiddlers comprising the plugin |
|
||||||
|
|list |Names of exposed plugin information tiddlers (see below) |
|
||||||
|dependents |List of dependent plugins (currently only implemented for themes) |
|
|dependents |List of dependent plugins (currently only implemented for themes) |
|
||||||
|
|
||||||
! Plugin folders
|
! Plugin folders
|
||||||
@ -50,7 +51,8 @@ The JSON structure for plugin tiddlers is as follows:
|
|||||||
"version": "1.2.3-alpha3",
|
"version": "1.2.3-alpha3",
|
||||||
"core-version": ">=5.0.0",
|
"core-version": ">=5.0.0",
|
||||||
"source": "http://tiddlywiki.com/MyPlugin",
|
"source": "http://tiddlywiki.com/MyPlugin",
|
||||||
"plugin-type": "plugin"
|
"plugin-type": "plugin",
|
||||||
|
"list": "readme license history"
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
@ -84,3 +86,23 @@ Plugins can also be included manually by copying them into the `plugins` subfold
|
|||||||
The wiki object keeps track of all of the currently loaded plugins. If a request for a tiddler isn't in the store then the wiki looks through the cascade of plugins to find the requested tiddler. It is a similar idea to the way that shadow tiddlers are implemented in classic TiddlyWiki.
|
The wiki object keeps track of all of the currently loaded plugins. If a request for a tiddler isn't in the store then the wiki looks through the cascade of plugins to find the requested tiddler. It is a similar idea to the way that shadow tiddlers are implemented in classic TiddlyWiki.
|
||||||
|
|
||||||
In the browser, any constituent tiddlers that are JavaScript modules (ie shadow tiddlers of content type `application/javascript` and possessing the field `module-type`) are executed during startup processing.
|
In the browser, any constituent tiddlers that are JavaScript modules (ie shadow tiddlers of content type `application/javascript` and possessing the field `module-type`) are executed during startup processing.
|
||||||
|
|
||||||
|
! Information Tiddlers for Plugins
|
||||||
|
|
||||||
|
Plugin authors are encouraged to provide special information and documentation tiddlers that TiddlyWiki can include as plugin information tabs in the [[control panel|$:/ControlPanel]].
|
||||||
|
|
||||||
|
Plugins should provide an icon contained in a tiddler with the title formed of `<plugin-name>/icon` (for example, [[$:/core/icon]]).
|
||||||
|
|
||||||
|
Plugins expose the names of the individual information tabs that they wish to display in the `list` field of the plugin tiddler. By convention, some or all of the following should be provided:
|
||||||
|
|
||||||
|
* ''readme'': basic information about the plugin
|
||||||
|
* ''license'': the license under which the plugin is published
|
||||||
|
|
||||||
|
The process used to generate the title of the information tiddler is as follows:
|
||||||
|
|
||||||
|
# `<plugin-name>/<current-language>/<tab-name>` (for example, ''$:/core/en-GB/readme'')
|
||||||
|
# `<plugin-name>/<tab-name>` (for example, ''$:/core/readme'')
|
||||||
|
|
||||||
|
Thus, plugins can provide language-specific versions of each information tiddler.
|
||||||
|
|
||||||
|
Note that information tiddlers should not reference other tiddlers within the plugin. This is because plugins containing themes or languages are dynamically switched in and out as they are selected, and so their information tiddlers may not be available for viewing. The control panel uses the 'subtiddler' attribute of the TranscludeWidget to access these tiddlers, which works independently of the plugin switching mechanism.
|
||||||
|
@ -0,0 +1,11 @@
|
|||||||
|
created: 20140811112343634
|
||||||
|
modified: 20140811114420597
|
||||||
|
tags: message
|
||||||
|
title: WidgetMessage: tw-auto-save-wiki
|
||||||
|
type: text/vnd.tiddlywiki
|
||||||
|
|
||||||
|
The autosave wiki message causes the current saver module to perform a background save if it is required.
|
||||||
|
|
||||||
|
The autosave wiki message should be generated whenever changes are made to the store. For example, the navigator widget generates the autosave wiki message as part of its handling of the [[WidgetMessage: tw-save-tiddler]], [[WidgetMessage: tw-delete-tiddler]] and [[WidgetMessage: tw-perform-import]].
|
||||||
|
|
||||||
|
The autosave wiki message is handled by the TiddlyWiki core SyncMechanism which invokes the current [[SaverModule|SaverModules]]. Not all SaverModules can handle autosaving.
|
@ -0,0 +1,14 @@
|
|||||||
|
created: 20140811112201235
|
||||||
|
modified: 20140811115140378
|
||||||
|
tags: message
|
||||||
|
title: WidgetMessage: tw-download-file
|
||||||
|
type: text/vnd.tiddlywiki
|
||||||
|
|
||||||
|
The download file message causes the current saver module to prompt the user to download the result of parsing a specified template tiddler as a file. It requires the following properties on the `event` object:
|
||||||
|
|
||||||
|
|!Name |!Description |
|
||||||
|
|param |Title of a tiddler to use as a template for the new tiddler |
|
||||||
|
|
||||||
|
The download file message is usually generated with the ButtonWidget.
|
||||||
|
|
||||||
|
The download file message is handled by the TiddlyWiki core SyncMechanism which invokes the current [[SaverModule|SaverModules]].
|
@ -0,0 +1,9 @@
|
|||||||
|
created: 20140811112400855
|
||||||
|
modified: 20140811113627373
|
||||||
|
tags: message
|
||||||
|
title: WidgetMessage: tw-full-screen
|
||||||
|
type: text/vnd.tiddlywiki
|
||||||
|
|
||||||
|
The fullscreen message toggles the "fullscreen" mode of the browser, if it supports it.
|
||||||
|
|
||||||
|
The fullscreen message is handled by the TiddlyWiki core.
|
@ -0,0 +1,10 @@
|
|||||||
|
created: 20140811112445887
|
||||||
|
modified: 20140811113336694
|
||||||
|
tags: message
|
||||||
|
title: WidgetMessage: tw-login
|
||||||
|
type: text/vnd.tiddlywiki
|
||||||
|
|
||||||
|
The login message prompts the user for a username and password and attempts to login to the current serverside host. The tiddler [[$:/status/IsLoggedIn]] reflects the current login status with the values "yes" or "no", and [[$:/status/UserName]] reflects the current username.
|
||||||
|
|
||||||
|
The login message is handled by the TiddlyWiki core SyncMechanism which invokes the current [[SyncAdaptorModule|SyncAdaptorModules]] (typically the ''tiddlywiki/tiddlywebadaptor'' plugin).
|
||||||
|
|
@ -0,0 +1,9 @@
|
|||||||
|
created: 20140811112457311
|
||||||
|
modified: 20140811113344084
|
||||||
|
tags: message
|
||||||
|
title: WidgetMessage: tw-logout
|
||||||
|
type: text/vnd.tiddlywiki
|
||||||
|
|
||||||
|
The logout message attempts to log the user out of the current serverside host. The tiddler [[$:/status/IsLoggedIn]] reflects the current login status with the values "yes" or "no", and [[$:/status/UserName]] reflects the current username.
|
||||||
|
|
||||||
|
The logout message is handled by the TiddlyWiki core SyncMechanism which invokes the current [[SyncAdaptorModule|SyncAdaptorModules]] (typically the ''tiddlywiki/tiddlywebadaptor'' plugin).
|
@ -0,0 +1,12 @@
|
|||||||
|
created: 20140811112133701
|
||||||
|
modified: 20140811120203685
|
||||||
|
tags: message
|
||||||
|
title: WidgetMessage: tw-modal
|
||||||
|
type: text/vnd.tiddlywiki
|
||||||
|
|
||||||
|
The modal message displays a specified tiddler in a modal overlay that dims the main page. It requires the following properties on the `event` object:
|
||||||
|
|
||||||
|
|!Name |!Description |
|
||||||
|
|param |Title of the tiddler to be displayed |
|
||||||
|
|
||||||
|
The modal message is usually generated with the ButtonWidget. The modal message is handled by the TiddlyWiki core.
|
@ -0,0 +1,12 @@
|
|||||||
|
created: 20140811112304772
|
||||||
|
modified: 20140811120248738
|
||||||
|
tags: message
|
||||||
|
title: WidgetMessage: tw-notify
|
||||||
|
type: text/vnd.tiddlywiki
|
||||||
|
|
||||||
|
The notify message briefly displays a specified tiddler as a small alert in the upper right corner of the page. It requires the following properties on the `event` object:
|
||||||
|
|
||||||
|
|!Name |!Description |
|
||||||
|
|param |Title of the tiddler to be displayed |
|
||||||
|
|
||||||
|
The notify message is handled by the TiddlyWiki core.
|
@ -0,0 +1,11 @@
|
|||||||
|
created: 20140811112325641
|
||||||
|
modified: 20140811115149288
|
||||||
|
tags: message
|
||||||
|
title: WidgetMessage: tw-save-wiki
|
||||||
|
type: text/vnd.tiddlywiki
|
||||||
|
|
||||||
|
The save wiki message causes the current saver module to perform a full save operation. The save operation can involve user interaction, unlike the [[WidgetMessage: tw-auto-save-wiki]]/
|
||||||
|
|
||||||
|
The save wiki message is usually generated by the ButtonWidget.
|
||||||
|
|
||||||
|
The save wiki message is handled by the TiddlyWiki core SyncMechanism which invokes the current [[SaverModule|SaverModules]].
|
@ -0,0 +1,9 @@
|
|||||||
|
created: 20140811112435281
|
||||||
|
modified: 20140811113453568
|
||||||
|
tags: message
|
||||||
|
title: WidgetMessage: tw-server-refresh
|
||||||
|
type: text/vnd.tiddlywiki
|
||||||
|
|
||||||
|
The server refresh message attempts to synchronise the latest changes to the current serverside host.
|
||||||
|
|
||||||
|
The server refresh message is handled by the TiddlyWiki core SyncMechanism which invokes the current [[SyncAdaptorModule|SyncAdaptorModules]] (typically the ''tiddlywiki/tiddlywebadaptor'' plugin).
|
@ -1,5 +1,5 @@
|
|||||||
created: 20130825162100000
|
created: 20130825162100000
|
||||||
modified: 20131129094907624
|
modified: 20140814094907624
|
||||||
tags: dev moduletypes
|
tags: dev moduletypes
|
||||||
title: SyncAdaptorModules
|
title: SyncAdaptorModules
|
||||||
type: text/vnd.tiddlywiki
|
type: text/vnd.tiddlywiki
|
||||||
@ -27,12 +27,16 @@ Nothing should be exported if the adaptor detects that it isn't capable of opera
|
|||||||
|
|
||||||
Adaptor modules must handle the following methods.
|
Adaptor modules must handle the following methods.
|
||||||
|
|
||||||
!! `Constructor(syncer)`
|
!! `Constructor(options)`
|
||||||
|
|
||||||
Initialises a new adaptor instance.
|
Initialises a new adaptor instance.
|
||||||
|
|
||||||
|!Parameter |!Description |
|
|!Parameter |!Description |
|
||||||
|syncer |Syncer object that is using this adaptor |
|
|options |See below |
|
||||||
|
|
||||||
|
Options include:
|
||||||
|
|
||||||
|
* ''options.wiki'': reference to wiki to use with this syncadaptor
|
||||||
|
|
||||||
!! `getTiddlerInfo(tiddler)`
|
!! `getTiddlerInfo(tiddler)`
|
||||||
|
|
||||||
@ -91,10 +95,11 @@ Loads a tiddler from the server.
|
|||||||
|title |Title of tiddler to be retrieved |
|
|title |Title of tiddler to be retrieved |
|
||||||
|callback |Callback function invoked with parameter `err,tiddlerFields` |
|
|callback |Callback function invoked with parameter `err,tiddlerFields` |
|
||||||
|
|
||||||
!! `deleteTiddler(title,callback)`
|
!! `deleteTiddler(title,callback,tiddlerInfo)`
|
||||||
|
|
||||||
Delete a tiddler from the server.
|
Delete a tiddler from the server.
|
||||||
|
|
||||||
|!Parameter |!Description |
|
|!Parameter |!Description |
|
||||||
|title |Title of tiddler to be deleted |
|
|title |Title of tiddler to be deleted |
|
||||||
|callback |Callback function invoked with parameter `err` |
|
|callback |Callback function invoked with parameter `err` |
|
||||||
|
|tiddlerInfo |The tiddlerInfo maintained by the syncer for this tiddler |
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
created: 20130823203800000
|
created: 20130823203800000
|
||||||
modified: 20140715081725471
|
modified: 20140809112946299
|
||||||
tags: planning
|
tags: planning
|
||||||
title: RoadMap
|
title: RoadMap
|
||||||
type: text/vnd.tiddlywiki
|
type: text/vnd.tiddlywiki
|
||||||
@ -16,7 +16,7 @@ Some important features were deferred to be added after the beta:
|
|||||||
* Fixing hangovers from TiddlyWikiClassic
|
* Fixing hangovers from TiddlyWikiClassic
|
||||||
* ~TiddlyWiki file format (to avoid illegal attribute names)
|
* ~TiddlyWiki file format (to avoid illegal attribute names)
|
||||||
* Tiddler object format (to provide true polymorphism of field values)
|
* Tiddler object format (to provide true polymorphism of field values)
|
||||||
* Aliases
|
* Aliases (alternative titles for tiddlers)
|
||||||
* Search and replace
|
* Search and replace
|
||||||
* Tiddler renaming
|
* Tiddler renaming
|
||||||
* Rich link tooltips, incorporating a preview
|
* Rich link tooltips, incorporating a preview
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
created: 20130825161400000
|
created: 20130825161400000
|
||||||
modified: 20131203112539560
|
modified: 20140811171026344
|
||||||
tags: howto
|
tags: howto
|
||||||
title: Saving on Android
|
title: Saving on Android
|
||||||
type: text/vnd.tiddlywiki
|
type: text/vnd.tiddlywiki
|
||||||
|
|
||||||
The AndTidWiki app for Android devices makes it possible to edit and save changes to TiddlyWiki5, including working offline without a network connection.
|
The AndTidWiki app for Android devices makes it possible to edit and save changes to TiddlyWiki5, including working offline without a network connection. [[Download it here|https://play.google.com/store/apps/details?id=de.mgsimon.android.andtidwiki]].
|
||||||
|
|
||||||
//Note that AndTidWiki is published independently of TiddlyWiki//
|
//Note that AndTidWiki is published independently of TiddlyWiki//
|
@ -1,10 +1,10 @@
|
|||||||
created: 20131129092604900
|
created: 20131129092604900
|
||||||
modified: 20140226201353048
|
modified: 20140811170321179
|
||||||
tags: howto
|
tags: howto
|
||||||
title: Saving with the HTML5 fallback saver
|
title: Saving with the HTML5 fallback saver
|
||||||
type: text/vnd.tiddlywiki
|
type: text/vnd.tiddlywiki
|
||||||
|
|
||||||
This method of saving changes is clunky but has the advantage of working on almost all desktop browsers, and many mobile browsers.
|
This method of saving changes is clunky because it requires manual intervention for each save. It has the advantage of working on almost all desktop browsers, and many mobile browsers.
|
||||||
|
|
||||||
# [[Download]] an empty TiddlyWiki by clicking this button:
|
# [[Download]] an empty TiddlyWiki by clicking this button:
|
||||||
#> {{$:/editions/tw5.com/snippets/download-empty-button}}
|
#> {{$:/editions/tw5.com/snippets/download-empty-button}}
|
||||||
@ -13,8 +13,8 @@ This method of saving changes is clunky but has the advantage of working on almo
|
|||||||
# Locate the file you just downloaded
|
# Locate the file you just downloaded
|
||||||
#* You may rename it, but be sure to keep the `.html` or `.htm` extension
|
#* You may rename it, but be sure to keep the `.html` or `.htm` extension
|
||||||
# Open the file in your browser
|
# Open the file in your browser
|
||||||
# Try creating a new tiddler using the ''plus'' {{$:/core/images/new-button}} button in the sidebar. Type some content for the tiddler, and click the {{$:/core/images/done-button}} ''tick'' button
|
# Try creating a new tiddler using the ''new tiddler'' {{$:/core/images/new-button}} button in the sidebar. Type some content for the tiddler, and click the {{$:/core/images/done-button}} ''done'' button
|
||||||
# Save your changes by clicking the {{$:/core/images/save-button}} ''download'' button in the sidebar
|
# Save your changes by clicking the {{$:/core/images/save-button}} ''save changes'' button in the sidebar
|
||||||
# Your browser will download a new copy of the wiki incorporating your changes
|
# Your browser will download a new copy of the wiki incorporating your changes
|
||||||
# Locate the newly downloaded file and open it in your browser
|
# Locate the newly downloaded file and open it in your browser
|
||||||
# Verify that your changes have been saved correctly
|
# Verify that your changes have been saved correctly
|
||||||
|
@ -3,5 +3,4 @@ tags: $:/tags/PageControls
|
|||||||
caption: ~GitHub ribbon
|
caption: ~GitHub ribbon
|
||||||
description: ~GitHub ribbon for tw5.com
|
description: ~GitHub ribbon for tw5.com
|
||||||
|
|
||||||
<div class="github-fork-ribbon-wrapper right"><div class="github-fork-ribbon"><a href="https://github.com/Jermolene/TiddlyWiki5" target="_blank">Find me on ~GitHub</a></div>
|
<div class="github-fork-ribbon-wrapper right" style><div class="github-fork-ribbon" style="background-color:#DF4848;"><$link to="ReleaseHistory"><<version>></$link></div></div>
|
||||||
</div>
|
|
6
editions/tw5.com/tiddlers/system/version-link-macro.tid
Normal file
6
editions/tw5.com/tiddlers/system/version-link-macro.tid
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
title: $:/editions/tw5.com/version-link-macro
|
||||||
|
tags: $:/tags/Macro
|
||||||
|
|
||||||
|
\define version-link()
|
||||||
|
[[$(version)$|Release $(version)$]]
|
||||||
|
\end
|
@ -12,7 +12,7 @@ The TiddlerWidget sets the CurrentTiddler that applies for processing its conten
|
|||||||
|
|
||||||
|!Attribute |!Description |
|
|!Attribute |!Description |
|
||||||
|tiddler |The title of the tiddler to become the new CurrentTiddler |
|
|tiddler |The title of the tiddler to become the new CurrentTiddler |
|
||||||
|class |CSS classes to added to the generated elements |
|
|class |CSS classes to be added to the generated elements |
|
||||||
|
|
||||||
! CSS Class Variables
|
! CSS Class Variables
|
||||||
|
|
||||||
|
3
languages/de-AT/CoreReadMe.tid
Normal file
3
languages/de-AT/CoreReadMe.tid
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
title: $:/core/de-AT/readme
|
||||||
|
|
||||||
|
{{$:/core/de-DE/readme}}
|
@ -1,8 +0,0 @@
|
|||||||
title: $:/language/Flag
|
|
||||||
type: image/svg+xml
|
|
||||||
|
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<svg xmlns="http://www.w3.org/2000/svg" width="900" height="600">
|
|
||||||
<rect fill="#ed2939" width="900" height="600"/>
|
|
||||||
<rect fill="#fff" y="200" width="900" height="200"/>
|
|
||||||
</svg>
|
|
8
languages/de-AT/icon.tid
Normal file
8
languages/de-AT/icon.tid
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
title: $:/languages/de-AT/icon
|
||||||
|
type: image/svg+xml
|
||||||
|
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" width="900" height="600" viewBox="0 0 9 6">
|
||||||
|
<rect fill="#ef3340" width="9" height="6"/>
|
||||||
|
<rect fill="#fff" y="2" width="9" height="2"/>
|
||||||
|
</svg>
|
@ -3,8 +3,7 @@
|
|||||||
"name": "de-AT",
|
"name": "de-AT",
|
||||||
"plugin-type": "language",
|
"plugin-type": "language",
|
||||||
"description": "Deutsch (Österreich)",
|
"description": "Deutsch (Österreich)",
|
||||||
"author": "JeremyRuston",
|
"author": "MarioPietsch aka pmario",
|
||||||
"maintainer": "MarioPietsch aka pmario",
|
|
||||||
"core-version": ">=5.0.0",
|
"core-version": ">=5.0.0",
|
||||||
"dependents": ["$:/languages/de-DE"],
|
"dependents": ["$:/languages/de-DE"],
|
||||||
"plugin-priority": 110
|
"plugin-priority": 110
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
"name": "de-CH",
|
"name": "de-CH",
|
||||||
"plugin-type": "language",
|
"plugin-type": "language",
|
||||||
"description": "Deutsch (Schweiz)",
|
"description": "Deutsch (Schweiz)",
|
||||||
"author": "JeremyRuston",
|
"author": "MarioPietsch aka pmario",
|
||||||
"core-version": ">=5.0.0",
|
"core-version": ">=5.0.0",
|
||||||
"dependents": ["$:/languages/de-DE"],
|
"dependents": ["$:/languages/de-DE"],
|
||||||
"plugin-priority": 110
|
"plugin-priority": 110
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
title: $:/language/Buttons/
|
title: $:/language/Buttons/
|
||||||
|
|
||||||
AdvancedSearch/Caption: erweiterte suche
|
AdvancedSearch/Caption: erweiterte suche
|
||||||
AdvancedSearch/Hint: Erweiterte Suche
|
AdvancedSearch/Hint: Erweiterte Suche
|
||||||
Cancel/Caption: abbrechen
|
Cancel/Caption: abbrechen
|
||||||
Cancel/Hint: Tiddler bearbeiten abbrechen
|
Cancel/Hint: Tiddler bearbeiten abbrechen
|
||||||
Clone/Caption: klone
|
Clone/Caption: klone
|
||||||
@ -19,14 +19,21 @@ Delete/Hint: Lösche diesen Tiddler
|
|||||||
Edit/Caption: bearbeiten
|
Edit/Caption: bearbeiten
|
||||||
Edit/Hint: Bearbeite diesen Tiddler
|
Edit/Hint: Bearbeite diesen Tiddler
|
||||||
Encryption/Caption: verschlüsseln
|
Encryption/Caption: verschlüsseln
|
||||||
|
Encryption/Hint: Aktivieren oder löschen des Passworts für dieses Wiki
|
||||||
Encryption/ClearPassword/Caption: lösche Passwort
|
Encryption/ClearPassword/Caption: lösche Passwort
|
||||||
Encryption/ClearPassword/Hint: Lösche das Passwort und speichere ohne Verschlüsselung
|
Encryption/ClearPassword/Hint: Lösche das Passwort und speichere ohne Verschlüsselung
|
||||||
Encryption/SetPassword/Caption: ativiere Passwort
|
Encryption/SetPassword/Caption: ativiere Passwort
|
||||||
Encryption/SetPassword/Hint: Definiert ein Passwort, um dieses Wiki zu verschlüsseln
|
Encryption/SetPassword/Hint: Definiert ein Passwort, um dieses Wiki zu verschlüsseln
|
||||||
|
FullScreen/Caption: vollbild
|
||||||
|
FullScreen/Hint: Aktivieren oder deaktivieren des Vollbild modus
|
||||||
|
Import/Caption: import
|
||||||
|
Import/Hint: Importiere Dateien
|
||||||
Info/Caption: info
|
Info/Caption: info
|
||||||
Info/Hint: Informationen zu diesem Tiddler anzeigen
|
Info/Hint: Informationen zu diesem Tiddler anzeigen
|
||||||
Home/Caption: home
|
Home/Caption: home
|
||||||
Home/Hint: Öffne die "default" Tiddler
|
Home/Hint: Seite neu laden und öffne die standard (default) Tiddler
|
||||||
|
Language/Caption: sprache
|
||||||
|
Language/Hint: Auswahl Dialog für die System Sprache
|
||||||
NewTiddler/Caption: neuer Tiddler
|
NewTiddler/Caption: neuer Tiddler
|
||||||
NewTiddler/Hint: Erstelle einen neuen Tiddler
|
NewTiddler/Hint: Erstelle einen neuen Tiddler
|
||||||
More/Caption: mehr
|
More/Caption: mehr
|
||||||
@ -39,7 +46,13 @@ Save/Caption: speichern
|
|||||||
Save/Hint: Speichere diesen Tiddler
|
Save/Hint: Speichere diesen Tiddler
|
||||||
SaveWiki/Caption: speichere Änderungen
|
SaveWiki/Caption: speichere Änderungen
|
||||||
SaveWiki/Hint: Speichere Änderungen
|
SaveWiki/Hint: Speichere Änderungen
|
||||||
|
StoryView/Caption: story Modus
|
||||||
|
StoryView/Hint: Auswahl des Anzeige Modus für die "Story"
|
||||||
HideSideBar/Caption: Sidebar ausblenden
|
HideSideBar/Caption: Sidebar ausblenden
|
||||||
HideSideBar/Hint: Sidebar ausblenden
|
HideSideBar/Hint: Sidebar ausblenden
|
||||||
ShowSideBar/Caption: Sidebar einblenden
|
ShowSideBar/Caption: Sidebar einblenden
|
||||||
ShowSideBar/Hint: Sidebar eiblenden
|
ShowSideBar/Hint: Sidebar eiblenden
|
||||||
|
TagManager/Caption: tag manager
|
||||||
|
TagManager/Hint: Öffne das "Tag Manager"
|
||||||
|
Theme/Caption: Thema
|
||||||
|
Theme/Hint: Thema auswählen
|
||||||
|
@ -64,9 +64,6 @@ Basics/Title/Prompt: Titel dieses ~TiddlyWikis:
|
|||||||
Basics/Username/Prompt: Benutzer Signatur zum editieren:
|
Basics/Username/Prompt: Benutzer Signatur zum editieren:
|
||||||
Basics/Version/Prompt: ~TiddlyWiki Version:
|
Basics/Version/Prompt: ~TiddlyWiki Version:
|
||||||
Plugins/Caption: Plugins
|
Plugins/Caption: Plugins
|
||||||
Plugins/Fields/Description: Beschreibung
|
|
||||||
Plugins/Fields/Title: Titel
|
|
||||||
Plugins/Fields/Version: Version
|
|
||||||
Plugins/Language/Prompt: Sprachen
|
Plugins/Language/Prompt: Sprachen
|
||||||
Plugins/Plugin/Prompt: Plugins
|
Plugins/Plugin/Prompt: Plugins
|
||||||
Plugins/Theme/Prompt: Themen
|
Plugins/Theme/Prompt: Themen
|
||||||
|
5
languages/de-DE/CoreReadMe.tid
Normal file
5
languages/de-DE/CoreReadMe.tid
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
title: $:/core/de-DE/readme
|
||||||
|
|
||||||
|
<!-- Replace with translation of the readme for the core plugin -->
|
||||||
|
|
||||||
|
{{$:/core/readme}}
|
@ -6,6 +6,7 @@ alert-highlight: Warnung Hervorhebung
|
|||||||
alert-muted-foreground: Warnung gedeckt Vordergrund
|
alert-muted-foreground: Warnung gedeckt Vordergrund
|
||||||
background: Hintergrund Global
|
background: Hintergrund Global
|
||||||
blockquote-bar: Zitat Markierung
|
blockquote-bar: Zitat Markierung
|
||||||
|
dirty-indicator: Speichern nötig - Indikator
|
||||||
code-background: Code Hintergrund
|
code-background: Code Hintergrund
|
||||||
code-border: Code Rahmen
|
code-border: Code Rahmen
|
||||||
code-foreground: Code Vordergrund
|
code-foreground: Code Vordergrund
|
||||||
|
@ -6,6 +6,7 @@ Listing/Import/Caption: Importieren
|
|||||||
Listing/Select/Caption: Auswahl
|
Listing/Select/Caption: Auswahl
|
||||||
Listing/Status/Caption: Status
|
Listing/Status/Caption: Status
|
||||||
Listing/Title/Caption: Titel
|
Listing/Title/Caption: Titel
|
||||||
|
Upgrader/Plugins/Suppressed/Incompatible: Unterdrückte, inkompatible oder veraltete "plugins"
|
||||||
Upgrader/Plugins/Suppressed/Version: Einige "plugins" weden unterdrückt! Importierte plugins: <<incoming>> sind älter als existierende: <<existing>>.
|
Upgrader/Plugins/Suppressed/Version: Einige "plugins" weden unterdrückt! Importierte plugins: <<incoming>> sind älter als existierende: <<existing>>.
|
||||||
Upgrader/Plugins/Upgraded: Aktualisieren der plugins von: <<incoming>> nach: <<upgraded>>
|
Upgrader/Plugins/Upgraded: Aktualisieren der plugins von: <<incoming>> nach: <<upgraded>>
|
||||||
Upgrader/System/Suppressed: Unterdrückte "System Tiddler"
|
Upgrader/System/Suppressed: Unterdrückte "System Tiddler"
|
||||||
|
@ -11,7 +11,6 @@ Recent/Caption: Zuletzt
|
|||||||
Shadows/Caption: Schatten
|
Shadows/Caption: Schatten
|
||||||
System/Caption: System
|
System/Caption: System
|
||||||
Tags/Caption: Tags
|
Tags/Caption: Tags
|
||||||
Tags/TagManager/Caption: Tag Manager
|
|
||||||
Tags/Untagged/Caption: untagged
|
Tags/Untagged/Caption: untagged
|
||||||
Tools/Caption: Tools
|
Tools/Caption: Tools
|
||||||
Types/Caption: Typen
|
Types/Caption: Typen
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
title: $:/language/Flag
|
title: $:/languages/de-DE/icon
|
||||||
type: image/svg+xml
|
type: image/svg+xml
|
||||||
|
|
||||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
@ -3,8 +3,7 @@
|
|||||||
"name": "de-DE",
|
"name": "de-DE",
|
||||||
"plugin-type": "language",
|
"plugin-type": "language",
|
||||||
"description": "Deutsch (Deutschland)",
|
"description": "Deutsch (Deutschland)",
|
||||||
"author": "JeremyRuston",
|
"author": "MarioPietsch aka pmario",
|
||||||
"maintainer": "MarioPietsch aka pmario",
|
|
||||||
"core-version": ">=5.0.0",
|
"core-version": ">=5.0.0",
|
||||||
"plugin-priority": 100
|
"plugin-priority": 100
|
||||||
}
|
}
|
||||||
|
@ -52,6 +52,7 @@ HideSideBar/Caption: cacher la barre latérale
|
|||||||
HideSideBar/Hint: Cacher la barre latérale
|
HideSideBar/Hint: Cacher la barre latérale
|
||||||
ShowSideBar/Caption: afficher la barre latérale
|
ShowSideBar/Caption: afficher la barre latérale
|
||||||
ShowSideBar/Hint: Afficher la barre latérale
|
ShowSideBar/Hint: Afficher la barre latérale
|
||||||
|
TagManager/Caption: gestionnaire de tags
|
||||||
|
TagManager/Hint: Gestionnaire de tags
|
||||||
Theme/Caption: thème
|
Theme/Caption: thème
|
||||||
Theme/Hint: Choix du thème pour l'affichage
|
Theme/Hint: Choix du thème pour l'affichage
|
||||||
|
|
||||||
|
@ -64,9 +64,6 @@ Basics/Title/Prompt: Titre de ce ~TiddlyWiki
|
|||||||
Basics/Username/Prompt: Signer les modifications avec ce nom d'utilisateur
|
Basics/Username/Prompt: Signer les modifications avec ce nom d'utilisateur
|
||||||
Basics/Version/Prompt: Numéro de version :
|
Basics/Version/Prompt: Numéro de version :
|
||||||
Plugins/Caption: Plugins
|
Plugins/Caption: Plugins
|
||||||
Plugins/Fields/Description: Description
|
|
||||||
Plugins/Fields/Title: Titre
|
|
||||||
Plugins/Fields/Version: Version
|
|
||||||
Plugins/Language/Prompt: Langues
|
Plugins/Language/Prompt: Langues
|
||||||
Plugins/Plugin/Prompt: Plugins
|
Plugins/Plugin/Prompt: Plugins
|
||||||
Plugins/Theme/Prompt: Thèmes
|
Plugins/Theme/Prompt: Thèmes
|
||||||
|
5
languages/fr-FR/CoreReadMe.tid
Normal file
5
languages/fr-FR/CoreReadMe.tid
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
title: $:/core/fr-FR/readme
|
||||||
|
|
||||||
|
<!-- Replace with translation of the readme for the core plugin -->
|
||||||
|
|
||||||
|
{{$:/core/readme}}
|
@ -11,7 +11,6 @@ Recent/Caption: Récents
|
|||||||
Shadows/Caption: Shadows
|
Shadows/Caption: Shadows
|
||||||
System/Caption: Système
|
System/Caption: Système
|
||||||
Tags/Caption: Tags
|
Tags/Caption: Tags
|
||||||
Tags/TagManager/Caption: Gestionnaire de tags
|
|
||||||
Tags/Untagged/Caption: sans étiquette
|
Tags/Untagged/Caption: sans étiquette
|
||||||
Tools/Caption: Outils
|
Tools/Caption: Outils
|
||||||
Types/Caption: Types
|
Types/Caption: Types
|
||||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user