TiddlyWiki Version: 5.1.12
Öffnen der Standard-Tiddler
Alle Tiddler schließen
Ausblenden der Textbereiche aller Tiddler
Einblenden der Textbereiche aller Tiddler
Die Adressleiste des Browsers enthält einen Link zu allen offenen Tiddlern in dieser Story
Erstelle einen neuen Tiddler
Erstelle einen neuen Journal-Tiddler
Erstelle ein neues Bild
Alle Tiddler exportieren
Öffne das Control-Panel
Erweiterte Suche
Öffne den Tag-Manager
Auswahldialog für die Systemsprache
Wähle eine Farbpalette
Theme auswählen
Auswahl des Anzeigemodus für die Story
Aktivieren oder löschen des Passworts für dieses Wiki
Aktivieren oder Deaktivieren des Vollbild-Modus
Das Wiki speichern
Die Seite wird neu in den Browser geladen
Weitere Aktionen
ARCHIV | CHRONIK | KORPORATIVES | INFORMATIVES | MULTIMEDIALES | SONSTIGES | |
---|---|---|---|---|---|---|
News | Zeitleiste | Ballett | Pressearchiv | Foto | Schlager | |
Bühnenfastnacht | Tanzgarde | Vereinsfahne | Video | Brunnen | ||
Strassenfastnacht | Minis | Prinzen | Sound | Karneval Info's | ||
Kinderfastnacht | Männerballett | Orden | Links | |||
Feste & Party's | Brassband | Vorstand | ||||
Sonstiges | Ehrengarde | Satzung | ||||
Chronik | 11'er Rat | Publikationen | ||||
Kleiner Rat | ||||||
Konfetti | Der Frohsinn | |||||
Sänger | ||||||
Vortragende | ||||||
Ehemalige Korp. | Berichte |
Archiv | |||||||||
---|---|---|---|---|---|---|---|---|---|
Chronik | |||||||||
Korporatives | |||||||||
Informatives | Pressearchiv | Vereinsfahne | Prinzen | Orden | Vorstand | Satzung | Publikationen | Der Frohsinn | |
Multimediales | |||||||||
Sonstiges | Schlager | Brunnen | Karneval Info's | Links |
Archiv |
---|
|[[Fastnacht von A-Z]]| Seit dem 7. Jahrhundert beginnt am Aschermittwoch die Fastenzeit. An diesem Tag bekamen die Büßer Asche aufs Haupt gestreut. Seit dem Ende des 11. Jahrhunderts ließen sich hauptsächlich die Priester geweihte Asche zum Zeichen des Schuldbewusstseins aufs Haupt streuen. In vielen Kulturen gilt Asche als Symbol der Vergänglichkeit. Im Christentum wurde sie zum Zeichen der Buße, soll aber auch gleichzeitig an die Vergänglichkeit des Menschen erinnern. Der Brauch das Haupt mit Asche zu bestreuen wurde später in den Ritus des Aschenkreuzes verwandelt. Der Sinn des Aschenkreuzes ist es, dass der Mensch sich nach all dem ausgelassenen Feiern wieder auf sich selbst besinnen soll, denn mit der Fastenzeit beginnt die Zeit der Besinnung und der Vorbereitung auf das Osterfest. Die Katholischen Künstler in Köln wie Maler, Bildhauer, Schriftsteller, Architekten usw. begehen am Aschermittwoch in St. Kunibert den „Aschermittwoch der Künstler“ mit einem Gottesdienst, den traditionell der Erzbischof zelebriert. Die Kölner Karnevalsgesellschaften schließen am Aschermittwoch die Session mit einem Fischessen ab. Hier lässt man bei einem gemeinsamen Kehraus die vergangenen Veranstaltungen noch einmal Revue passieren. Manche Gesellschaften begraben noch einmal intern den Nubbel, und es wird auch noch mal wehmütig, weil nun alles vorbei ist, ein Karnevalslied gesungen. Danach beginnen die Unentwegten schon wieder Pläne für die neue Session zu schmieden, während die anderen nur auf den anschließenden Erholungsurlaub vom Karneval warten. Viele Gesellschaften sind dazu übergegangen, das Fischessen auf das Wochenende zu verlegen, damit die Mitglieder sich erst einmal ausschlafen können, denn abgekämpft ist jeder am Aschermittwoch von den „Strapazen“ der Session. Quelle: http://www.karneval.de/Aschermittwoch.aspx
|[[Fastnacht von A-Z]]| __von Thomas Sterzel__ 2013 Weiberfassenacht 07.02.2013 Fassenachtssonntag 10.02.2013 Rosenmontag 11.02.2013 Fassenachtsdienstag 12.02.2013 Der Karneval 2014 wird vom Donnerstag, den 27. Februar bis Dienstag, den 4. März gefeiert. Aber wie werden die Karneval-Termine eigentlich berechnet? Das Karnevalsdatum berechnen Der Zeitpunkt des Karnevals ist abhängig vom Datum an dem Ostern gefeiert wird. Ab Aschermittwoch fasten Christen traditionell 40 Tage lang. Allerdings sind Sonntage nicht mit eingerechnet, sodass es insgesamt auf 46 Tage Fasten ab Aschermittwoch hinausläuft. Dies bedeutet, dass der Karnevalssonntag auf den siebten Sonntag vor Ostern fällt. Ostern wird frühestens am 22. März und spätestens am 25. April gefeiert, sodass Fasching frühestens auf den 1. Februar und spätestens auf den 9. März fällt. Karneval 2014 und später Viele Menschen wollen rechtzeitig die Termine für den Fasching 2014 erfahren, um besser vorbereitet zu sein. Für diejenigen, die bereits wissen wollen, wann der Karneval in den kommenden Jahren stattfinden wird, geben wir hier einen Überblick vom Karneval 2014 bis einschließlich Karneval 2020. Die Daten umfassen die offiziellen Karnevalstage von Donnerstag (Weiberfastnacht) bis Dienstag (Veilchendienstag). Karneval 2014: 27. Februar - 4. März Karneval 2015: 12. Februar - 17. Februar Karneval 2016: 04. Februar - 9. Februar Karneval 2017: 23. Februar - 28. Februar Karneval 2018: 08. Februar - 13. Februar Karneval 2019: 28. Februar - 5. März Karneval 2020: 20. Februar - 25. Februar ---- ''Wie berechnet sich Karneval?'' Der Aschermittwoch und damit alle Karnevalsfeiertage sind unregelmäßige/bewegliche Feiertage. Sie fallen selten auf ein gleiches Datum, wie zum Beispiel der 11.11. Grundlage für alle Berechnungen ist der Ostersonntag, wovon alle weiteren unregelmäßigen Feiertage abgeleitet werden: * Aschermittwoch ist 46 Tage vor Ostern * Pfingsten ist 49 Tage nach Ostern * Christi Himmelfahrt ist 10 Tage vor Pfingsten * Fronleichnam ist 11 Tage nach Pfingsten Doch wann ist Ostersonntag? Kurz gesagt: Am 1. Sonntag nach dem 1. Vollmond nach dem Frühlingsbeginn. Carl Friedrich Gauß (1777-1855) entwickelte im Jahre 1800 eine "Osterformel", um den Ostersonntag vereinfacht berechnen zu können. Also auch Karneval richtet sich nach dem Mond. Quelle: www.karneval.de ---- Die Karnevalszeit hat traditionell feste Bezugspunkte. Die Eröffnung der Session zum närrischen Termin am 11.11. um 11.11 Uhr ist eine Erfindung des 19. Jahrhunderts. Der Tag gibt einen ersten Ausblick: Prinzenpaar oder Dreigestirn sowie das Motto werden vorgestellt. Der Tag ist ein karnevalistischer Appetizer - nicht mehr und nicht weniger. Der eigentliche Karneval im Rheinland, und zwar zuerst der Sitzungskarneval und die Maskenbälle anderswo beginnen mit dem Dreikönigstag, dem 6. Januar. Dieser Termin knüpft an das alte Bohnenfest an, das durch den Königskuchen am Dreikönigstag ausgelöst wurde. Wer die Bohne im Kuchen fand, wurde Bohnenkönig und musste ein Maskenfest geben. Übrigens war dies ein soziales Fest, weil die Herrschaften, die feierten, auch der Dienerschaft ein Bohnefest ausrichteten; dieses Fest hieß „schwarzer Bohnenkönig”. Das Bohnenfest war im Jahreslauf die erste karnevalistische Feier, der seit der Wiederbelebung des Karnevals in der Romantik des 19. Jahrhunderts nun die weiteren Feste folgten. Fastnacht, Fasching oder Karneval sind seit dem 12. Jahrhundert auf die Zeit zwischen Dreikönige und Aschermittwoch eingegrenzt. Warum? Weil Fastnacht - also die Nacht vor dem Fastenbeginn - ein Schwellenfest ist und am Vorabend des Fastenaufktakts am Aschermittwoch entstand und sich dann ausweitete: Die „drei tollen Tage”, die wir noch in Fastnachtliedern besingen, sind ursprünglich der Donnerstag vor dem Karnevalsonntag, der Sonntag und der Dienstag. Als sich nach 1823 der „Rosenmontag” mit dem Straßenkarneval und dem Rosenmontagszug durchsetzten, lief dieser Tag dem „Veilchendienstag” den Rang ab. Der Termin des Aschermittwochs ist kein fester Tag, sondern ein „beweglicher”, variabler Termin. Er errechnet sich von Ostern her. Nach jüdischer Tradition wird am 14. Nisan (die quarta decima) Passah gefeiert, weshalb die Urchristen dies der Tag des Osterfestes war, ohne Rücksicht darauf, ob dieser Tag auf einen Sonntag fiel. Im Westen dagegen bildete sich der erste Sonntag nach dem Frühlingsvollmond als Ostertermin heraus, der schließlich durch das Konzil von Niccäa 325 festgeschrieben wurde. Das Osterfest kann demnach auf einen Termin zwischen dem 22. März und 25. April (Ostergrenze) fallen. Im christlichen Festkalender geht die österliche Fastenzeit (Quadragesima) dem Osterfest voran. Ostern ist deshalb ein beweglicher Festtermin. In Folge ist die Fastenzeit auch „beweglich”. In Bezug auf das Fasten Jesu in der Wüste (Mt 4, 2) legte die Kirche die Länge der Fastenzeit auf 40 Tage und Nächte fest. Die in 40 Einheiten zu teilende Zeitspanne bezeichnet die erdzugewandte Vielfalt und kommt in der Bibel mehrfach vor: 40 Jahre wandern die Israeliten durch die Wüste (Ex 16,35), 40 Tage begegnet Moses Gott auf dem Sinai (Ex 24,18), 40 Tage wandert Elias zum Berg Horeb (1 Kön 19,8), 40 Tage fastet Jesus in der Wüste (Mt 4,2; Lk 4,2) und 40 Tage nach der Auferstehung (= Ostern) feiert die Kirche Christi Himmelfahrt (Apg 1,3). Der Beginn der Fastenzeit liegt auf einem Mittwoch und das Ende der Fastnachtszeit auf dem Dienstag nach dem 6. Sonntag vor Ostern (Invocabit). Als die Synode von Benevent 1091 die Sonntage in der Fastenzeit als Gedächtnistage der Auferstehung Jesu vom Fasten ausnahm, rückte deshalb der Beginn der Fastenzeit um 6 (Wochen-) Tage vor. Die Fastnacht endet seitdem am Dienstag nach dem 7. Sonntag vor Ostern (Estomihi) und die Fastenzeit beginnt mit dem folgenden Mittwoch, dem Aschermittwoch. Jene, die ihre Fastnacht nach der alten Fastenordnung vor der Regelung in Benevent (1091) feiern, begehen die Alte Fastnacht (auch: Bauernfastnacht), die immer in die geltende Fastenzeit fällt. Zum Unterschied von der Alten Fastnacht wurde der der neuen Fastenordnung entsprechende neue Fastnachtstermin Herrenfastnacht genannt. Die Fastenzeit gilt als gebundene Zeit, denn in dieser Zeit waren die Christen an Verpflichtungen gebunden: Die Pflicht zum Fasten, d.h. zum Verzicht auf Fleisch, Milchprodukte (= Laktizinien) und Eier, Mitfeier der Karwoche und der österlichen Gottesdienste, Teilnahme an der Osterbeichte. Fastnacht, Fasching oder Karneval haben vor dem Fastenbeginn nicht nur die Funktion des Dampfablassens, des „noch einmal auf die Pauke hauen”. Mit dem Aschermittwoch beginnt die Kirche den Weg durch Leid und Tod zur Auferstehung, zum himmlischen Jerusalem, Ostern. Dieser „Zeit des Geistes” wurde die „Zeit des Fleisches” vorangestellt, in der gespielt wurde, wie man falsch lebt: als Gottesleugner ein Narr, in der Rolle des Teufels als Gottesfeind, weltzugewandt und verloren in Sinneslust. Fastnacht war ein Spiel, das Gespielte keine Realität, sondern letztlich Abschreckung. Die Fastnacht wird nicht vom ökonomischen Bedarf der Fastnachtvermarkter bestimmt, - Gott sei Dank. Fastnacht und ihre Zeit waren und sind abhängig von Ostern und der Ostern vorausgehenden Fastenzeit. Der Sinn der Fastnacht erschließt sich nur von der Fastenzeit her. Und eigentlich dürfte nur der Fastnacht feiern, der auch anschließend fastet und sich auf Ostern vorbereitet. Ein seltsamer Narr, wer in der Fastenzeit noch närrisch sein will. Quelle: © Prof. Dr. theol. Manfred ~Becker-Huberti, Köln www.religioeses-brauchtum.de/fruehjahr/fastnacht_1.html
|[[Fastnacht von A-Z]]| Die Farben der Mainzer Fastnacht sind rot, weiß, blau und gelb, ursprünglich in ganz beliebiger Reihenfolge, auch paarig oder einzeln verwendet. Die in den letzten Jahrzehnten übliche Anordnung – wie genannt – führte zu spekulativen Deutungsversuchen (z. B. „umgedrehte“ französische Trikolore usw.), welche aber weder durch irgendeinen Nachweis belegt noch mit den zeitgeschichtlichen Zusammenhängen zu vereinbaren sind. Aus den Gründungstagen des organisierten Mainzer Karnevals ab 1838 ist in zahlreichen zeitgenössischen Publikationen und Bildern Herkunft sowie Bedeutung der Farben eindeutig nachgewiesen: sie waren dem damals als Symbol der Narrheit geltenden "Hanswurst" zugeordnet, dienten als Sinnbild und Dekor. Der „Hanswurst“ ist im Laufe der Zeit verschwunden, seine Farben sind geblieben. Quelle: http://de.wikipedia.org/wiki/Mainzer_Fastnacht !!Weitere Quellen http://mainzer-fastnachtsfarben.de.to<br> http://www.farbimpulse.de/Narretei-in-vier-Farben.411.0.html<br> http://www.swr.de/fastnacht/lexikon/fastnachtsfarben-mainz/-/id=2675170/nid=2675170/did=2714358/xofnbi/index.html<br>
|[[Fastnacht von A-Z]]| Fasching oder Karneval? Wo die fünfte Jahreszeit wie genannt wird Fasching oder Karneval? Sich verkleiden und ausgelassen feiern. Das geht am besten in der fünften Jahreszeit, der närrischen Saison. Doch wie wird diese Zeit des Jahres korrekt bezeichnet beziehungsweise in welchen Gebieten unseres Landes ist welcher Ausdruck verbreitet und warum? FOCUS Online klärt auf, wo man was feiert. Die fünfte Jahreszeit gehört für viele Menschen zum Höhepunkt des Jahres. Denn dann steht ausgelassenes Feiern ganz oben auf der Tagesordnung. Was dabei nicht fehlen darf, sind aufwendige oder lustige Kostüme, mit denen Sie sich unter das feiernde Volk mischen – sei es zum großen Umzug mit prunkvollen Wagen und mit musikalischer Begleitung oder zur humoristischen Sitzung in großer Runde. Auch in den Kneipen und Festsälen ist dann ein buntes Outfit das A und O. Doch neben all diesen Gemeinsamkeiten gibt es auch viele Unterschiede. Ein entscheidender ist die Bezeichnung des feierlichen Anlasses – während die einen vom Karneval sprechen, gehen die anderen zum Fasching. Stellt sich also die Frage Fasching oder Karneval? Hier ist der Karneval zu Hause Der Karneval wird vor allem im rheinischen Raum gefeiert. Aber auch die Berliner und die Einwohner aus dem Ruhrgebiet sprechen vom Karneval. Echte Hochburgen der Feierlichkeiten sind die Städte Köln und Düsseldorf. In Aachen und Bonn geht es ebenfalls bunt zu. Seit Anfang des 19. Jahrhunderts nutzen die Jecken die Zeit ab dem 11.11. um 11:11 Uhr dafür, ihre Heimat zu feiern und den Machthabern mit lustigen Kommentaren zur aktuellen Situation auf die Finger zu klopfen. Warum die Zahl 11 eine so besondere Stellung im Karnevalstreiben einnimmt? Die Nummer stand im Mittelalter für Narretei und Jux – und im Christentum für die Sünde. Der Begriff „Karneval“ ist in Deutschland ungefähr seit Ende des 17. Jahrhunderts bekannt. So wurde er das erste Mal im Jahr 1728 in der Region am Rhein verwendet. Dabei ist diese Bezeichnung sehr wahrscheinlich auf den lateinischen Ausdruck carne levare zurückzuführen. Dieser bedeutet so viel wie „Fleisch wegnehmen“ und ist ein Verweis auf die Fastenzeit, die an das närrische Treiben anschließt. Die größten Karnevalsfeste des Landes Zu den größten Volksfesten in Deutschland zählt ganz ohne Zweifel der Kölner Karneval. So begehen nicht nur die Einwohner der rheinischen Metropole das Fest unter dem Dom, auch viele Touristen werden von dem Großevent angezogen. Im Kölner Raum ist neben der Bezeichnung Karneval auch der Ausdruck Fastelovend gebräuchlich. Nach dem Einläuten der Karnevalszeit am 11. November ist der Februar der Höhepunkt der Karnevalsvertreter. An Weiberfastnacht, dem beliebten Karnevalsdonnerstag, zieht es die Jecken vor allem in die Kneipen der Stadt und am Samstag finden dann die sogenannten Geisterzüge zu abendlicher Stunde statt. Der Höhepunkt im Kölner Karneval ist unangefochten der prunkvolle Rosenmontagsumzug mit zahlreichen Mottowagen. Ein letztes Mal wird dann am Veilchendienstag gefeiert, bevor der Aschermittwoch das Ende der Saison einläutet. In diesen Regionen feiern die Einwohner Fasching In Bayern, Österreich und Sachsen hat sich der Ausdruck Fasching etabliert. Auch hier ist das Wort auf den Beginn der Fastenzeit zurückzuführen: So leitet es sich vom sogenannten Fastenschank ab, der letzten Runde alkoholischer Getränke vor der Zeit des Fastens. Der größte Umzug im Fasching findet Jahr für Jahr in Würzburg statt und zu den bekanntesten Festen gehört auch der Villacher Fasching in Kärnten, Österreich, der erstmals im Jahr 1867 erwähnt wurde. Beim Villacher Fasching bildet der Umzug am Faschingssamstag den Höhepunkt der Saison. An diesem Tag ziehen die Villacher Narren zusammen mit verkleideten Gästen aus ganz Europa durch die Innenstadt, bevor genau wie beim Karneval auch beim Fasching die Feierlichkeiten mit dem Aschermittwoch beendet sind. Wo man was feiert – Karneval auf der ganzen Welt Außerdem wird nicht nur in Deutschland Karneval gefeiert, beispielsweise ist auch in Südamerika das bunte Treiben weit verbreitet. Berühmt ist vor allem der Karneval in Rio und in den USA feiert man Mardi Gras vor allem in New Orleans. Die Kanadier begehen den Karneval von Quebec.
|[[Fastnacht von A-Z]]| Die Geschichte der 11 als Narrenzahl von Bertl Hanak Ganz allgemein gilt sie als närrische Zahl! Mit ihr beginnt die Fastnachtszeit alljährlich am 11.11. um 11:11 Uhr und im Rheinland erwacht der Hoppeditz als Garant für Frohsinn und Freude im Karneval. Bei uns gibt es zwar keinen Elferrat, aber bei vielen unserer befreundeten Gesellschaften sitzt dieses Gremium dekorativ auf der Bühne und beobachtet unter der Leitung des moderierenden Präsidenten den Programmablauf der Sitzungen. Bei uns schafft es unser Präsident Wilfried Schmitz ganz alleine, mit Witz und Humor durch das Programm zu führen. Meistens beginnen auch unsere Veranstaltungen 11 Minuten nach einer vollen Stunde und es stellt sich die Frage, was es mit dieser 11 auf sich hat. Irgendwie hängt vielleicht alles mit der christlichen Religion zusammen. Schon im Mittelalter galten alle Menschen als Außenseiter, die sich nicht an die 10 Gebote hielten. Die Zahl 11 galt als Zahl der Sünde und der Maßlosigkeit. Etwas davon hat auch unser Karneval, obwohl gerade wir von „ALLE MANN AN BORD“ ein Musterbeispiel an Zurückhaltung und Biederkeit darstellen. (Wer’s glaubt, wird selig)! Die 11 als „Schnapszahl“ gilt natürlich auch bei uns uneingeschränkt. Anfang des 19. Jahrhunderts gab es auch für die Fastnacht am Rhein einen Neuanfang und die 11 sollte die Gleichheit der Menschen unter der Narrenkappe darstellen. Die französische Revolution hat ihre Spuren hinterlassen und so entwickelten sich aus den diversen Uniformen des Militärs der damaligen Zeit unsere heutigen Uniformen der Korpsgesellschaften. Vielleicht trugen aber auch die Parolen der französischen Revolution dazu bei, die 11 in die Narretei einzubinden. „Egalitè“ (Gleichheit), „Libertè“ (Freiheit) und „Fraternitè“ (Brüderlichkeit). Die Anfangsbuchstaben dieser Parolen, hintereinander geschrieben und gelesen, ergeben das Wort ELF. Am 11.11. ist nicht nur Karnevalsbeginn, sondern auch St. Martin und frührer begann danach das 40-tägige Weihnachtsfasten. Von da an sind 40 Tage bis Maria Lichtmess am 2. Februar und dies wiederun ist der früheste Termin für den Veilchendienstag. Ostern wiederum ist 40 Tage nach Fastnacht und 40 Tage später ist Christi Himmelfahrt. Also auch hier zeigt sich ein steter Rhythmus dem wir entnehmen können, dass Religion und Karneval irgendwie verknüpft sind. Sicherlich gibt es noch weit mehr zum Karneval, Fastnacht, Fasching, oder wie immer man die „fünfte Jahreszeit“ nennt, zu berichten. Quelle: Die Bordfunker/Köln
|[[Fastnacht von A-Z]]| Jetzt kann man es in Köln und im restlichen Rheinland wieder hören, wenn sie schwankend auf den Stühlen stehen und - mit Tränen in den Augen - trunken vor betörender Heimatliebe singen: „Denn wenn et Trömmelche jeiht, dann stonn mer all parat un mer trecke durch die Stadt.” Die fünfte Jahreszeit ist seit Dreikönige angebrochen. Wir befinden uns in der mehr oder minder langen und äußerst anstrengenden Phase des Sitzungskarnevals und singen uns warm für den Straßenkarneval an den tollen Tagen. Aber, vielfach von vielen überhört, klingt auch die Religion, hier wohl nur „die wahre Religion” wie der Kabarettist Konrad Beikircher richtig zu bemerken pflegt, durch: „Jo, wenn die Jecke widder durch die Stroße trecke, klingen die jecke Tön bes en d’r Himmel ren. Dann säht d’r Petrus aan d’r Himmelspooz: Chef, hürens, ich gläuv die fieren Fastelovend am Rhing.” Das wäre in der Tat ein Ding, wenn es im Rheinland Brauchtum ganz ohne den lieben „Jott” gäbe. Das wäre doch noch schöner, wenn der Himmel vom Karneval in Köln keine Kenntnis nähme! Denn das bezweifelt im Rheinland keiner: Auch im Himmel wird gefeiert: Man singt: „Un d’r Herrgott hät sing Freud”, denn „Em Himmel ess d’r Düvel loss, wesst ehr, wat dat bedrück? Do feeren se hück Fastelovend.” Wer solche Zeilen für frivol hält, ist bloß nicht richtig informiert. Schon auf Erden betete der jetzt heilige Schatzkanzler Sir Thomas More: „Herr, schenke mir Sinn für Humor, gib mir die Gnade, einen Scherz zu verstehen, damit ich ein wenig Glück kenne im Leben und anderen davon mitteile.” Dies konnte er damals beten, als er seinen Kopf noch zwischen den Schultern trug. Aber als ihm der Kopf abgeschlagen wurde, entstand damit die Voraussetzung, zu einem heiligen Martyrer zu werden - und zu einem Botschafter des Humors im Himmel. Die Kölner Nonnen, die um 1500 sangen: „It is vur eynen vastavend, kinder nu gait an” kamen in der nächsten Zeile sofort ernüchternd zur Sache: „Laist uns Gode dyenen, om uns sunden weynen.” Dieses „Karnevalslied” verdeutlicht: Ein bisschen Spaß darf sein - aber bitte ohne Sünde! Überhaupt. Die „kölsche Tön” unserer Tage haben keine lange Vorgeschichte. Zwar glauben Rheinländer ernsthaft, Gegröle und Lärm seien wie die Musik und der Gesang den rheinischen Kindern nahezu „eingeboren” - als Mittel gegen böse Mächte, zur Freude von Gott und Geistlichkeit, gegen Einsamkeit und als Transmissionsriemen für fröhliche Geselligkeit. Aber die Fastnachtslieder früher Zeiten waren keineswegs so närrisch, dass sie uns heute noch ansprächen. Zur Franzosenzeit etwa waren sie bloß ein bisschen versteckt aufmüpfig, wenn man sich im Karnevalslied über die Besatzer lustig machte. Die romantische ~Reform-Fastnacht 1823 unter preußischer Aufsicht brachte auch bloß steifschwülstige Töne hervor von der fragwürdigen Qualität eines „Dem neuen Regimente schließt heut euch jubelnd an.” Selbst die karnevalistische ~Mega-Schmonzette „Der treue Husar” von 1831 hat mit dem rheinischen Leben eines Christenmenschen nichts zu tun: Das Lied stammt aus Österreich und - falls es lustig sein sollte - dann lediglich wegen der Behauptung, ein Husar sei treu gewesen. Erfolg hatte es nach der 1871er Reichsgründung, als alles Militärische zum Hit wurde. Bis zu Willi Ostermann florierte bloß Heimeliges nach dem tiefgeistigen Motto „Blotwoosch, Kölsch un e lecker Mädche”. Ab 1907 war Ostermann der erste, der zeitgenössische Musikformen zur Gestaltung von Karnevalsliedern einsetzte, liebevoll kölsche Szenarien glossierte - bis er unter den Nazis vorsichtig die karnevalistische Ironie hinter brauner Gesinnungstreue in Deckung brachte. Karl Berbuer gelang es aber mit seinem „Heidewitzka, Herr Kapitän”, das in den 30er Jahren zu einem heimlichen Renner wurde, den zeitgenössischen „Heil Hitler”-Gruß zu karikieren. Die Nachkriegskarnevalisten nahmen dann trotzig die alte Tradition wieder auf, sangen sich als „Eingeborene von Trizonesien” Mut an und bekämpften damit eifrig ihre Zukunftsangst. Neue Töne brachten aber erst seit den 70ern die Bläck Fööss und ihre Nachfolger. „So wie im vorigen Jahrhundert neueste Trends wie die Polka aufgesogen wurden, so wie Berbuer in den 20er Jahren den Charlston einbaute oder nach dem Krieg der Jazz stibitzt wurde, so haben wir das mit dem Pop versucht,” so Hartmut Prieß von den Bläck Fööss. Und dann „jing et loss.” Forderungen christlicher Ethik finden sich in vielen Karnevalsliedern verwirklicht. Der Mainzerischen „Heile, heile Gänschen”-Philosophie, die - so scheint es - nicht aus den Kinderschuhen heraus gekommen ist, setzen die Kölner entgegen, wie Erwachsene einander anzunehmen haben: „Un dann han sen en d’r Ärm jenomme und alles wor wider jot.” Und - man glaubt es nicht - feinfühlig sind die rheinischen Narren am unteren Rhein auch noch dabei. Sie wollen nicht nur Freude verbreiten, sondern achten genau darauf, woran jemand Freude hat: „Et Schmitze Bill”, „die hät nit viel, es nit besonders rich, un hätt noch lang nit jeden Middag Fleisch o’m Desch. Nur ein Deil jit es, wo se Freud’ dran hät, dat sind de Blömcher op ihrem Fensterbrett. Mer schenke der Ahl e paar Blömcher für ihr Fensterbrett.” Und das christliche Postulat „Was du dem Geringsten ...” übersetzen Narren mit: „Drink doch eine met, stell dich nit esu ahn! Du steihs he de janze Zick eröm. Häs de och kei Jeld, dat es janz ejal. Drenk doch met un kümmer dich nit dröm!” Nächstenliebe, dies beweist dieser Fall, kann eben auch Spaß machen und angenehm die Kehle runter laufen. Und bei dieser Sankt-Martins-Haltung des Teilens schließen Kölner Fremde nicht aus: „Minsche wie mir”, singen sie und meinen „Willi” und „Ali”, „sin nit jän allein. Rütsch doch jet nöher, wie Fründe dat maache.” Heimatverbundene Narretei bedarf Identifikationsobjekte. 1948, als Köln in Schutt und Asche lag, da klang es: „Am Dom zo Kölle, zo Kölle am Rhing, doh klinge de Glocke su prächtig und fing. Se sun uns sage, wat all mer gehatt, et gov doch op Äde kein schönere Stadt.” Das Memento der Kölner Glocken erinnert hier an eine verloren geglaubte Vergangenheit. Als die Zeiten wieder schöner wurden, blieb der Kölner Dom als Synonym kölscher Heimatverbundenheit erhalten: „Dä Dom, dä es dat Schönste op d’r Welt!” singt man und fügt - sich in Unbescheidenheit nur wenig zurückhaltend - an: „Dat Hätz vun d’r Welt, jo dat es Kölle.” Und großzügig ist der Kölner halt auch, denn: „Mer losse d’r Dom en Kölle, denn do jehöhht hä hin. Wat sull dä dann woanders, dat hätt doch keine Sinn.” Wäre es anders, hätte man in der Ferne kein Bild für die Heimatstadt in der Ferne. Zeilen wie die folgenden wären nicht mehr möglich: Ich „un ming Fründe”, „die stonn op Kölle”. „Un muss ens einer fott, Jott, wä weiß schon wohin, ja dann blieht d’r Dom janz deef em Hätze dren.” Was leiden sie, die Kölner in der Ferne: „Wenn ich nur drei Daach lang d’r Dom nit sin, jo, dann lauf ich wie Falschjelg eröm, met nem Jeseech wie drei Daach Rän.” Nichts, aber auch gar nichts hält einen Kölner offensichtlich fest, wenn er sich dem Heimweh ergibt: ”Wann ich su an ming Heimat denke und sin d’r Dom su vör mir ston, möch ich direk op heim an schwenke, ich möch zo Foß noh Kölle gon.” Wen wundert es, wenn rheinische Frohnaturen, überwältigt von der Schönheit ihres Domes und ihrer Stadt pars pro toto schließen: „Gott, die Welt ist wirklich schön!” Heinrich Böll (1917-1985), zeitlebens dem Karneval in herzlicher Hassliebe in Distanz verbunden, bemerkte: „Und doch gab es eine unsichtbare Grenze, die in Gegenwart eines Kindes niemand verletzt hätte; auch im Karneval ... wird diese Grenze nie verletzt; verletzt wird sie nur da, wo man etwas so vollkommen Unkölsches wie Fasching und Karneval verwechselt; Karneval ist vulgär, mit aller Größe und allem Schrecken des Vulgären, aber nie frivol. Fasching ist eine Erfindung der Bohème, der Karneval stammt aus dem Volk, er ist klassenlos, so wie eine ansteckende Krankheit keine Klassenunterschiede kennt. Den Fasching bemerkt man nicht im Leben einer Stadt; in Köln den Karneval ignorieren zu wollen wäre zwecklos; man kann sich nur aus der Ansteckungszone entfernen.” Die hier angesprochene Derbheit sei wenigstens durch ein Beispiel belegt: „Et Kackleed”. Hatte der schon zitierte humorige heilige Thomas Morus listig, fromm und fröhlich gebetet: „Schenke mir eine gute Verdauung, Herr, und auch etwas zu Verdauen” lassen rheinische Christen erst gar nicht den Verdacht aufkommen, sie wollten Konventionen wahren. Sie grölen freudvoll und sinnlich: „Loss m’r ens e Leedche vum Kacke singe, kacke es e herrliche Dinge, kacke es en jroße Nut, denn wenn de nit mieh kacke kanns, dann bes de dut.” Auch der Hinweis: „Kacke müsse och de Nonne” macht dieses Lied nicht zum Psalm. Vielleicht gilt strafmildernd der Hinweis, dass das diesem Lied zugrundliegende Verb vom Lateinischen „cacare” abgeleitet ist und dieses wiederum vom Griechischen „kakkan” und - eigentlich - ein lautmalerisches Ersatzwort für derbere Worte, die wir hier nicht zitieren s/wollen, sein sollte. Andere Lieder, in denen der Karneval die Religion bemüht, sind sehr viel schlichter. Willi Millowitsch klingt noch im Ohr, wenn es heißt: „Schnaps! Das war sein letztes Wort, dann trugen ihn die Englein fort!” „Und so kam er in den Himmel, und man hat ihm Milch serviert. Gegen diese Art Behandlung hat der Lümmel protestiert!” In der Hölle fand der Säufer auch nur Schwefel und irrt seitdem im Weltall umher wo es zwar Raketen, aber keine Kneipen gibt. So mancher Zeitgenosse fand dieses Lied so gar nicht lustig, wurde in ihm doch - angeblich - die Alkoholsucht banalisiert. Dass Karneval die Werte „verkehrt rum” gelten und dieses Lied darum „richtig rum” ist, haben diese unerleuchteten Kritikaster nicht verstanden. Sie würden auch dieses Lied nicht verstehen, das eben nicht der Sinneslust das Wort redet, sondern fastnachtlich auf die Endlichkeit aufmerksam macht: „Ich well keinen Daach verjevve en mingem Levve, keinen Daach ohne irjend en Freud. Ich hau op d’r Putz sulang et noch jeiht, denn et Levve duert kein Iwischkeit.” Und überhaupt: Ein wesentlicher Grundzug der Fastnacht ist die Melancholie, das Wissen um das kommende Ende der Fastnacht und des eigenen Lebens. Die Mega-Hymne der christlichen Fastnacht lautet deshalb: „Trinke die Freude, denn heut 'ist heut', das, was erfreut, hat noch nie gereut. Fülle mit Leichtsinn dir den Pokal: Karneval, Karneval! Hast du zum Küssen Gelegenheit, Mensch, dann geh’ ’ran mit Verwegenheit. Sag’ niemals „Nein”, wenn das Glück dir winkt, bald das Finale erklingt: Am Aschermittwoch ist alles vorbei, die Schwüre von Treue, sie brechen entzwei. Von all’ deinen Küssen darf ich nichts mehr wissen, wie schön es auch sei, dann ist alles vorbei!” Wie richtig und wahr. Aber wir wären nicht im Rheinland, wenn das nicht auch noch gefeiert würde. Die Personifikation der Fastnacht ist der „Nubbel” in Köln. Am Ende der Fastnacht wird er schuldig aller Vergehen (der anderen!) gesprochen, hingerichtet und begraben. Das geht natürlich nicht ohne Gesang: „Un schleif mer dann dä Nubbel an d’r Weetschaffsdür erus, em Hetz e besje Wehmut, weil mer weiß, et es jetz Schluss, dä Pastor sprich, die Quetsch, die spellt et Äschermettwochsleed, et letzte Ründche Kölsch, dat kütt vom Weet.“ Wer sich - außerhalb des kölnischen Rheinlandes - nicht vorstellen kann, woher die hiesigen Christen den Mut zu Redenwendungen wie „Dä Erzbischoff kann saache, watt he will, mer bleeve katholisch!” nehmen, mag in der Geschichte nachschlagen: Zwei Kölner Erzbischöfe haben vergeblich versucht, das Erzbistum vom angestammten Glauben abzubringen. Und - Liedtexte wie „Wä en Kölle es jebore, hätt e Räch si Levve lang, frei ze sin un frei ze odme, jede Minsch ne freie Mann” haben ihren Grund im kölschen Freiheitskampf am 6. Juni 1288 in Worringen: „Dä Erzbischoff vun Westerburg, dä wollt ald lang uns Kölle han, däm jing et nur öm Maach un Jeld, nit öm uns Siel, däm Kirchemann. Hä wollt se ungerwirfe, uns Heimatstadt am Rhing, dat durf im nit jelinge, dröm moote mir noh Worringen hin.” Die Libertinage und Chuzpe des rheinischen Frohsinns ist im ursprünglichen Wortsinn gegen die kirchliche Obrigkeit erkämpft worden. Wahrscheinlich war die Schlacht in Worringen den Kölner Erzbischöfen eine Lehre. Heute scheint der Fastnachtsbazillius so ansteckend zu sein, dass selbst Immis, die als Bischöfe nach Köln kommen, in kürzester Zeit unheilbar infiziert werden. Der erst 1988 ernannte gegenwärtige Erzbischof von Köln, Joachim Kardinal Meisner, der 1989 sein Amt antrat, hat bereits 1991 sachverständig erklärt: „Ich denke, dass die Grundhaltung der Rheinländer eine gewisse Leichtigkeit ist - nicht zu verwechseln mit der Leichtlebigkeit - die ganzjährig ist und sich im Karneval nur konzentriert. Die Moral ist nicht außer Kraft gesetzt. Wohl aber gibt es eine andere Zeit der Vernunft: Die rationale Vernunft wird ersetzt durch eine irrationale bzw. durch einen Hintersinn. Aber auch dies ist dem Christentum insofern nicht fremd, als sich vieles Transzendente nur durch Paradoxien erklären lässt.” Dieser treffenden Analyse lässt sich nichts mehr hinzufügen - es sei denn „Hajuja”, die christlich-rheinische Mischung von „Helau” und „Halleluja”. Quelle: Prof. Dr. theol. Manfred ~Becker-Huberti, Köln www.religioeses-brauchtum.de/fruehjahr/fastnacht_4.html
|[[Fastnacht von A-Z]]| Der Karnevalsprinz (auch Fastnachts-, und Faschingsprinz), meist nur „Prinz“ genannt, ist in vielen Regionen das Oberhaupt der Narren in Karneval, Fastnacht und Fasching. Die Analogie zum Adelstitel Prinz ist beabsichtigt und äußert sich auch in Handlungen und dem Erscheinungsbild. __Amtszeit__ Dies obliegt dem jeweiligen Heimatgremium/Festausschuss/etc. und der damit verbundenen Region. Die Amtszeit einer "Tollität" beginnt mit seiner/ihrer Inthronisierung/Proklamation. In der Regel ist es jedoch so, dass die "Amtsperiode" einer Tollität endet, wenn die nachfolgende Tollität proklamiert ist. Die Handhabung ist aber von Ort zu Ort unterschiedlich. __Regierungsformen__ Der Prinz regiert alleine, als Prinzenpaar zusammen mit einer Prinzessin, in einem Dreigestirn oder mit einem Zeremonienmeister. Er ist aber immer die wichtigste Person und regiert die fünfte Jahreszeit. Mancherorts wird das Amt von einer Prinzessin übernommen. Vielfach wird das Prinzenpaar auch von einem Hofstaat oder auch Prinzengefolge - wie beispielsweise dem Elferrat - begleitet, was eine Persiflage auf die Hofbediensteten wirklicher Adelshäuser darstellt. Es gibt Hofnarren, Hofdamen, den Mundschenk, den Schatzmeister etc. Die Mitglieder des Hofstaates unterstützen den Prinzen bei seinen repräsentativen Pflichten, zudem sind Ihnen in der Regel auch organisatorische Aufgaben zugewiesen. Beispiele für Regierungsformen mit Prinzen in Karneval, Fastnacht und Fasching: Prinz (als Alleinherrscher) Dreigestirn (vor allem im Kölner Karneval) Prinz und seine Dame Confluentia im Koblenzer Karneval Prinz und Bonna im Bonner Karneval Prinzenpaar (in der Mainzer Fastnacht nur zu besonderen Anlässen) Prinz und Zeremonienmeister im Eschweiler Karneval Prinz mit Hofstaat im Aachener Karneval Prinz und seine Dame Venetia im Düsseldorfer Karneval __Stellenwert__ „Seine Tollität“ gilt zusammen mit seinen gegebenenfalls vorhandenen Mitregenten als Symbol der närrischen Herrschaft der jeweiligen Karnevals-, Fastnachts- und Faschingshochburg. In manchen Städten und Gemeinden genießt er sogar besondere Privilegien. Das Prinzenamt ist mit vielen repräsentativen Pflichten und besonders in den karnevalistischen Hochburgen auch mit nicht unerheblichen Kosten verbunden. Da der Prinz jedoch große öffentliche Aufmerksamkeit erzielt, wird er in vielen Orten dabei auch von örtlichen Sponsoren unterstützt. Wo dieser Brauch stattfindet, wird er sehr ernsthaft durchgeführt und es ist für jeden Amtsträger (Prinz, Prinzenpaar, Dreigestirn) eine besondere Ehre dieses Amt zu übernehmen. Der Prinz wird für die Dauer der Karnevalszeit zu einer Person des öffentlichen Lebens seiner Stadt, dessen Anwesenheit bei gesellschaftlichen Anlässen, auch über die Karnevalsveranstaltungen hinaus, hochgeschätzt wird Quelle: Wikipedia http://de.wikipedia.org/wiki/Karnevalsprinz
|[[Fastnacht von A-Z]]| !!Karnevalvereine im Hochtaunuskreis (sortiert nach dem Gründungsjahr)<br> |!Verein |!Gründungsjahr|!Homepage | |Carnevalsgesellschaft 1886 Kronberg| 1886 | |Karnevalverein Frohsinn 1890 e.V. | 1890 |http://www.karnevalverein-frohsinn.de| |Homburger ~Carneval-Verein 1902 e.V. | 1902 |http://www.hcv1902.de| |Kappen-Klub Kronberg 1902 e.V. | 1902 |http://www.kappenklub-kronberg.de/cms| |Karnevalsverein 1902 Oberhöchstadt | 1902 |http://www.karnevalverein1902.de| |Carnevalverein Club Humor 1904 e.V. (Bad Homburg) | 1904 |http://www.club-humor.de| |Karnevalverein 1910 Schlossborn e.V. | 1910 |http://www.die-krautkoepp.de| |Carnevalverein Heiterkeit 1919 e.v. (Bad Homburg) | 1912 |http://www.carnevalverein-heiterkeit.de| |Usinger Carneval Verein 1951 e.V. | 1951 |http://www.ucv-usingen.de| |Freunde des Carneval e.V. (Bad Homburg) | 1952 |http://www.freundedescarneval.de| |Karnevalsverein Club Geselligkeit Humor Weißkirchen 1952 e.V. | 1952 |http://www.clugehu.de| |Carneval Verein 1959 Stierstadt e.V. | 1959 |http://www.cv-stierstadt.de| |Königsteiner Narrenclub 1971/79 e.V. "Die Plasterschisser" | 1971 |http://www.plaschi.de| |Steinbacher Carnevals Verein 1974 e.V. | 1974 |http://www.scc-steinbach1974.de| |Seulberger Karnevalverein 1977 e.V. "Die Taunuseulen" | 1977 |http://www.taunuseulen.de| |Bommersheimer-Carneval-Verein 1987 e.V. | 1987 |http://www.bommersheimer-cv.de.vu| |Limes-Krätscher WCV 1987 e.V. (Wehrheim) | 1987 |http://www.limeskraetscher.de| |Kransberger Narren Club - KNC e.V.| 2008 |http://www.knc-kransberg.info| |Karnevalclub The Ravens 2010 e.V.| 2010 |https://kc-the-ravens.jimdo.com| |Kleinere Interessengemeinschaften| |!Oberursel|Steder Raale|Hedwigstaner| | Karnevalsvereine im Taunus: http://katalog.meinestadt.de/taunus/katl/100-100-754-27231-141548<br> Karnevalsvereine in Deutschland: http://katalog.meinestadt.de/deutschland/kat/100-100-754-27231-141548<br> Düsseldorf: http://www.comitee-duesseldorfer-carneval.de/de/ |Nierderorschler Canaval Verein e.V. (Thüringen)|http://www.orschel-helau.de/ncv/index.php|Der NCV begrüßt alle Närrinnen und Narren mit einem dreifach donnernden Orschel Helau!|
|[[Fastnacht von A-Z]]| ! Frankfurter ~Fastnachts-Ausstellung Saalbau Frankfurt / Stadthalle Bergen http://www.saalbau.com/veranstaltungen-in-den-saalbauten/fastnachts-ausstellung.html Über die ~Fastnachts-Ausstellung? Einen großen Rahmen der Ausstellung nehmen die vielfältigsten Orden ein, die im karnevalistischen Geschehen vom Ursprung her eigentlich persiflierenden Charakter gegenüber der Obrigkeit hatten, heutzutage aber durchaus ernst zu nehmende Requisiten bei der Auszeichnung verdienter Karnevalisten sind. Neben Kostümen, Uniformen und Mützen nehmen Urkunden und Schriftstücke aus der karnevalistischen Vergangenheit einen breiten Raum ein. Liederhefte, Sitzungsprogramme und Fastnachtszeitungen zeugen von dem urwüchsigen Humor und der Darstellungskraft dieses wichtigen volkstümlichen Brauchtums, das zu hegen und pflegen Hauptaufgabe der zahlreichen Vereine und Gesellschaften in unserer nähren und weiteren Heimat ist. __Pressemeldung 03.02.2012:__ http://rhein-main.business-on.de/frankfurt-exponate-ausstellung-grossen-rat-museum-_id18018.html Fastnachtsmuseum in Frankfurt eröffnet Frankfurt am Main. Die Ausstellung soll regelmäßig erneuert werden. Prächtige Roben und närrischer Frohsinn: In Frankfurt hat am Donnerstag das erste Fastnachtsmuseum eröffnet. In der Dauerausstellung im Titus-Forum des Nordwestzentrums werden künftig rund 300 historische Exponate aus dem Alltag der Frankfurter Karnevalsvereine zu sehen sein. Das erste Fastnachtsmuseum hat am Donnerstag seine Türen geöffnet. Dies berichtete der Museumsdirektor Werner Schmidt bei der feierlichen Eröffnung am Abend. Alle sechs Monate sollen die Vitrinen neu bestückt werden. "Insgesamt haben wir über 1.000 Exponate", sagte Schmidt. Unter den Ausstellungsstücken finden sich unter anderem Vereinsfahnen und Orden der Mitgliedsvereine des "Grossen Rats der Karnevalvereine in Frankfurt am Main" sowie festliche Ornate von Prinzen, Prinzessinnen und Pagen. Förderverein des Grossen Rats will Ausstellung unterstützen Eines der Lieblingsstücke des Museumsleiters ist eine Urkunde, welche die Vereinspartnerschaft des "1. Sindlinger Karneval-Vereins 1925" aus Frankfurt mit dem frühreren DDR-Karnevalsclub "NKC Nauen" aus Brandenburg verbrieft. Bis heute halte er den Kontakt zu einigen der Narren aus dem Havelland aufrecht. Neben der Urkunde können derzeit auch einige traditionelle Orden der Nauener Karnevalisten begutachtet werden. Auch wenn die für Besucher kostenlose Ausstellung längst nicht an die Größe anderer närrischer Museen wie in Köln heranreiche, sei er dankbar, dass die Exponate in dem Forum ein langfristiges Zuhause gefunden hätten, sagte Werner. Damit sich das Museum finanzieren kann, soll es künftig vom Grossen Rat gefördert werden. "Wir werden das Museum über den Förderverein unterstützen", kündigte Klaus Rats-Präsident Klaus Fischer an !~Karneval-Museen |Kölner Karnevalmuseum|http://www.kk-museum.de| |Mainzer Fastnachtsmuseum|http://www.mainzer-fastnachtsmuseum.de| |Koblenzer Fastnachtsmuseum|http://www.fastnachtsmuseum-koblenz.de| |Internet|http://webmuseen.de/karnevalsmuseen.html|
|[[Fastnacht von A-Z]]| __''Narrenaufmarsch unterm Hakenkreuz''__ Antisemitische Witze und Liedtexte, sowie Juden verspottende Mottowägen sorgten für antisemitische Stimmungsmache. Diese Verquickung von Karneval und Faschismus blieb nach Ende des Zweiten Weltkriegs lange Zeit unaufgearbeitet. Von der einstigen Kooperation zwischen Jecken und Nazis wollte kaum jemand etwas hören. Erst seit wenigen Jahren erforschen Karnevalsvereine ihre ~NS-Vergangenheit. ''~Video-Dokumentation:'' Die Narren und die Nazis - Die Geschichte von Karneval und Fastnacht im Nationalsozialismus gehört zu den verdrängten Kapiteln der Vergangenheit.Das ist erklärlich: Das Verhalten der meisten Vereine ab 1933 ist alles andere als ein Ruhmesblatt. Zivilcourage gegen das neue braune Denken findet man nur selten, dafür aber viele Fälle von eiliger Anpassung und freiwilliger Unterwerfung. Seit dem Machtantritt Hitlers unternehmen die Nationalsozialisten allerhand, um den Karneval ideologisch für ihre Zwecke nutzen zu können. Protest etwa gegen die vielen judenfeindlichen Maßnahmen gibt es kaum, Selbstbehauptung erfolgt im Regelfall nur dort, wo es um den Erhalt der organisatorischen Selbstbestimmung des Karnevals geht. Ansonsten biedern sich die Karnevalisten nicht selten an die neuen Herren im Land an, wenn nicht sogar Konsens und gegenseitiges Einvernehmen herrscht. Die Dokumentation von Frank Gutermuth und Sebastian Kuhn begibt sich auf Spurensuche in den Karnevalshochburgen Köln und Mainz, findet aber auch bemerkenswerte Geschichten von leisem Widerstand in einem Dorf am Rande von Frankfurt und von echt nationalsozialistischem Frohsinn in Nürnberg, der Stadt der Reichsparteitage. Zeitzeugen und Dokumente erinnern an wenige mutige Heldentaten und viele Momente, bei denen das Lachen im Halse stecken bleibt. http://www.veoh.com/watch/v17867910g9y5Ydzn?h1=Die+Narren+und+die+Nazis Weitere Seiten über diese Thema: http://www.rp-online.de/niederrhein-sued/krefeld/nachrichten/als-die-nazis-den-karneval-stehlen-wollten-1.2708876 Heil Hitler und Alaaf - Karneval in der NS-Zeit HD (DOKUMENTATION 2014 / German) https://www.youtube.com/watch?v=juRAwLQmZ18
|[[Fastnacht von A-Z]]| Auftakt der Kampagne ist traditionell am 11. November. Das närrische Grundgesetz wird verkündet und auf dem Schillerplatz spielen die Fastnachtsgarden im Takt des berühmten Narrhalla-Marsches das Ritzamban. Präambel Unsere goldige Mainzer Fastnacht soll für alle nachfolgenden Generationen und für alle vorausgegangenen Generationen als das schönste, größte und auch älteste Volksfest erhalten bleiben. - Wer an Fastnacht Feste feiert, der darf auch feste arbeiten. Artikel 1 Die Würde eines jeden Narren ist unantastbar. Jeder Mainzer Bürger ist zur Erhaltung der Narrenfreiheit aufgerufen. Alle, auch unsere Beamten, die Behörden und natürlich auch die Stadtverwaltung haben das närrische Treiben zu erdulden. Denn die Fastnachter lassen sich für ihre Narrheiten nicht bezahlen. Artikel 2 Alle Narren sind gleich, ob Gardist oder Feldmarschall, ob Präsident oder Büttenschieber. Denn es ist ja nur ein Spiel, das zur 5. Jahreszeit aufgeführt wird. Doch auch bei einem Spiel hat jeder seine Pflichten. Es soll niemand wegen Humormangel benachteiligt oder wegen seiner Wichtigtuerei bevorzugt werden. Artikel 3 Jeder Narr ist frei. Aber die Freiheit endet dort, wo des anderen Narren Freiheit beginnt. Die Narren wollen miteinander und nicht gegeneinander feiern. Artikel 4 Jeder Narr und jede Närrin sollen ihre Fröhlichkeit nicht im Alkohol, sondern im gemeinsamen erleben finden. Gelobt sei jeder Narr, der auch im nüchternen Zustand närrisch ist. - Prost! Artikel 5 Alle Gardisten, Büttenredner, Fahnenschwenker, Komiteeter, Schellkopfträger, Fastnachtssänger, Liederdichter, Ballettmädchen, Scheierborzeler und Schnorrer stehen unter dem Kommando des Prinzen Karneval im Namen von Gott Jokus. Hierüber wacht das kritische Mainzer Volk durch regen Besuch der Sitzungen, der Bälle, der närrischen Umzüge und der Straßenfastnacht. Artikel 6 Alle geborenen und alle gelernten Mainzer sollen sich während der närrischen Tage kostümieren und närrisch geben, auf dass die Tradition erhalten bleibt. Die Narrenflagge, mit der wir unsere Fenster und Straßen schmücken, ist rot-weiß-blau-gelb. Artikel 7 Die Fastnachtsvereine, ob Garden oder Korporationen müssen unsere Fastnacht gegen Mucker und Philister schützen und dafür sorgen, dass die Narren dem Volk auf´s Maul schauen und des Volkes Meinung kundtun. Artikel 8 Das Nationalgericht ist „Weck - Worscht - Woi". Denn Essen und Trinken hält Leib und Seele zusammen. Wir lassen uns auch das beste Essen nicht zweimal durch den Kopf gehen. Und wir trinken nicht mehr als unser Portemonnaie verträgt. - Gott Jokus ist unser Leber gnädig. Artikel 9 Der närrische Gruß vom 1. Januar bis zum Aschermittwoch heißt „Helau" Er ist möglichst oft und laut zu rufen oder zu singen. Artikel 10 Von Neujahr bis zum Aschermittwoch können alle Mainzer/Innen zu närrischen Diensten verpflichtet werden. Wer den Einsatz an Konfettikanonen oder Holzgewehren aus Gewissensgründen verweigert, kann einen Ersatzdienst als Büttenredner oder Sänger leisten, soweit dies dem Volk zuzumuten ist. Artikel 11 Wir wollen uns nicht zu ernst nehmen. Denn jeder von uns ist nur ein kleiner Teil unserer Fastnacht. Miteinander wollen wir fröhlich sein. Es lebe die Fastnacht. (von H. Schenk - überarbeitet von C. v. Opel) Gegeben zu Mainz, den 11.11.2000 Quelle: www.mainz.de
|[[Fastnacht von A-Z]]| !Fakten Der Fastnachtsbrunnen ist aus dem ehemaligen Trogbrunnen entstanden. Er wurde gekürzt und an der Seite zur Eppsteiner Straße hin mit dem Sockel der Eselsreiterin abgeschlossen.<br> Am Wochenende des 31.August /1 September 2001 wurde er mit einem Farbstrich restauriert. Der Man in rot und der Esel in orange.<br> Am 14 September 2001 wurden die Skulpturen wieder von der Farbe befreit. Am 02.02.2002 wurde der Fastnachstbrunnen getauft.<br> Der Fastnachtsbrunnen war im Jahre 2005 Brunnenfest-Brunnen in Oberursel. !Links |KV Frohsinn |http://www.karnevalverein-frohsinn.de/html/vf-fassenacht-brunnen.html| |Oberurseler Brunnen |http://web23.68.cyhost.ch/subdomains/brunnen/?cat=26|http://www.flickr.com/photos/sirinisunshine/4935328665| |Verein für Geschichte und Heimatkunde Oberursel (Taunus) e.V.|http://www.ursella.info/obu_stadtges/Kopp_Web/Kopp_web/brunnen.htm| !Online-Bilder http://mw2.google.com/mw-panoramio/photos/medium/51227776.jpg<br> http://mw2.google.com/mw-panoramio/photos/medium/51227818.jpg !Kritisches !Historisches __''Text: Buchbesprechnung der FAZ zu "Zeitreisen im Taunus" vonOlivia Kroth''__ Da wird zum Beispiel erklärt, was es mit der Eselsreiterin auf sich hat, die als Bronzeskulptur in Oberursel verewigt wurde und an solche Frauen erinnern soll, die sich mit eiserner Hand gegen ihre Ehemänner durchsetzten. Zur Strafe wurden diese Weibsleute, die ihre Männer schlugen, zur Fastnachtszeit verkehrt auf einen Esel gesetzt und derart öffentlich blamiert unter Spottrufen durchs Dorf getrieben, berichtet Kroth. __''Eselsstrafe''__ Eselsstrafe, alte schimpfliche Strafe, bei der jemand verkehrt auf dem Esel sitzend und den Schwanz desselben statt Zaum in der Hand haltend durch die Stadt geführt wurde; daher die Redensart »Jemand auf den Esel setzen«. Die E. bestand nach Plutarch für Ehebrecherinnen schon bei den alten Kymäern, und man nannte die so bestrafte Frau »onobatis« (Eselsreiterin). Papst Johann XIII. ließ um 966 den Präfekten Peter von Rom nackt auf dem Esel durch die Stadt führen. In Darmstadt und anderswo wurde die E. über Ehefrauen verhängt, die ihren Mann geprügelt hatten; dieser mußte den Esel führen. Man nannte diesen bis zum 16. Jahrh. nachweisbaren Volksbrauch das Eselslehen, oder den Frankensteiner Esel, nach einer adligen Familie, die den Esel gegen eine jährliche Abgabe der Darmstädter zu stellen hatte. In Frankreich bestieg der Nachbar den Esel und verkündete die Schande des geprügelten Mannes; ähnlich in England, wo der Nachbar manchmal eine Tragstange statt des Esels bestieg und so mit Musik durch die Stadt zog, was man to ride skimmington nannte. Quelle: Meyers Großes Konversations Lexikon !Historische Links Das Frankensteiner Eselslehen oder: Das ~Nieder-Ramstädter Schandreiten auf dem Strafesel http://www.muehltal-odenwald.de/geschich/mu/eselsleh.html Eine ~Internet-Sonderausgabe des Aufsatzes „Wyryzmaegs Eselsritt“ von Sonja Fritz und Jost Gippert (1983). Sie sollte nicht zitiert werden. http://titus.fkidg1.uni-frankfurt.de/personal/jg/pdf/jg1983b.pdf
|[[Fastnacht von A-Z]]| Musik: Georg Lang + 1953 Text: Fritz Bauer, gefallen 1940 E Städtche lieht im Taunus drin, Sein Name ist bekannt. Die Faßnacht zieht do widder in Wie ins gelobte Land. Ihr wißt es all, ihr liewe Leut’, Daß des nur Orschel is. Drum kommt zu uns, ihr Fremde, heut, Trinkt, lacht, liebt und genießt: Refrain: Mer haww’n widder, den Karneval, Heut hört mer’s lache iwwerall. Mir Orschler sinn so froh! Die Fassenacht is do. Es lacht das Herz vor Fraude uns, Was is denn nur gescheh? Soviel Tara, soviel Gebumms Hat Orschel nie geseh’! Es freut sich alles, Groß und Klaa, Mer sieht kaa mies Gesicht, Die älteste Leut’ sin uff de Baa un jeder davon spricht: Refrain: Mer haww’n widder... Im Klaaderschrank werd jetzt gewihlt, Dehaam steht alles Kopp, Jed’ Stickche Stoff des werd befiehlt, Selbst’s Klaadche von de Bopp. Die scheenste Sticker wer’n geschnappt, Dann werd’ gleich aaprowiert, E Hietche uff de Kopp gebabbt, Des geht der wie geschmiert. Refrain: Mer hawwe’n widder... Aamol im Jahr ganz närrisch soi, Des is heut’ die Parol, In jeden Kopp muß es enoi, Drum macht de größte Kohl. De Babba sächt zum Bübche klaa: Heut’ sin mer all verrickt. Do fängt de Knirps zu singe aa, Un is ganz hochbeglickt. Refrain: Mer haww’n widder..
|[[Fastnacht von A-Z]]| [img[https://www.karnevalverein-frohsinn.de/kleinerrat/assets/images/ohlenspiegel_02_200.jpg]] Er wurde m.W. von Hendoc geschaffen und zeigt zwei Gesichter von [[Heinz Ohl]] – lachend und ernst, getrennt durch einen Spiegel (als Zeichen der Ambivalenz der Fassenacht). Der „OHLENSPIEGEL“ wurde von RA & Notar Bernhard Kempermann gestiftet. Dieser Preis wird jährlich an die Gruppe verliehen, die am besten ein kommunalpolitisches Thema umgesetzt hat. Dadurch wird an den 1995 (oder war es 1996?) zu früh verstorbenen Orscheler ~Ur-Karnevalisten erinnert.
|[[Fastnacht von A-Z]]| Karnevalsorden (regional auch: "Fastnachtsorden") sind Auszeichnungen, die in der Zeit des Karneval meist im Rahmen einer Prunksitzung vergeben werden. ''Geschichte'' Die Geschichte der Karnevalsorden begann mit dem organisierten Karneval in Köln. Dort wollten die Kölner sich gegen die preußische Obrigkeit auflehnen. Ursprünglich symbolisierte der Karnevalsorden eine Geringschätzung militärischen Benehmens und Pomps. Er stellte damals eine Persiflage auf die staatlichen und militärischen Orden, Schärpen und Brustbänder der Preußen dar. Aus alten Protokollen geht hervor, dass eine Karnevalsprinzessin im Jahre 1824 auf einem Besuch einen Orden mitbrachte und aus Dank ebenfalls einen Orden bekam. Alte Bilder zeigen bereits Sitzungspräsidenten, die viele Orden übereinandertrugen. Schon früh wurde Geschichte als Thema auf den Orden dargestellt. Im Laufe der Zeit wurden Themen wie Politik, Ortsgeschichte, Gebäude usw. aufgegriffen. Aber auch Zeitgeschichte wurde auf den Orden dargestellt. Selbst Persönlichkeiten aus Kirche, Politik und Karneval boten sich als Motiv an. Die Aussage der Orden variiert also bis heute zwischen Spott, graphischer Aussage und Ehrbezeugung. Heute ist der Orden ein fester Bestandteil des Karnevals geworden und Karnevalisten in den verschiedensten Karnevalshochburgen sehen ihn als Belohnung für ihr Engagement in der närrischen Zeit an. So hat der Orden, der anfangs als Persiflage gedacht war, seine ursprüngliche Bedeutung ins Gegenteil verkehrt. Im Rheinland werden die Karnevalsorden häufig von den Vereinen verkauft, um die Session zu finanzieren. In anderen Teilen Deutschlands (z. B. Hessen) werden sie ausschließlich für Verdienste um die Session verliehen. __''Ordensklassen:''__ ''Sessionsorden'' Der Sessionsorden wird eigens für das Jahr entworfen, in dem er vergeben wird. Er wird an Aktive eines Karnevalsvereins, oder lokale Prominente verliehen. ''Verbandsorden'' Der Verbandsorden wird an langjährige aktive Mitglieder eines dem jeweiligen Karnevalsverband angeschlossenen Vereins vergeben. Ebenso wie der Sessionsorden wird dieser jedes Jahr neu entworfen. Einzelpersonen, die Mitglied eines Verbandes sind, bekommen diesen Orden jedes Jahr ''Verdienstorden'' Der Verdienstorden wird an besonders verdiente Mitglieder eines dem vergebenden Karnevalsverband angeschlossenen Vereins vergeben. [<img[Goldenes Flies|./data_pic/orden_Goldenes_Vlies_h300.jpg]] Verdienstorden: Das Goldene Vlies Nach der griechischen Sage ist das „Goldene Vlies“ das Fell eines Widders, auf welchem Phrixos und Helle vor ihrer Stiefmutter Ino über den Hellespont flüchteten. Argonauten, Helden der griechischen Sage, fuhren unter der Führung Jasons mit dem Schiff Argo nach Kolchis am schwarzen Meer und holten mit Medeas Hilfe das von einem Drachen bewachte „Goldene Vlies“ nach Griechenland zurück. Das „Goldene Vlies“, seit 1429 höchster burgundischer Orden, von den Habsburgern als Erbe des burgundischen Reiches in Spanien bis 1931 und in Österreich bis 1918 verliehen, wurde später von karnevalistischen Vereinigungen als Persiflage auf das höfische Zeremoniell vor der französischen Revolution übernommen. Die Verleihung geht normalerweise mit dem Ritterschlag einher. Verdienstorden: Die Goldene Flamme Verdienstorden: Die Silberne Flamme [<img[Goldene Flamme|./data_pic/orden_Goldene_Flamme_h200.jpg]].................[img[Silberne Flamme|./data_pic/orden_Silberne_Flamme_h200.jpg]] ''Spezielle Orden'' Ein spezieller Orden wird jedes Jahr einmalig, in der Regel an eine ausgewählte Persönlichkeit, verliehen, welche die, dem speziellen Orden entsprechenden, Voraussetzung in besonderem Maße erfüllt hat. Die Verleihung wird zuweilen in einem regelrechten Staatsakt vorgenommen. Quelle: Wikipedia
|[[Fastnacht von A-Z]]| !Orte !!~Nieder-Orschel Niederorschel ist eine Gemeinde im thüringischen Landkreis Eichsfeld. Sie ist Sitz der Verwaltungsgemeinschaft Eichsfelder Kessel. Wikipedia: http://de.wikipedia.org/wiki/Niederorschel !!~Ober-Orschel Stadtteil von ~Nieder-Orschel NCV - Karnevalverein http://www.orschel-helau.de !!~Orschel-Hagen Stadtteil von Reutlingen http://www.orschel-hagen.de/index.php
|[[Fastnacht von A-Z]]| Als Rathaussturm wird die jährlich zu Beginn des Karnevals stattfindende symbolische Besetzung des örtlichen Rathauses durch die Narren bezeichnet, die insbesondere im ehemals preußischen Rheinland, aber auch anderswo in Deutschland Brauch ist. Der Bürgermeister wird „gezwungen“, den Rathausschlüssel an die Narren zu übergeben und damit die gewohnte Ordnung während der „Fünften Jahreszeit“ außer Kraft zu setzen. Im Verlauf der Zeremonie wird häufig der „Amtsschimmel“ im Allgemeinen karikiert oder die Narren erinnern an spektakuläre Ereignisse und Patzer der Verwaltung im vergangenen Jahr. Quelle: Wikipedia http://de.wikipedia.org/wiki/Rathaussturm ---- Als Rathaussturm wird der jährlicher Sturm der Narren auf das Rathaus bezeichnet, der vielen Gegenden Deutschlands Brauch ist. Ziel ist es, dass der Bürgermeister der Gemeinde oder Stadt den Rathausschlüssel symbolisch an die Narren übergibt. Dies soll symbolisieren, dass die gewohnte Ordnung während der "Fünften Jahreszeit" außer Kraft gesetzt ist. Oft verwendete Termine für einen Rathaussturm sind der 11.11. oder der Schmutzige Donnerstag. Während der Zeremonie wird häufig das Amtsgeschehen, besondere Ereignisse oder auch Patzer der Verwaltung des vergangenen Jahres auf die Schippe genommen. Quelle: Narrenwiki http://www.narrenwiki.de/wiki/index.php?title=Rathaussturm ---- Amtsschimmel ist ein kritischer Ausdruck für ein Übermaß an Bürokratie. Es handelt sich dabei um eine jüngere Wortschöpfung des 19. Jahrhunderts. Schmutziger Donnerstag: http://www.narrenwiki.de/wiki/index.php?title=Schmutziger_Donnerstag
|[[Fastnacht von A-Z]]| Wie ein Introitus zu närrischen Freuden wird in Köln und in anderen Fastnachtslanden das Lied „Kumm, loss mer fiere“ gesungen. Ihm entspricht als Schlusslied, in dem melodramatisch der Anfang vom Ende besungen wird, das Lied: „Am Aschermittwoch is' alles vorbei“. Das Wissen um die Begrenztheit und die Endlichkeit der Narretei ist zwar Altbestand karnevalistischen Wissens. Jede, vor allem jede kurze Session lässt jedoch die Narren aufstöhnen: Wenn die „Zick“ so kurz ist, dass man nicht einmal mehr eine Chance zu einem Besuch des Dreigestirns bekommt, warum kann man dann nicht einfach die Session verlängern? Eine närrische Frage? Klar! Und ernst gemeint dazu! Die Karnevalszeit hat traditionell feste Bezugspunkte. Die Eröffnung der Session zum närrischen Termin am 11.11. um 11.11 Uhr ist eine Erfindung des 19. Jahrhunderts. Der Tag gibt einen ersten Ausblick: Prinzenpaar oder Dreigestirn sowie das Motto werden vorgestellt. Der Tag ist ein karnevalistischer Appetizer - nicht weniger, aber auch nicht mehr. Wenn der 11.11. manchem Narren als „uralte“ Tradition erscheint, lässt das nicht unbedingt auf den Grad seiner Narrheit schließen: Die 11 ist seit dem Mittelalter eine Zahl, die symbolisch die Narretei anzeigt, denn sie überschreitet die vorgegebene Ordnung des Dezimalsystems. Wer das elfte Gebot hinter den von Gott gegebenen zehn erfindet, kann nur närrisch sein! Der eigentliche Karneval im Rheinland, und zwar hier zuerst der Sitzungskarneval und anderswo die Maskenbälle beginnen mit dem Dreikönigstag, dem 6. Januar. Dieser Termin knüpft an das alte Bohnenfest an, das durch den Königskuchen am Dreikönigsabend (5. Januar) ausgelöst wurde. Wer die Bohne im Kuchen fand, wurde Bohnenkönig und musste ein Maskenfest ausrichten. Übrigens war dies – wie fast alle christlichen Feste - ein „soziales“ Fest, weil die feiernden Herrschaften auch der Dienerschaft ein Bohnefest ausrichteten; dieses Fest hieß „schwarzer Bohnenkönig“. Das Bohnenfest war im Jahreslauf die erste karnevalistische Feier, der seit der Wiederbelebung des Karnevals in der Romantik des 19. Jahrhunderts nun die weiteren Feste folgten. Fastnacht, Fasching oder Karneval sind seit dem 12. Jahrhundert auf die Zeit zwischen Dreikönige und Aschermittwoch eingegrenzt. Warum? Weil Fastnacht - also die Nacht vor dem Fastenbeginn - ein Schwellenfest ist und am Vorabend des Fastenaufktakts am Aschermittwoch entstand und sich dann ausweitete: Die „drei tollen Tage“, die wir noch in alten Fastnachtsliedern besingen, sind ursprünglich der Donnerstag vor dem Karnevalsonntag, der Sonntag und der Dienstag, denn an einem Freitag, dem Todestag Jesu Fastnacht zu feiern, ziemte sich nicht. Als sich nach 1823 der „Rosenmontag“ mit dem Straßenkarneval und dem Rosenmontagszug durchsetzten, lief dieser Tag dem „Veilchendienstag“ den Rang ab. Der Termin des Aschermittwochs ist kein fester Tag, sondern ein „beweglicher“, variabler Termin. Er errechnet sich von Ostern her. Nach jüdischer Tradition wird am 14. Nisan (die quarta decima) Passah gefeiert, weshalb für die Urchristen dies der Tag des Osterfestes war, ohne Rücksicht darauf, ob der Tag auf einen Sonntag fiel. Im Westen dagegen bildete sich der erste Sonntag nach dem Frühlingsvollmond als Ostertermin heraus, der schließlich durch das Konzil von Niccäa 325 festgeschrieben wurde. Das Osterfest kann demnach auf einen Termin zwischen dem 22. März und 25. April (Ostergrenze) fallen. Im christlichen Festkalender geht die österliche Fastenzeit (Quadragesima) dem Osterfest voran. Ostern ist deshalb auch ein beweglicher Festtermin. In Folge ist die Fastenzeit auch „beweglich“. In Bezug auf das Fasten Jesu in der Wüste (Mt 4, 2) legte die Kirche die Länge der Fastenzeit auf vierzig Tage und Nächte fest. Die in vierzig Einheiten zu teilende Zeitspanne bezeichnet die erdzugewandte Vielfalt und kommt in der Bibel mehrfach vor: vierzig Jahre wandern die Israeliten durch die Wüste (Ex 16,35), vierzig Tage begegnet Moses Gott auf dem Sinai (Ex 24,18), vierzig Tage wandert Elias zum Berg Horeb (1 Kön 19,8), vierzig Tage fastet Jesus in der Wüste (Mt 4,2; Lk 4,2) und vierzig Tage nach der Auferstehung (= Ostern) feiert die Kirche Christi Himmelfahrt (Apg 1,3). Der Beginn der Fastenzeit liegt auf einem Mittwoch und das Ende der Fastnachtszeit auf dem Dienstag nach dem 6. Sonntag vor Ostern (Invocabit). Als die Synode von Benevent 1091 die Sonntage in der Fastenzeit als Gedächtnistage der Auferstehung Jesu vom Fasten ausnahm, rückte der Beginn der Fastenzeit um 6 (Wochen-) Tage vor. Die Fastnacht endet seitdem am Dienstag nach dem 7. Sonntag vor Ostern (Estomihi) und die Fastenzeit beginnt mit dem folgenden Mittwoch, dem Aschermittwoch. Jene, die ihre Fastnacht nach der alten Fastenordnung vor der Regelung in Benevent (1091) feiern, begehen die Alte Fastnacht (auch: Bauernfastnacht), die immer in die geltende Fastenzeit fällt. Zum Unterschied dazu wurde die neue Fastenordnung Herrenfastnacht genannt. Seit den Zeiten des Papstes Gregor des Großen (590-604) bis zur Liturgiereform in Deutschland (1970) nach dem II. Vatikanischen Konzil (1962-1965) gab es für den Karnevalssonntag, Quinquagesima, eine gleich bleibende Perikopenordnung: Die Lesung trug das Hohelied der Liebe vor (1 Kor 13, 1-13), in der das Fehlen von Gottes- und Nächstenliebe als närrisch gedeutet wurde, und das Evangelium den Weg Jesu über Jericho nach Jerusalem (Luk 18, 31-43). Der Text der Epistel stand in einem großen Zusammenhang: Im biblischen Sinn ist der ein Narr, der Gott leugnet und dem darum der Mensch das Maß aller Dinge ist (Ps 53, 2; Mt 5, 22), der alles auf das Hier und das Jetzt setzt (Lk 12, 12), der seine einzige Hoffnung auf irdische Güter richtet (Ps 49, 11), der sich Dinge rühmt, die er nicht oder zu Unrecht erworben hat und dann damit prahlt (Jer 17, 11; 2 Kor 11, 17, 21 u. 12, 16). Was gemeint ist, „übersetzt“ der Epheserbrief (4, 17b-24) in das Bild vom alten und dem neuen Menschen: „Lebt nicht mehr wie die Heiden in ihrem nichtigen Denken! Ihr Sinn ist verfinstert. Sie sind dem Leben, das Gott schenkt, entfremdet durch die Unwissenheit, in der sie befangen sind, und durch die Verhärtung ihres Herzens. Haltlos wie sie sind, geben sie sich der Ausschweifung hin, um voll Gier jede Art von Gemeinheit zu begehen. Das aber entspricht nicht dem, was ihr von Christus gelernt habt. Ihr habt doch von ihm gehört und seid unterrichtet worden in der Wahrheit, die Jesus ist. Legt den alten Menschen ab, der in Verblendung und Begierde zugrunde geht, ändert euer früheres Leben, und erneuert euren Geist und Sinn! Zieht den neuen Menschen an, er nach dem Bild Gottes geschaffen ist in wahrer Gerechtigkeit und Heiligkeit.“ Der „alte Mensch“ ist ein Narr, der in der Sünde verharrt, der „neue Mensch“ ist der Christ, der Jesus Christus und seinen Regeln nachfolgt. Während die Fastenzeit eine Übung und ein Weg zum neuen Menschen ist, in dieser Zeit am Erstarken des „Reiches Gottes“ gearbeitet wird, bietet die Fastnacht Gelegenheit, spielerisch, auf Zeit und - natürlich nur zum Abgewöhnen - den „alten Menschen“, den Narren, nachzuspielen. Die pädagogische Spielregel lautet: Erfahre an dir selbst, wie falsch närrisches Verhalten ist, kehre um, alter Mensch, und werde zu einem neuen Menschen, einem Christusnachfolger! Während der Narr in und für diese Welt lebt, soll der Christ zwar in der Welt, aber nicht für diese Welt leben. Auch die Fastnacht empfing ein Schlüsselelement aus der Liturgie. Nach dem Episteltext (1 Kor 13, 1): „Wenn ich in den Sprachen der Menschen und Engel redete, hätte aber die Liebe nicht, wäre ich dröhnendes Erz oder eine lärmende Pauke“ galt der Narr als einer ohne (Gottes- und Nächsten-) Liebe, dem kein Sein und kein Haben über dieses Defizit hinweghelfen kann. Wer ohne Nächstenliebe ist, der ist und bleibt ein Narr. Folgenreicher war das mit dieser Narrendefinition verbundene Bild vom „dröhnendes Erz“ und der „lärmenden Pauke“. Seit dem Mittelalter definiert sich der Narr und Gottesleugner in seiner Erscheinung mit Schelle und Pauke: viel Lärm um nichts. Die Schelle wurde zum Erkennungszeichen des Narren. Abraham a Santa Clara (1644-1709), der bildhaft-wortgewaltige Barockprediger, definierte die Narren als Kinder dieser Welt, die „vorn und hinten mit Schellen“ geziert sind. Ihnen ist die Gottesliebe verloren gegangen und deshalb machen sie mit Schellengeläut das Böse wichtig. Es gehört geradezu zum Wesen des Bösen, dass es laut auftritt und auf sich aufmerksam macht; der „Heidenspektakel“ ist noch immer sprichwörtlich. Das Gute dagegen lässt sich eher im Verborgenen finden und muss deshalb gesucht werden (vgl. das Bild vom Reich Gottes als verborgener „Schatz im Acker“, Mt 13, 44). Weder die Franzosen noch die Preußen konnten im Rheinland die Fastnacht erfolgreich unterdrücken. Im Gegenteil: sie wurden einfach einbezogen. Wenn der „preußische“ Schutzmann den rheinischen Karnevalszügen die Schelle schwingend voran zieht, mag das den Preußen wie die Akzeptanz der Ordnungsmacht erschienen sein. Der närrischen Ikonographie nach machte sich der Schutzmann durch die Schelle zum Narren! Anhand des Epistel- und des Evangelientextes des Karnevalssonntags stellten die Prediger über Jahrhunderte hinweg zwei Modelle gegenüber: Die Cupido-Gemeinschaft der Ungläubigen, symbolisiert durch die Schellenträger (nach der Epistel des Karnevalsonntags ist die klingende Schelle das Zeichen der Lüsternheit = lat. cupido), die die societas mala, die böse Gesellschaft, darstellen, und die Caritas-Gemeinschaft der Gläubigen, Unmaskierte, symbolisiert durch das Fehlen von Masken, die die societas bona sind. Während sich die societas mala auf dem Weg des Abstiegs nach Babylon, dem Reich des Bösen, befindet, steigt die societas bona auf in das himmlische Jerusalem. Das babylonisch Reich der Schellenträger in der societas mala realisierte sich aktuell natürlich in der Fastnacht, die Herrschaft des himmlischen Jerusalems, in der die Unmaskierten die societas bona bildeten, in der Fastenzeit. In diese Ausdeutung eingeflossen war unverkennbar die Zweistaatenlehre des heiligen Augustinus (354-430), bei der dualistisch die civitas diaboli, das Reich des Teufels, der civitas dei, dem Reich Gottes, erfüllt im himmlischen Jerusalem (Hierusalem caeleste), gegenüberstehen. Charakterisiert wird der Herrschaftsbereich des Teufels durch Lärm, Narrheit, Streit und Diesseitsorientierung, das Reich Gottes dagegen durch Ruhe, Frieden, Gottesliebe und Jenseitsorientierung. Zumindest für das Reich des Bösen gab es historisch reale Beispiele: das (alte) Babylon und das (neue) Babylon, das heidnische Rom. Herr der civitas diaboli war natürlich der Teufel. In seinen Herrschaftsbereich begab sich der Mensch als Narr, der immer zugleich auch Gottesleugner war. Als Narrheit begriff das Mittelalter beim vernünftigen Mensch die Unfähigkeit, seine natürlichen Triebe zu beherrschen. Als Folge der Erbsünde galt die besondere Anfälligkeit des Menschen für Reize, die den Hochmut und das Verlangen nach Sinnenlust ansprechen. Seit Gregor dem Großen (1572-1585) unterschied man sieben Ausformungen des erbsündlichen Hochmutes: Hoffart, Neid, Zorn, Geiz, Unkeuschheit, Unmäßigkeit und religiös-sittliche Trägheit. Manchmal kann es sich so darstellen, als würde heutzutage die Fastnacht vom ökonomischen Bedarf der Fastnachtvermarkter bestimmt. Fastnacht ist aber keine beliebige Verfügungsmasse - das fühlen viele Narren tief in ihrem Herzen. Denn der Sinn der Fastnacht erschließt sich nur von der Fastenzeit her. Und deshalb dürfte eigentlich nur der Fastnacht feiern, der auch anschließend fastet. Ein seltsamer närrischer Narr, der in der Fastenzeit noch närrisch sein will! Quelle: Prof. Dr. theol. Manfred Becker-Huberti, Köln www.religioeses-brauchtum.de/fruehjahr/fastnacht_5.html
|[[Fastnacht von A-Z]]| Bereits im Mittelalter wurde in der Fastnacht ein Karnevalskönig eingesetzt, der ein Narrenreich regierte, zu dem natürlich auch ein närrischer Hofstaat gehörte. In dieser Tradition steht der heutige Elferrat, die Karnevalsgarden, Tanzgemeinschaften usw. Der Standardnarr aber war der „Schalknarr”, ein „normaler” Mensch, dem „natürlichen Narren” (= körperlich oder geistig Behinderten!) nachgebildet: kahlgeschoren, ausgestattet mit mit der Narrenkappe (Gugel), also Hahnenkamm, Eselsohren, Schelle, Miparti (geteilte Färbung der Kleidung). Er versinnbildlicht den Gottesleugner, die Unkenntnis der Nächstenliebe, die egomanische Eigenliebe. Ergänzt wird der Standardnarr durch Teufel, Hexen und Riesen, den Repräsentanten der dämonischen Mächte, die in der civitas diaboli leben und als Weltverführer agieren. Während die Zuordnung des Teufels zur civitas diaboli eindeutig ist, gilt für die Hexen, dass es sich um Frauen (seltener um Männer) handelt, die sich mit dem Teufel eingelassen haben und geschlechtlich mit ihm verkehren. Die Riesen galten nach der im Mittelalter üblichen Ansicht als Normbrecher und Übertreter des göttlichen Gebotes, weil sie die von Gott festgesetzten Größenordnungen übertraten. Konsequent verkleideten sich die Narren auch in moderneren Zeiten in Kostüme der „Feinde des Christentums”: Chinesenkostüme, Indianermasken, Verkleidungen als Neger oder Cowboys stehen in dieser Tradition. Repräsentanten der bösen Welt sind ebenfalls die Träger von Fleckenkostümen, deren Flecken äußeres Zeichen des von Sünden befleckten menschlichen Leibes sind. Die Schellenträger zeigen durch die Schellen ihre Zugehörigkeit zur cupido-Gemeinschaft (vgl. die frühere Epistel des Fastnachtssonntags) an. Die Schönmasken, z.B. die barocken Weißnarren, führen die Vergötzung des menschlichen Körpers vor (pulchritudo carnalis), dem die Verderbtheit der Seele entspricht. Quelle: © Prof. Dr. theol. Manfred ~Becker-Huberti, Köln www.religioeses-brauchtum.de/fruehjahr/fastnacht_3.html
|[[Fastnacht von A-Z]]| Wenn die Narren toben, dann ist die Faschings-, Fastnacht- oder Karnevalszeit. Im engeren Sinn umfasst sie sechs Tage: von Donnerstag vor Fastnachtssonntag (schmotziger Donnerstag, Weiberfastnacht) bis Fastnachtsdienstag. Diese Tage der Ausgelassenheit und des Feierns beziehen ihren Sinn von der ab Aschermittwoch folgenden Fastenzeit. Während die Fastenzeit eine Zeit des Geistes und der Vorbereitung auf Leiden, Sterben und Auferstehung Christi ist, spielt die Fastnacht vor dem Schwellentag „Aschermittwoch” sprichwörtlich verrückt. Die Fastnacht ist spielerisch die Gegenzeit zur Fastenzeit: eine Zeit der Diesseitsorientierung und des Fleischlichen. Der Gläubige erfährt im Spiel an sich selbst, wie närrisch die Rolle des Gottesleugners und dann der Narren ist, indem er tatsächlich in die Maske der Gottesfeinde schlüpft, z. B. als Teufel oder Hexe. Die Ausgelassenheit dieser Feiertage hatten ihren realen Hintergrund auch in den früheren strengen Fastenregeln. Fett, Fleisch und Laktizinien (Milch, Butter, Käse usw.) waren in der Fastenzeit tabu und mussten aus der Küche verschwinden. An den Fastnachttagen tobt dort, wo es ihn gibt, der Straßenkarneval. Als Karnevalssession oder als Zeit für Karnevalssitzungen und Maskenbälle gilt die Zeit von Dreikönige (6. Januar) an. Hier wirkt das alte Bohnenfest des Bohnenkönigs nach, der am Dreikönigstag durch die Bohne im Königskuchen bestimmt wurde. Im Rheinland ist der 6. Januar bis heute Auftakt der jeweiligen Session. Der 11.11. (Elfter im Elften) als närrischer Starttermin hat zwar für sich den Vorteil, dass die Zahl Elf seit Jahrhunderten als Narrenzahl gilt, im 19. Jahrhundert bei der romantischen Karnevalsreform neu entdeckt wurde und Eingang in das Brauchtum (Elferrat) fand. Der 11.11. als Karnevalsauftakt hat sich aber erst in der Zeit zwischen den beiden Weltkriegen ergeben. Wenn im Zusammenhang mit der Fastnacht von den drei tollen Tagen die Rede ist, dann sind damit die drei Tage gemeint, an denen vor dem 19. Jahrhundert gefeiert wurde: der „kleine Fastabend” (heute Weiberfastnacht), der „große Fastabend” am Sonntag und der eigentliche Fast(en)abend, der Vorabend des ersten Fastentages, der Fastnachtsdienstag. Der sogenannte Rosenmontag kam als vierter toller Tag erst nach 1823 hinzu, als in Köln der Rosenmontagszug eingeführt wurde. Aus den drei tollen Tagen sind seit dem 19. Jahrhundert wenigstens vier geworden. Die ehemalige (und gegenwärtige) Bedeutung der Fastnachtszeit läßt sich allein schon an der Fülle der Begriffe erkennen, mit denen die einzelnen Tage gekennzeichnet werden. Die gesamten Fastnachtstage von Donnerstag vor dem Fastensonntag bis Dienstag danach bezeichnete man als: Bacchanalia, carnelevamen, Dorendage, Fastelabend. Der Donnerstag vor dem Fastnachtssonntag, im Rheinland Weiberfastnacht bezeichnet, heißt: Dorendonderdach, feister phinztag, gumpiger donstag, kleine fastnacht (Oberrhn.), fetter Donnerstag, schwerer Donnerstag (Rhld.), Semperstag, tumbe fassnacht, unsinniger Donnerstag, Weiberdonnerstag, wuetig Donnerstag, Wuscheltag (Basel), zemperstag, zimpertag. Am Freitag vor Estomihi wurde früher keine Fastnacht gefeiert. Als Gedächtnistag des Todes Jesu stand er nicht zur Disposition, weshalb es für diesen Tag auch keine althergebrachten Bezeichnungen gibt. Auch der Samstag vor dem Fastnachtssonntag wurde nicht für Fastnachtfeierlichkeiten genutzt. Er wird als Vorabend der Fastnacht „groten fastelavendsavend” oder „schmalziger Samstag” bezeichnet. Der Fastnachtssonntag oder Sonntag Estomihi, der 7. Sonntag vor Ostern oder Quinquagesima, wird bezeichnet als: carnisprivium clericorum, Großfastabend, Herrenfastnacht, Narrenkirchweihtag, ndl. papenvastelavend, Pfaffenfassnacht, Quintana [da Ev. von den fünf Broten], Rinnensonntag, Schutteldach (Aachen). Der Montag nach Estomihi hat als Rosenmontag seine heutige Bedeutung erst im 19. Jahrhundert mit der Einführung des Rosenmontagszuges gewonnen. Aber auch in der Vergangenheit wurde an diesem Tag Karneval gefeiert, wie einige alte Namen des Tages belegen: dies Lune salax, d. pingues, Fassnachtabend Montag zuvor, Frassmaendag, geiler Montag, kleiner Fastelavent (Niederrh.), Ruckerstag (Frankfurt). Der Dienstag nach Estomihi zählte früher zu den drei tollen Tagen, dementsprechend finden sich Bezeichnungen für diesen Tag in verschiedenen Nationen: Shrove Tuesday (Engl.), Smörtisdag (Skand.), Marci gras (Frkr.), Kleiner fastelavent (Ndl.), junge Fassnacht (Schweiz). Andere Namen: Bauernfastnacht, carnisprivium novum, dies pingues, Faschang, Faschangtag, fasching, fassangus, Fassnacht, fassnachtfeiertag, fetter Dienstag, feister Zinstag, frassgerdag, gemeine Fastnacht, Grüne Fassnacht, Letzte Fassnacht, letzter Fastelavand, rechte fassnacht, vassangtag, vastnacht. Als die Synode von Benevent 1091 die Sonntage in der Fastenzeit als Gedächtnistage der Auferstehung Jesu vom Fasten ausnahm, rückte deshalb der Beginn der Fastenzeit um 6 (Wochen-) Tage vor. Die Fastnacht endet seitdem am Dienstag nach dem 7. Sonntag vor Ostern (Estomihi) und die Fastenzeit beginnt mit dem folgenden Mittwoch, dem Aschermittwoch. Jene, die ihre Fastnacht nach der alten Fastenordnung vor der Regelung in Benevent (1091) feiern, begehen die Alte Fastnacht (auch: Bauernfastnacht), die immer in die geltende Fastenzeit fällt. Zum Unterschied von der Alten Fastnacht wurde der der neuen Fastenordnung entsprechende neue Fastnachtstermin Herrenfastnacht genannt. Vor allem am Oberrhein konnte sich diese Neuordnung nicht gegen die ältere Tradtion durchsetzen. In Basel, Baden und in Teilen des Markgräflerlandes hielt man an der „alten Fastnacht” als „Bauernfastnacht” zum alten Termin gegenüber der „Herrenfastnacht” am neuen Termin fest. Bis heute beginnt in diesen Gebieten die Fastnachtszeit erst, wenn andernorts bereits die Fastenzeit begonnen hat. Die Alte Fastnacht war oft auch eine protestantische Demonstration gegen die „katholische” Fastenzeit. Die Alte Fastnacht ist geradezu sprichwörtlich geworden: Wer zu spät kommt, kommt hinterher wie die alte Fastnacht. Wer ein schlechter Zahler ist, weil er immer auf die Zukunft vertröstet, für den fällt die Fastnacht immer spät. Quelle: © Prof. Dr. theol. Manfred Becker-Huberti, Köln www.religioeses-brauchtum.de/fruehjahr/fastnacht_2.html
hide
hide
hide
{ "tiddlers": { "$:/Acknowledgements": { "title": "$:/Acknowledgements", "type": "text/vnd.tiddlywiki", "text": "TiddlyWiki incorporates code from these fine OpenSource projects:\n\n* [[The Stanford Javascript Crypto Library|http://bitwiseshiftleft.github.io/sjcl/]]\n* [[The Jasmine JavaScript Test Framework|http://pivotal.github.io/jasmine/]]\n* [[Normalize.css by Nicolas Gallagher|http://necolas.github.io/normalize.css/]]\n\nAnd media from these projects:\n\n* World flag icons from [[Wikipedia|http://commons.wikimedia.org/wiki/Category:SVG_flags_by_country]]\n" }, "$:/core/copyright.txt": { "title": "$:/core/copyright.txt", "type": "text/plain", "text": "TiddlyWiki created by Jeremy Ruston, (jeremy [at] jermolene [dot] com)\n\nCopyright © Jeremy Ruston 2004-2007\nCopyright © UnaMesa Association 2007-2016\n\nRedistribution and use in source and binary forms, with or without modification,\nare permitted provided that the following conditions are met:\n\nRedistributions of source code must retain the above copyright notice, this\nlist of conditions and the following disclaimer.\n\nRedistributions in binary form must reproduce the above copyright notice, this\nlist of conditions and the following disclaimer in the documentation and/or other\nmaterials provided with the distribution.\n\nNeither the name of the UnaMesa Association nor the names of its contributors may be\nused to endorse or promote products derived from this software without specific\nprior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 'AS IS' AND ANY\nEXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES\nOF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT\nSHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,\nINCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED\nTO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR\nBUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN\nCONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN\nANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH\nDAMAGE.\n" }, "$:/core/icon": { "title": "$:/core/icon", "tags": "$:/tags/Image", "text": "<svg width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\"><path d=\"M64 0l54.56 32v64L64 128 9.44 96V32L64 0zm21.127 95.408c-3.578-.103-5.15-.094-6.974-3.152l-1.42.042c-1.653-.075-.964-.04-2.067-.097-1.844-.07-1.548-1.86-1.873-2.8-.52-3.202.687-6.43.65-9.632-.014-1.14-1.593-5.17-2.157-6.61-1.768.34-3.546.406-5.34.497-4.134-.01-8.24-.527-12.317-1.183-.8 3.35-3.16 8.036-1.21 11.44 2.37 3.52 4.03 4.495 6.61 4.707 2.572.212 3.16 3.18 2.53 4.242-.55.73-1.52.864-2.346 1.04l-1.65.08c-1.296-.046-2.455-.404-3.61-.955-1.93-1.097-3.925-3.383-5.406-5.024.345.658.55 1.938.24 2.53-.878 1.27-4.665 1.26-6.4.47-1.97-.89-6.73-7.162-7.468-11.86 1.96-3.78 4.812-7.07 6.255-11.186-3.146-2.05-4.83-5.384-4.61-9.16l.08-.44c-3.097.59-1.49.37-4.82.628-10.608-.032-19.935-7.37-14.68-18.774.34-.673.664-1.287 1.243-.994.466.237.4 1.18.166 2.227-3.005 13.627 11.67 13.732 20.69 11.21.89-.25 2.67-1.936 3.905-2.495 2.016-.91 4.205-1.282 6.376-1.55 5.4-.63 11.893 2.276 15.19 2.37 3.3.096 7.99-.805 10.87-.615 2.09.098 4.143.483 6.16 1.03 1.306-6.49 1.4-11.27 4.492-12.38 1.814.293 3.213 2.818 4.25 4.167 2.112-.086 4.12.46 6.115 1.066 3.61-.522 6.642-2.593 9.833-4.203-3.234 2.69-3.673 7.075-3.303 11.127.138 2.103-.444 4.386-1.164 6.54-1.348 3.507-3.95 7.204-6.97 7.014-1.14-.036-1.805-.695-2.653-1.4-.164 1.427-.81 2.7-1.434 3.96-1.44 2.797-5.203 4.03-8.687 7.016-3.484 2.985 1.114 13.65 2.23 15.594 1.114 1.94 4.226 2.652 3.02 4.406-.37.58-.936.785-1.54 1.01l-.82.11zm-40.097-8.85l.553.14c.694-.27 2.09.15 2.83.353-1.363-1.31-3.417-3.24-4.897-4.46-.485-1.47-.278-2.96-.174-4.46l.02-.123c-.582 1.205-1.322 2.376-1.72 3.645-.465 1.71 2.07 3.557 3.052 4.615l.336.3z\" fill-rule=\"evenodd\"/></svg>" }, "$:/core/images/advanced-search-button": { "title": "$:/core/images/advanced-search-button", "tags": "$:/tags/Image", "text": "<svg class=\"tc-image-advanced-search-button tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n <g fill-rule=\"evenodd\">\n <path d=\"M74.5651535,87.9848361 C66.9581537,93.0488876 57.8237115,96 48,96 C21.490332,96 0,74.509668 0,48 C0,21.490332 21.490332,0 48,0 C74.509668,0 96,21.490332 96,48 C96,57.8541369 93.0305793,67.0147285 87.9377231,74.6357895 L122.284919,108.982985 C125.978897,112.676963 125.973757,118.65366 122.284271,122.343146 C118.593975,126.033442 112.613238,126.032921 108.92411,122.343793 L74.5651535,87.9848361 Z M48,80 C65.673112,80 80,65.673112 80,48 C80,30.326888 65.673112,16 48,16 C30.326888,16 16,30.326888 16,48 C16,65.673112 30.326888,80 48,80 Z\"></path>\n <circle cx=\"48\" cy=\"48\" r=\"8\"></circle>\n <circle cx=\"28\" cy=\"48\" r=\"8\"></circle>\n <circle cx=\"68\" cy=\"48\" r=\"8\"></circle>\n </g>\n</svg>" }, "$:/core/images/auto-height": { "title": "$:/core/images/auto-height", "tags": "$:/tags/Image", "text": "<svg class=\"tc-image-auto-height tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n <path d=\"M67.9867828,114.356363 L67.9579626,99.8785426 C67.9550688,98.4248183 67.1636987,97.087107 65.8909901,96.3845863 L49.9251455,87.5716209 L47.992126,95.0735397 L79.8995411,95.0735397 C84.1215894,95.0735397 85.4638131,89.3810359 81.686497,87.4948823 L49.7971476,71.5713518 L48.0101917,79.1500092 L79.992126,79.1500092 C84.2093753,79.1500092 85.5558421,73.4676733 81.7869993,71.5753162 L49.805065,55.517008 L48.0101916,63.0917009 L79.9921259,63.0917015 C84.2035118,63.0917016 85.5551434,57.4217887 81.7966702,55.5218807 L65.7625147,47.4166161 L67.9579705,50.9864368 L67.9579705,35.6148245 L77.1715737,44.8284272 C78.7336709,46.3905243 81.2663308,46.3905243 82.8284279,44.8284271 C84.390525,43.2663299 84.390525,40.7336699 82.8284278,39.1715728 L66.8284271,23.1715728 C65.2663299,21.6094757 62.73367,21.6094757 61.1715729,23.1715729 L45.1715729,39.1715729 C43.6094757,40.73367 43.6094757,43.26633 45.1715729,44.8284271 C46.73367,46.3905243 49.26633,46.3905243 50.8284271,44.8284271 L59.9579705,35.6988837 L59.9579705,50.9864368 C59.9579705,52.495201 60.806922,53.8755997 62.1534263,54.5562576 L78.1875818,62.6615223 L79.9921261,55.0917015 L48.0101917,55.0917009 C43.7929424,55.0917008 42.4464755,60.7740368 46.2153183,62.6663939 L78.1972526,78.7247021 L79.992126,71.1500092 L48.0101917,71.1500092 C43.7881433,71.1500092 42.4459197,76.842513 46.2232358,78.7286665 L78.1125852,94.6521971 L79.8995411,87.0735397 L47.992126,87.0735397 C43.8588276,87.0735397 42.4404876,92.5780219 46.0591064,94.5754586 L62.024951,103.388424 L59.9579785,99.8944677 L59.9867142,114.32986 L50.8284271,105.171573 C49.26633,103.609476 46.73367,103.609476 45.1715729,105.171573 C43.6094757,106.73367 43.6094757,109.26633 45.1715729,110.828427 L61.1715729,126.828427 C62.73367,128.390524 65.2663299,128.390524 66.8284271,126.828427 L82.8284278,110.828427 C84.390525,109.26633 84.390525,106.73367 82.8284279,105.171573 C81.2663308,103.609476 78.7336709,103.609476 77.1715737,105.171573 L67.9867828,114.356363 L67.9867828,114.356363 Z M16,20 L112,20 C114.209139,20 116,18.209139 116,16 C116,13.790861 114.209139,12 112,12 L16,12 C13.790861,12 12,13.790861 12,16 C12,18.209139 13.790861,20 16,20 L16,20 Z\"></path>\n</svg>" }, "$:/core/images/blank": { "title": "$:/core/images/blank", "tags": "$:/tags/Image", "text": "<svg class=\"tc-image-blank tc-image-button\" viewBox=\"0 0 128 128\" width=\"22pt\" height=\"22pt\"></svg>" }, "$:/core/images/bold": { "title": "$:/core/images/bold", "tags": "$:/tags/Image", "text": "<svg class=\"tc-image-bold tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n <g fill-rule=\"evenodd\">\n <path d=\"M41.1456583,51.8095238 L41.1456583,21.8711485 L67.4985994,21.8711485 C70.0084159,21.8711485 72.4285598,22.0802967 74.7591036,22.4985994 C77.0896475,22.9169022 79.1512515,23.6638602 80.9439776,24.7394958 C82.7367036,25.8151314 84.170863,27.3090474 85.2464986,29.2212885 C86.3221342,31.1335296 86.859944,33.5835518 86.859944,36.5714286 C86.859944,41.9496067 85.2465147,45.8337882 82.0196078,48.2240896 C78.792701,50.614391 74.6694929,51.8095238 69.6498599,51.8095238 L41.1456583,51.8095238 Z M13,0 L13,128 L75.0280112,128 C80.7647346,128 86.3519803,127.28292 91.789916,125.848739 C97.2278517,124.414559 102.068139,122.203563 106.310924,119.215686 C110.553709,116.22781 113.929959,112.373506 116.439776,107.652661 C118.949592,102.931816 120.204482,97.3445701 120.204482,90.8907563 C120.204482,82.8832466 118.262391,76.0411115 114.378151,70.3641457 C110.493911,64.6871798 104.607883,60.7133634 96.719888,58.442577 C102.456611,55.6937304 106.788968,52.1680887 109.717087,47.8655462 C112.645206,43.5630037 114.109244,38.1849062 114.109244,31.7310924 C114.109244,25.7553389 113.123259,20.7357813 111.151261,16.6722689 C109.179262,12.6087565 106.400578,9.35201972 102.815126,6.90196078 C99.2296739,4.45190185 94.927196,2.68908101 89.907563,1.61344538 C84.8879301,0.537809748 79.3305627,0 73.2352941,0 L13,0 Z M41.1456583,106.128852 L41.1456583,70.9915966 L71.8011204,70.9915966 C77.896389,70.9915966 82.7964334,72.3958776 86.5014006,75.2044818 C90.2063677,78.0130859 92.0588235,82.7039821 92.0588235,89.2773109 C92.0588235,92.6237329 91.4911355,95.3725383 90.3557423,97.5238095 C89.2203491,99.6750808 87.6965548,101.378145 85.7843137,102.633053 C83.8720726,103.887961 81.661077,104.784311 79.1512605,105.322129 C76.641444,105.859947 74.0121519,106.128852 71.2633053,106.128852 L41.1456583,106.128852 Z\"></path>\n </g>\n</svg>" }, "$:/core/images/cancel-button": { "title": "$:/core/images/cancel-button", "tags": "$:/tags/Image", "text": "<svg class=\"tc-image-cancel-button tc-image-button\" viewBox=\"0 0 128 128\" width=\"22pt\" height=\"22pt\">\n\t<g fill-rule=\"evenodd\">\n\t <path d=\"M64,76.3137085 L47.0294734,93.2842351 C43.9038742,96.4098343 38.8399231,96.4084656 35.7157288,93.2842712 C32.5978915,90.166434 32.5915506,85.0947409 35.7157649,81.9705266 L52.6862915,65 L35.7157649,48.0294734 C32.5901657,44.9038742 32.5915344,39.8399231 35.7157288,36.7157288 C38.833566,33.5978915 43.9052591,33.5915506 47.0294734,36.7157649 L64,53.6862915 L80.9705266,36.7157649 C84.0961258,33.5901657 89.1600769,33.5915344 92.2842712,36.7157288 C95.4021085,39.833566 95.4084494,44.9052591 92.2842351,48.0294734 L75.3137085,65 L92.2842351,81.9705266 C95.4098343,85.0961258 95.4084656,90.1600769 92.2842712,93.2842712 C89.166434,96.4021085 84.0947409,96.4084494 80.9705266,93.2842351 L64,76.3137085 Z M64,129 C99.346224,129 128,100.346224 128,65 C128,29.653776 99.346224,1 64,1 C28.653776,1 1.13686838e-13,29.653776 1.13686838e-13,65 C1.13686838e-13,100.346224 28.653776,129 64,129 Z M64,113 C90.509668,113 112,91.509668 112,65 C112,38.490332 90.509668,17 64,17 C37.490332,17 16,38.490332 16,65 C16,91.509668 37.490332,113 64,113 Z\"></path>\n </g>\n</svg>" }, "$:/core/images/chevron-down": { "title": "$:/core/images/chevron-down", "tags": "$:/tags/Image", "text": "<svg class=\"tc-image-chevron-down tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n\t<g fill-rule=\"evenodd\" transform=\"translate(64.000000, 40.500000) rotate(-270.000000) translate(-64.000000, -40.500000) translate(-22.500000, -26.500000)\">\n <path d=\"M112.743107,112.12741 C111.310627,113.561013 109.331747,114.449239 107.145951,114.449239 L27.9777917,114.449239 C23.6126002,114.449239 20.0618714,110.904826 20.0618714,106.532572 C20.0618714,102.169214 23.6059497,98.6159054 27.9777917,98.6159054 L99.2285381,98.6159054 L99.2285381,27.365159 C99.2285381,22.9999675 102.77295,19.4492387 107.145205,19.4492387 C111.508562,19.4492387 115.061871,22.993317 115.061871,27.365159 L115.061871,106.533318 C115.061871,108.71579 114.175869,110.694669 112.743378,112.127981 Z\" transform=\"translate(67.561871, 66.949239) rotate(-45.000000) translate(-67.561871, -66.949239) \"></path>\n <path d=\"M151.35638,112.12741 C149.923899,113.561013 147.94502,114.449239 145.759224,114.449239 L66.5910645,114.449239 C62.225873,114.449239 58.6751442,110.904826 58.6751442,106.532572 C58.6751442,102.169214 62.2192225,98.6159054 66.5910645,98.6159054 L137.841811,98.6159054 L137.841811,27.365159 C137.841811,22.9999675 141.386223,19.4492387 145.758478,19.4492387 C150.121835,19.4492387 153.675144,22.993317 153.675144,27.365159 L153.675144,106.533318 C153.675144,108.71579 152.789142,110.694669 151.356651,112.127981 Z\" transform=\"translate(106.175144, 66.949239) rotate(-45.000000) translate(-106.175144, -66.949239) \"></path>\n\t</g>\n</svg>" }, "$:/core/images/chevron-left": { "title": "$:/core/images/chevron-left", "tags": "$:/tags/Image", "text": "<svg class=\"tc-image-chevron-left tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\" version=\"1.1\">\n <g fill-rule=\"evenodd\" transform=\"translate(92.500000, 64.000000) rotate(-180.000000) translate(-92.500000, -64.000000) translate(6.000000, -3.000000)\">\n <path d=\"M112.743107,112.12741 C111.310627,113.561013 109.331747,114.449239 107.145951,114.449239 L27.9777917,114.449239 C23.6126002,114.449239 20.0618714,110.904826 20.0618714,106.532572 C20.0618714,102.169214 23.6059497,98.6159054 27.9777917,98.6159054 L99.2285381,98.6159054 L99.2285381,27.365159 C99.2285381,22.9999675 102.77295,19.4492387 107.145205,19.4492387 C111.508562,19.4492387 115.061871,22.993317 115.061871,27.365159 L115.061871,106.533318 C115.061871,108.71579 114.175869,110.694669 112.743378,112.127981 Z\" transform=\"translate(67.561871, 66.949239) rotate(-45.000000) translate(-67.561871, -66.949239) \"></path>\n <path d=\"M151.35638,112.12741 C149.923899,113.561013 147.94502,114.449239 145.759224,114.449239 L66.5910645,114.449239 C62.225873,114.449239 58.6751442,110.904826 58.6751442,106.532572 C58.6751442,102.169214 62.2192225,98.6159054 66.5910645,98.6159054 L137.841811,98.6159054 L137.841811,27.365159 C137.841811,22.9999675 141.386223,19.4492387 145.758478,19.4492387 C150.121835,19.4492387 153.675144,22.993317 153.675144,27.365159 L153.675144,106.533318 C153.675144,108.71579 152.789142,110.694669 151.356651,112.127981 Z\" transform=\"translate(106.175144, 66.949239) rotate(-45.000000) translate(-106.175144, -66.949239) \"></path>\n </g>\n</svg>" }, "$:/core/images/chevron-right": { "title": "$:/core/images/chevron-right", "tags": "$:/tags/Image", "text": "<svg class=\"tc-image-chevron-right tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n <g fill-rule=\"evenodd\" transform=\"translate(-48.000000, -3.000000)\">\n <path d=\"M112.743107,112.12741 C111.310627,113.561013 109.331747,114.449239 107.145951,114.449239 L27.9777917,114.449239 C23.6126002,114.449239 20.0618714,110.904826 20.0618714,106.532572 C20.0618714,102.169214 23.6059497,98.6159054 27.9777917,98.6159054 L99.2285381,98.6159054 L99.2285381,27.365159 C99.2285381,22.9999675 102.77295,19.4492387 107.145205,19.4492387 C111.508562,19.4492387 115.061871,22.993317 115.061871,27.365159 L115.061871,106.533318 C115.061871,108.71579 114.175869,110.694669 112.743378,112.127981 Z\" transform=\"translate(67.561871, 66.949239) rotate(-45.000000) translate(-67.561871, -66.949239) \"></path>\n <path d=\"M151.35638,112.12741 C149.923899,113.561013 147.94502,114.449239 145.759224,114.449239 L66.5910645,114.449239 C62.225873,114.449239 58.6751442,110.904826 58.6751442,106.532572 C58.6751442,102.169214 62.2192225,98.6159054 66.5910645,98.6159054 L137.841811,98.6159054 L137.841811,27.365159 C137.841811,22.9999675 141.386223,19.4492387 145.758478,19.4492387 C150.121835,19.4492387 153.675144,22.993317 153.675144,27.365159 L153.675144,106.533318 C153.675144,108.71579 152.789142,110.694669 151.356651,112.127981 Z\" transform=\"translate(106.175144, 66.949239) rotate(-45.000000) translate(-106.175144, -66.949239) \"></path>\n </g>\n</svg>" }, "$:/core/images/chevron-up": { "title": "$:/core/images/chevron-up", "tags": "$:/tags/Image", "text": "<svg class=\"tc-image-chevron-up tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n\t<g fill-rule=\"evenodd\" transform=\"translate(64.000000, 89.500000) rotate(-90.000000) translate(-64.000000, -89.500000) translate(-22.500000, 22.500000)\">\n <path d=\"M112.743107,112.12741 C111.310627,113.561013 109.331747,114.449239 107.145951,114.449239 L27.9777917,114.449239 C23.6126002,114.449239 20.0618714,110.904826 20.0618714,106.532572 C20.0618714,102.169214 23.6059497,98.6159054 27.9777917,98.6159054 L99.2285381,98.6159054 L99.2285381,27.365159 C99.2285381,22.9999675 102.77295,19.4492387 107.145205,19.4492387 C111.508562,19.4492387 115.061871,22.993317 115.061871,27.365159 L115.061871,106.533318 C115.061871,108.71579 114.175869,110.694669 112.743378,112.127981 Z\" transform=\"translate(67.561871, 66.949239) rotate(-45.000000) translate(-67.561871, -66.949239) \"></path>\n <path d=\"M151.35638,112.12741 C149.923899,113.561013 147.94502,114.449239 145.759224,114.449239 L66.5910645,114.449239 C62.225873,114.449239 58.6751442,110.904826 58.6751442,106.532572 C58.6751442,102.169214 62.2192225,98.6159054 66.5910645,98.6159054 L137.841811,98.6159054 L137.841811,27.365159 C137.841811,22.9999675 141.386223,19.4492387 145.758478,19.4492387 C150.121835,19.4492387 153.675144,22.993317 153.675144,27.365159 L153.675144,106.533318 C153.675144,108.71579 152.789142,110.694669 151.356651,112.127981 Z\" transform=\"translate(106.175144, 66.949239) rotate(-45.000000) translate(-106.175144, -66.949239) \"></path>\n\t</g>\n</svg>" }, "$:/core/images/clone-button": { "title": "$:/core/images/clone-button", "tags": "$:/tags/Image", "text": "<svg class=\"tc-clone-button tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n <g fill-rule=\"evenodd\">\n <path d=\"M32.2650915,96 L32.2650915,120.002359 C32.2650915,124.419334 35.8432884,128 40.2627323,128 L120.002359,128 C124.419334,128 128,124.421803 128,120.002359 L128,40.2627323 C128,35.8457573 124.421803,32.2650915 120.002359,32.2650915 L96,32.2650915 L96,48 L108.858899,48 C110.519357,48 111.853018,49.3405131 111.853018,50.9941198 L111.853018,108.858899 C111.853018,110.519357 110.512505,111.853018 108.858899,111.853018 L50.9941198,111.853018 C49.333661,111.853018 48,110.512505 48,108.858899 L48,96 L32.2650915,96 Z\"></path>\n <path d=\"M40,56 L32.0070969,56 C27.5881712,56 24,52.418278 24,48 C24,43.5907123 27.5848994,40 32.0070969,40 L40,40 L40,32.0070969 C40,27.5881712 43.581722,24 48,24 C52.4092877,24 56,27.5848994 56,32.0070969 L56,40 L63.9929031,40 C68.4118288,40 72,43.581722 72,48 C72,52.4092877 68.4151006,56 63.9929031,56 L56,56 L56,63.9929031 C56,68.4118288 52.418278,72 48,72 C43.5907123,72 40,68.4151006 40,63.9929031 L40,56 Z M7.9992458,0 C3.58138434,0 0,3.5881049 0,7.9992458 L0,88.0007542 C0,92.4186157 3.5881049,96 7.9992458,96 L88.0007542,96 C92.4186157,96 96,92.4118951 96,88.0007542 L96,7.9992458 C96,3.58138434 92.4118951,0 88.0007542,0 L7.9992458,0 Z M19.0010118,16 C17.3435988,16 16,17.336731 16,19.0010118 L16,76.9989882 C16,78.6564012 17.336731,80 19.0010118,80 L76.9989882,80 C78.6564012,80 80,78.663269 80,76.9989882 L80,19.0010118 C80,17.3435988 78.663269,16 76.9989882,16 L19.0010118,16 Z\"></path>\n </g>\n</svg>" }, "$:/core/images/close-all-button": { "title": "$:/core/images/close-all-button", "tags": "$:/tags/Image", "text": "<svg class=\"tc-close-all-button tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n <g fill-rule=\"evenodd\" transform=\"translate(-23.000000, -23.000000)\">\n <path d=\"M43,131 L22.9976794,131 C18.5827987,131 15,127.418278 15,123 C15,118.590712 18.5806831,115 22.9976794,115 L43,115 L43,94.9976794 C43,90.5827987 46.581722,87 51,87 C55.4092877,87 59,90.5806831 59,94.9976794 L59,115 L79.0023206,115 C83.4172013,115 87,118.581722 87,123 C87,127.409288 83.4193169,131 79.0023206,131 L59,131 L59,151.002321 C59,155.417201 55.418278,159 51,159 C46.5907123,159 43,155.419317 43,151.002321 L43,131 Z\" transform=\"translate(51.000000, 123.000000) rotate(-45.000000) translate(-51.000000, -123.000000) \"></path>\n <path d=\"M43,59 L22.9976794,59 C18.5827987,59 15,55.418278 15,51 C15,46.5907123 18.5806831,43 22.9976794,43 L43,43 L43,22.9976794 C43,18.5827987 46.581722,15 51,15 C55.4092877,15 59,18.5806831 59,22.9976794 L59,43 L79.0023206,43 C83.4172013,43 87,46.581722 87,51 C87,55.4092877 83.4193169,59 79.0023206,59 L59,59 L59,79.0023206 C59,83.4172013 55.418278,87 51,87 C46.5907123,87 43,83.4193169 43,79.0023206 L43,59 Z\" transform=\"translate(51.000000, 51.000000) rotate(-45.000000) translate(-51.000000, -51.000000) \"></path>\n <path d=\"M115,59 L94.9976794,59 C90.5827987,59 87,55.418278 87,51 C87,46.5907123 90.5806831,43 94.9976794,43 L115,43 L115,22.9976794 C115,18.5827987 118.581722,15 123,15 C127.409288,15 131,18.5806831 131,22.9976794 L131,43 L151.002321,43 C155.417201,43 159,46.581722 159,51 C159,55.4092877 155.419317,59 151.002321,59 L131,59 L131,79.0023206 C131,83.4172013 127.418278,87 123,87 C118.590712,87 115,83.4193169 115,79.0023206 L115,59 Z\" transform=\"translate(123.000000, 51.000000) rotate(-45.000000) translate(-123.000000, -51.000000) \"></path>\n <path d=\"M115,131 L94.9976794,131 C90.5827987,131 87,127.418278 87,123 C87,118.590712 90.5806831,115 94.9976794,115 L115,115 L115,94.9976794 C115,90.5827987 118.581722,87 123,87 C127.409288,87 131,90.5806831 131,94.9976794 L131,115 L151.002321,115 C155.417201,115 159,118.581722 159,123 C159,127.409288 155.419317,131 151.002321,131 L131,131 L131,151.002321 C131,155.417201 127.418278,159 123,159 C118.590712,159 115,155.419317 115,151.002321 L115,131 Z\" transform=\"translate(123.000000, 123.000000) rotate(-45.000000) translate(-123.000000, -123.000000) \"></path>\n </g>\n</svg>" }, "$:/core/images/close-button": { "title": "$:/core/images/close-button", "tags": "$:/tags/Image", "text": "<svg class=\"tc-image-close-button tc-image-button\" viewBox=\"0 0 128 128\" width=\"22pt\" height=\"22pt\">\n <g fill-rule=\"evenodd\">\n <path d=\"M65.0864256,75.4091629 L14.9727349,125.522854 C11.8515951,128.643993 6.78104858,128.64922 3.65685425,125.525026 C0.539017023,122.407189 0.5336324,117.334539 3.65902635,114.209145 L53.7727171,64.0954544 L3.65902635,13.9817637 C0.537886594,10.8606239 0.532659916,5.79007744 3.65685425,2.6658831 C6.77469148,-0.451954124 11.8473409,-0.457338747 14.9727349,2.66805521 L65.0864256,52.7817459 L115.200116,2.66805521 C118.321256,-0.453084553 123.391803,-0.458311231 126.515997,2.6658831 C129.633834,5.78372033 129.639219,10.8563698 126.513825,13.9817637 L76.4001341,64.0954544 L126.513825,114.209145 C129.634965,117.330285 129.640191,122.400831 126.515997,125.525026 C123.39816,128.642863 118.32551,128.648248 115.200116,125.522854 L65.0864256,75.4091629 L65.0864256,75.4091629 Z\"></path>\n </g>\n</svg>\n" }, "$:/core/images/close-others-button": { "title": "$:/core/images/close-others-button", "tags": "$:/tags/Image", "text": "<svg class=\"tc-image-close-others-button tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n <g fill-rule=\"evenodd\">\n <path d=\"M64,128 C99.346224,128 128,99.346224 128,64 C128,28.653776 99.346224,0 64,0 C28.653776,0 0,28.653776 0,64 C0,99.346224 28.653776,128 64,128 Z M64,112 C90.509668,112 112,90.509668 112,64 C112,37.490332 90.509668,16 64,16 C37.490332,16 16,37.490332 16,64 C16,90.509668 37.490332,112 64,112 Z M64,96 C81.673112,96 96,81.673112 96,64 C96,46.326888 81.673112,32 64,32 C46.326888,32 32,46.326888 32,64 C32,81.673112 46.326888,96 64,96 Z M64,80 C72.836556,80 80,72.836556 80,64 C80,55.163444 72.836556,48 64,48 C55.163444,48 48,55.163444 48,64 C48,72.836556 55.163444,80 64,80 Z\"></path>\n </g>\n</svg>" }, "$:/core/images/delete-button": { "title": "$:/core/images/delete-button", "tags": "$:/tags/Image", "text": "<svg class=\"tc-image-delete-button tc-image-button\" viewBox=\"0 0 128 128\" width=\"22pt\" height=\"22pt\">\n <g fill-rule=\"evenodd\" transform=\"translate(12.000000, 0.000000)\">\n <rect x=\"0\" y=\"11\" width=\"105\" height=\"16\" rx=\"8\"></rect>\n <rect x=\"28\" y=\"0\" width=\"48\" height=\"16\" rx=\"8\"></rect>\n <rect x=\"8\" y=\"16\" width=\"16\" height=\"112\" rx=\"8\"></rect>\n <rect x=\"8\" y=\"112\" width=\"88\" height=\"16\" rx=\"8\"></rect>\n <rect x=\"80\" y=\"16\" width=\"16\" height=\"112\" rx=\"8\"></rect>\n <rect x=\"56\" y=\"16\" width=\"16\" height=\"112\" rx=\"8\"></rect>\n <rect x=\"32\" y=\"16\" width=\"16\" height=\"112\" rx=\"8\"></rect>\n </g>\n</svg>" }, "$:/core/images/done-button": { "title": "$:/core/images/done-button", "tags": "$:/tags/Image", "text": "<svg class=\"tc-image-done-button tc-image-button\" viewBox=\"0 0 128 128\" width=\"22pt\" height=\"22pt\">\n <g fill-rule=\"evenodd\">\n <path d=\"M3.52445141,76.8322939 C2.07397484,75.3828178 1.17514421,73.3795385 1.17514421,71.1666288 L1.17514421,23.1836596 C1.17514421,18.7531992 4.75686621,15.1751442 9.17514421,15.1751442 C13.5844319,15.1751442 17.1751442,18.7606787 17.1751442,23.1836596 L17.1751442,63.1751442 L119.173716,63.1751442 C123.590457,63.1751442 127.175144,66.7568662 127.175144,71.1751442 C127.175144,75.5844319 123.592783,79.1751442 119.173716,79.1751442 L9.17657227,79.1751442 C6.96796403,79.1751442 4.9674142,78.279521 3.51911285,76.8315312 Z\" id=\"Rectangle-285\" transform=\"translate(64.175144, 47.175144) rotate(-45.000000) translate(-64.175144, -47.175144) \"></path>\n </g>\n</svg>" }, "$:/core/images/down-arrow": { "title": "$:/core/images/down-arrow", "tags": "$:/tags/Image", "text": "<svg class=\"tc-image-down-arrow tc-image-button\" viewBox=\"0 0 128 128\" width=\"22pt\" height=\"22pt\">\n <path d=\"M109.35638,81.3533152 C107.923899,82.7869182 105.94502,83.6751442 103.759224,83.6751442 L24.5910645,83.6751442 C20.225873,83.6751442 16.6751442,80.1307318 16.6751442,75.7584775 C16.6751442,71.3951199 20.2192225,67.8418109 24.5910645,67.8418109 L95.8418109,67.8418109 L95.8418109,-3.40893546 C95.8418109,-7.77412698 99.3862233,-11.3248558 103.758478,-11.3248558 C108.121835,-11.3248558 111.675144,-7.78077754 111.675144,-3.40893546 L111.675144,75.7592239 C111.675144,77.9416955 110.789142,79.9205745 109.356651,81.3538862 Z\" transform=\"translate(64.175144, 36.175144) rotate(45.000000) translate(-64.175144, -36.175144) \"></path>\n</svg>" }, "$:/core/images/download-button": { "title": "$:/core/images/download-button", "tags": "$:/tags/Image", "text": "<svg class=\"tc-image-download-button tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><path class=\"tc-image-download-button-ring\" d=\"M64,128 C99.346224,128 128,99.346224 128,64 C128,28.653776 99.346224,0 64,0 C28.653776,0 0,28.653776 0,64 C0,99.346224 28.653776,128 64,128 Z M64,112 C90.509668,112 112,90.509668 112,64 C112,37.490332 90.509668,16 64,16 C37.490332,16 16,37.490332 16,64 C16,90.509668 37.490332,112 64,112 Z\"/><path d=\"M34.3496823,66.4308767 L61.2415823,93.634668 C63.0411536,95.4551107 65.9588502,95.4551107 67.7584215,93.634668 L94.6503215,66.4308767 C96.4498928,64.610434 96.4498928,61.6588981 94.6503215,59.8384554 C93.7861334,58.9642445 92.6140473,58.4731195 91.3919019,58.4731195 L82.9324098,58.4731195 C80.3874318,58.4731195 78.3243078,56.3860674 78.3243078,53.8115729 L78.3243078,38.6615466 C78.3243078,36.0870521 76.2611837,34 73.7162058,34 L55.283798,34 C52.7388201,34 50.675696,36.0870521 50.675696,38.6615466 L50.675696,38.6615466 L50.675696,53.8115729 C50.675696,56.3860674 48.612572,58.4731195 46.0675941,58.4731195 L37.608102,58.4731195 C35.063124,58.4731195 33,60.5601716 33,63.134666 C33,64.3709859 33.4854943,65.5566658 34.3496823,66.4308767 L34.3496823,66.4308767 Z\"/></g></svg>" }, "$:/core/images/edit-button": { "title": "$:/core/images/edit-button", "tags": "$:/tags/Image", "text": "<svg class=\"tc-image-edit-button tc-image-button\" viewBox=\"0 0 128 128\" width=\"22pt\" height=\"22pt\">\n <g fill-rule=\"evenodd\">\n <path d=\"M116.870058,45.3431458 L108.870058,45.3431458 L108.870058,45.3431458 L108.870058,61.3431458 L116.870058,61.3431458 L116.870058,45.3431458 Z M124.870058,45.3431458 L127.649881,45.3431458 C132.066101,45.3431458 135.656854,48.9248678 135.656854,53.3431458 C135.656854,57.7524334 132.07201,61.3431458 127.649881,61.3431458 L124.870058,61.3431458 L124.870058,45.3431458 Z M100.870058,45.3431458 L15.6638275,45.3431458 C15.5064377,45.3431458 15.3501085,45.3476943 15.1949638,45.3566664 L15.1949638,45.3566664 C15.0628002,45.3477039 14.928279,45.3431458 14.7913977,45.3431458 C6.68160973,45.3431458 -8.34314575,53.3431458 -8.34314575,53.3431458 C-8.34314575,53.3431458 6.85614548,61.3431458 14.7913977,61.3431458 C14.9266533,61.3431458 15.0596543,61.3384973 15.190398,61.3293588 C15.3470529,61.3385075 15.5049057,61.3431458 15.6638275,61.3431458 L100.870058,61.3431458 L100.870058,45.3431458 L100.870058,45.3431458 Z\" transform=\"translate(63.656854, 53.343146) rotate(-45.000000) translate(-63.656854, -53.343146) \"></path>\n <path d=\"M35.1714596,124.189544 C41.9594858,123.613403 49.068777,121.917633 58.85987,118.842282 C60.6854386,118.268877 62.4306907,117.705515 65.1957709,116.802278 C81.1962861,111.575575 87.0734839,109.994907 93.9414474,109.655721 C102.29855,109.242993 107.795169,111.785371 111.520478,118.355045 C112.610163,120.276732 115.051363,120.951203 116.97305,119.861518 C118.894737,118.771832 119.569207,116.330633 118.479522,114.408946 C113.146151,105.003414 104.734907,101.112919 93.5468356,101.66546 C85.6716631,102.054388 79.4899908,103.716944 62.7116783,109.197722 C59.9734132,110.092199 58.2519873,110.64787 56.4625698,111.20992 C37.002649,117.322218 25.6914684,118.282267 16.8654804,112.957098 C14.9739614,111.815848 12.5154166,112.424061 11.3741667,114.31558 C10.2329168,116.207099 10.84113,118.665644 12.7326489,119.806894 C19.0655164,123.627836 26.4866335,124.926678 35.1714596,124.189544 Z\"></path>\n </g>\n</svg>" }, "$:/core/images/erase": { "title": "$:/core/images/erase", "tags": "$:/tags/Image", "text": "<svg class=\"tc-image-erase tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n <g fill-rule=\"evenodd\">\n <path d=\"M60.0870401,127.996166 L123.102318,64.980888 C129.636723,58.4464827 129.629513,47.8655877 123.098967,41.3350425 L99.4657866,17.7018617 C92.927448,11.1635231 82.3486358,11.1698163 75.8199411,17.698511 L4.89768189,88.6207702 C-1.63672343,95.1551755 -1.6295126,105.736071 4.90103262,112.266616 L20.6305829,127.996166 L60.0870401,127.996166 Z M25.1375576,120.682546 L10.812569,106.357558 C7.5455063,103.090495 7.54523836,97.793808 10.8048093,94.5342371 L46.2691086,59.0699377 L81.7308914,94.5317205 L55.5800654,120.682546 L25.1375576,120.682546 Z\"></path>\n </g>\n</svg>" }, "$:/core/images/excise": { "title": "$:/core/images/excise", "tags": "$:/tags/Image", "text": "<svg class=\"tc-image-excise tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n <g fill-rule=\"evenodd\">\n <path d=\"M56,107.313709 L53.6568542,109.656854 C50.5326599,112.781049 45.4673401,112.781049 42.3431457,109.656854 C39.2189514,106.53266 39.2189514,101.46734 42.3431458,98.3431457 L58.3431458,82.3431457 C61.4673401,79.2189514 66.5326599,79.2189514 69.6568542,82.3431458 L85.6568542,98.3431458 C88.7810486,101.46734 88.7810486,106.53266 85.6568542,109.656854 C82.5326599,112.781049 77.4673401,112.781049 74.3431458,109.656854 L72,107.313708 L72,121.597798 C72,125.133636 68.418278,128 64,128 C59.581722,128 56,125.133636 56,121.597798 L56,107.313709 Z M0,40.0070969 C0,35.5848994 3.59071231,32 8,32 C12.418278,32 16,35.5881712 16,40.0070969 L16,71.9929031 C16,76.4151006 12.4092877,80 8,80 C3.581722,80 0,76.4118288 0,71.9929031 L0,40.0070969 Z M32,40.0070969 C32,35.5848994 35.5907123,32 40,32 C44.418278,32 48,35.5881712 48,40.0070969 L48,71.9929031 C48,76.4151006 44.4092877,80 40,80 C35.581722,80 32,76.4118288 32,71.9929031 L32,40.0070969 Z M80,40.0070969 C80,35.5848994 83.5907123,32 88,32 C92.418278,32 96,35.5881712 96,40.0070969 L96,71.9929031 C96,76.4151006 92.4092877,80 88,80 C83.581722,80 80,76.4118288 80,71.9929031 L80,40.0070969 Z M56,8.00709688 C56,3.58489938 59.5907123,0 64,0 C68.418278,0 72,3.58817117 72,8.00709688 L72,39.9929031 C72,44.4151006 68.4092877,48 64,48 C59.581722,48 56,44.4118288 56,39.9929031 L56,8.00709688 Z M112,40.0070969 C112,35.5848994 115.590712,32 120,32 C124.418278,32 128,35.5881712 128,40.0070969 L128,71.9929031 C128,76.4151006 124.409288,80 120,80 C115.581722,80 112,76.4118288 112,71.9929031 L112,40.0070969 Z\"></path>\n </g>\n</svg>" }, "$:/core/images/export-button": { "title": "$:/core/images/export-button", "tags": "$:/tags/Image", "text": "<svg class=\"tc-image-export-button tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n <g fill-rule=\"evenodd\">\n <path d=\"M8.00348646,127.999999 C8.00464867,128 8.00581094,128 8.00697327,128 L119.993027,128 C122.205254,128 124.207939,127.101378 125.657096,125.651198 L125.656838,125.65759 C127.104563,124.210109 128,122.21009 128,119.999949 L128,56.0000511 C128,51.5817449 124.409288,48 120,48 C115.581722,48 112,51.5797863 112,56.0000511 L112,112 L16,112 L16,56.0000511 C16,51.5817449 12.4092877,48 8,48 C3.581722,48 7.10542736e-15,51.5797863 7.10542736e-15,56.0000511 L7.10542736e-15,119.999949 C7.10542736e-15,124.418255 3.59071231,128 8,128 C8.00116233,128 8.0023246,128 8.00348681,127.999999 Z M56.6235633,27.3113724 L47.6580188,36.2769169 C44.5333664,39.4015692 39.4634864,39.4061295 36.339292,36.2819351 C33.2214548,33.1640979 33.2173444,28.0901742 36.3443103,24.9632084 L58.9616908,2.34582788 C60.5248533,0.782665335 62.5748436,0.000361191261 64.624516,2.38225238e-14 L64.6193616,0.00151809229 C66.6695374,0.000796251595 68.7211167,0.781508799 70.2854358,2.34582788 L92.9028163,24.9632084 C96.0274686,28.0878607 96.0320289,33.1577408 92.9078345,36.2819351 C89.7899973,39.3997724 84.7160736,39.4038827 81.5891078,36.2769169 L72.6235633,27.3113724 L72.6235633,88.5669606 C72.6235633,92.9781015 69.0418413,96.5662064 64.6235633,96.5662064 C60.2142756,96.5662064 56.6235633,92.984822 56.6235633,88.5669606 L56.6235633,27.3113724 L56.6235633,27.3113724 Z\"></path>\n </g>\n</svg>" }, "$:/core/images/file": { "title": "$:/core/images/file", "tags": "$:/tags/Image", "text": "<svg class=\"tc-image-file tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n <g fill-rule=\"nonzero\">\n <path d=\"M111.96811,30.5 L112,30.5 L112,119.999079 C112,124.417866 108.419113,128 104.000754,128 L23.9992458,128 C19.5813843,128 16,124.417687 16,119.999079 L16,8.00092105 C16,3.58213437 19.5808867,0 23.9992458,0 L81,0 L81,0.0201838424 C83.1589869,-0.071534047 85.3482153,0.707077645 86.9982489,2.35711116 L109.625176,24.9840387 C111.151676,26.510538 111.932942,28.4998414 111.96811,30.5 L111.96811,30.5 Z M81,8 L24,8 L24,120 L104,120 L104,30.5 L89.0003461,30.5 C84.5818769,30.5 81,26.9216269 81,22.4996539 L81,8 Z\"></path>\n <rect x=\"32\" y=\"36\" width=\"64\" height=\"8\" rx=\"4\"></rect>\n <rect x=\"32\" y=\"52\" width=\"64\" height=\"8\" rx=\"4\"></rect>\n <rect x=\"32\" y=\"68\" width=\"64\" height=\"8\" rx=\"4\"></rect>\n <rect x=\"32\" y=\"84\" width=\"64\" height=\"8\" rx=\"4\"></rect>\n <rect x=\"32\" y=\"100\" width=\"64\" height=\"8\" rx=\"4\"></rect>\n <rect x=\"32\" y=\"20\" width=\"40\" height=\"8\" rx=\"4\"></rect>\n </g>\n</svg>" }, "$:/core/images/fixed-height": { "title": "$:/core/images/fixed-height", "tags": "$:/tags/Image", "text": "<svg class=\"tc-image-fixed-height tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n <g fill-rule=\"evenodd\">\n <path d=\"M60,35.6568542 L50.8284271,44.8284271 C49.26633,46.3905243 46.73367,46.3905243 45.1715729,44.8284271 C43.6094757,43.26633 43.6094757,40.73367 45.1715729,39.1715729 L61.1715729,23.1715729 C62.73367,21.6094757 65.2663299,21.6094757 66.8284271,23.1715728 L82.8284278,39.1715728 C84.390525,40.7336699 84.390525,43.2663299 82.8284279,44.8284271 C81.2663308,46.3905243 78.7336709,46.3905243 77.1715737,44.8284272 L68,35.6568539 L68,93.3431461 L77.1715737,84.1715728 C78.7336709,82.6094757 81.2663308,82.6094757 82.8284279,84.1715729 C84.390525,85.7336701 84.390525,88.2663301 82.8284278,89.8284272 L66.8284271,105.828427 C65.2663299,107.390524 62.73367,107.390524 61.1715729,105.828427 L45.1715729,89.8284271 C43.6094757,88.26633 43.6094757,85.73367 45.1715729,84.1715729 C46.73367,82.6094757 49.26633,82.6094757 50.8284271,84.1715729 L60,93.3431458 L60,35.6568542 L60,35.6568542 Z M16,116 L112,116 C114.209139,116 116,114.209139 116,112 C116,109.790861 114.209139,108 112,108 L16,108 C13.790861,108 12,109.790861 12,112 C12,114.209139 13.790861,116 16,116 L16,116 Z M16,20 L112,20 C114.209139,20 116,18.209139 116,16 C116,13.790861 114.209139,12 112,12 L16,12 C13.790861,12 12,13.790861 12,16 C12,18.209139 13.790861,20 16,20 L16,20 Z\"></path>\n </g>\n</svg>" }, "$:/core/images/fold-all-button": { "title": "$:/core/images/fold-all-button", "tags": "$:/tags/Image", "text": "<svg class=\"tc-image-fold-all tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n <g fill-rule=\"evenodd\">\n <rect x=\"0\" y=\"0\" width=\"128\" height=\"16\" rx=\"8\"></rect>\n <rect x=\"0\" y=\"64\" width=\"128\" height=\"16\" rx=\"8\"></rect>\n <path d=\"M64.0292774,58.6235628 C61.9791013,58.6242848 59.9275217,57.8435723 58.3632024,56.279253 L35.7458219,33.6618725 C32.6211696,30.5372202 32.6166093,25.4673401 35.7408036,22.3431458 C38.8586409,19.2253085 43.9325646,19.2211982 47.0595304,22.348164 L64.0250749,39.3137085 L80.9906194,22.348164 C84.1152717,19.2235117 89.1851518,19.2189514 92.3093461,22.3431458 C95.4271834,25.460983 95.4312937,30.5349067 92.3043279,33.6618725 L69.6869474,56.279253 C68.1237851,57.8424153 66.0737951,58.6247195 64.0241231,58.6250809 Z\" transform=\"translate(64.024316, 39.313708) scale(1, -1) translate(-64.024316, -39.313708) \"></path>\n <path d=\"M64.0292774,123.621227 C61.9791013,123.621949 59.9275217,122.841236 58.3632024,121.276917 L35.7458219,98.6595365 C32.6211696,95.5348842 32.6166093,90.4650041 35.7408036,87.3408098 C38.8586409,84.2229725 43.9325646,84.2188622 47.0595304,87.345828 L64.0250749,104.311373 L80.9906194,87.345828 C84.1152717,84.2211757 89.1851518,84.2166154 92.3093461,87.3408098 C95.4271834,90.458647 95.4312937,95.5325707 92.3043279,98.6595365 L69.6869474,121.276917 C68.1237851,122.840079 66.0737951,123.622383 64.0241231,123.622745 Z\" transform=\"translate(64.024316, 104.311372) scale(1, -1) translate(-64.024316, -104.311372) \"></path>\n </g>\n</svg>" }, "$:/core/images/fold-button": { "title": "$:/core/images/fold-button", "tags": "$:/tags/Image", "text": "<svg class=\"tc-image-fold tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n <g fill-rule=\"evenodd\">\n <rect x=\"0\" y=\"0\" width=\"128\" height=\"16\" rx=\"8\"></rect>\n <path d=\"M64.0292774,63.6235628 C61.9791013,63.6242848 59.9275217,62.8435723 58.3632024,61.279253 L35.7458219,38.6618725 C32.6211696,35.5372202 32.6166093,30.4673401 35.7408036,27.3431458 C38.8586409,24.2253085 43.9325646,24.2211982 47.0595304,27.348164 L64.0250749,44.3137085 L80.9906194,27.348164 C84.1152717,24.2235117 89.1851518,24.2189514 92.3093461,27.3431458 C95.4271834,30.460983 95.4312937,35.5349067 92.3043279,38.6618725 L69.6869474,61.279253 C68.1237851,62.8424153 66.0737951,63.6247195 64.0241231,63.6250809 Z\" transform=\"translate(64.024316, 44.313708) scale(1, -1) translate(-64.024316, -44.313708) \"></path>\n <path d=\"M64.0049614,105.998482 C61.9547853,105.999204 59.9032057,105.218491 58.3388864,103.654172 L35.7215059,81.0367916 C32.5968535,77.9121393 32.5922933,72.8422592 35.7164876,69.7180649 C38.8343248,66.6002276 43.9082485,66.5961173 47.0352144,69.7230831 L64.0007589,86.6886276 L80.9663034,69.7230831 C84.0909557,66.5984308 89.1608358,66.5938705 92.2850301,69.7180649 C95.4028673,72.8359021 95.4069777,77.9098258 92.2800119,81.0367916 L69.6626314,103.654172 C68.099469,105.217334 66.0494791,105.999639 63.999807,106 Z\" transform=\"translate(64.000000, 86.688628) scale(1, -1) translate(-64.000000, -86.688628) \"></path>\n </g>\n</svg>" }, "$:/core/images/fold-others-button": { "title": "$:/core/images/fold-others-button", "tags": "$:/tags/Image", "text": "<svg class=\"tc-image-fold-others tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n <g fill-rule=\"evenodd\">\n <rect x=\"0\" y=\"56.0314331\" width=\"128\" height=\"16\" rx=\"8\"></rect>\n <path d=\"M101.657101,104.948818 C100.207918,103.498614 98.2051847,102.599976 95.9929031,102.599976 L72,102.599976 L72,78.6070725 C72,76.3964271 71.1036108,74.3936927 69.6545293,72.9441002 L69.6571005,72.9488183 C68.2079177,71.4986143 66.2051847,70.5999756 63.9929031,70.5999756 L32.0070969,70.5999756 C27.5881712,70.5999756 24,74.1816976 24,78.5999756 C24,83.0092633 27.5848994,86.5999756 32.0070969,86.5999756 L56,86.5999756 L56,110.592879 C56,112.803524 56.8963895,114.806259 58.3454713,116.255852 L58.3429,116.251133 C59.7920828,117.701337 61.7948156,118.599976 64.0070969,118.599976 L88,118.599976 L88,142.592879 C88,147.011804 91.581722,150.599976 96,150.599976 C100.409288,150.599976 104,147.015076 104,142.592879 L104,110.607072 C104,108.396427 103.103611,106.393693 101.654529,104.9441 Z\" transform=\"translate(64.000000, 110.599976) rotate(-45.000000) translate(-64.000000, -110.599976) \"></path>\n <path d=\"M101.725643,11.7488671 C100.27646,10.2986632 98.2737272,9.40002441 96.0614456,9.40002441 L72.0685425,9.40002441 L72.0685425,-14.5928787 C72.0685425,-16.8035241 71.1721533,-18.8062584 69.7230718,-20.255851 L69.725643,-20.2511329 C68.2764602,-21.7013368 66.2737272,-22.5999756 64.0614456,-22.5999756 L32.0756394,-22.5999756 C27.6567137,-22.5999756 24.0685425,-19.0182536 24.0685425,-14.5999756 C24.0685425,-10.1906879 27.6534419,-6.59997559 32.0756394,-6.59997559 L56.0685425,-6.59997559 L56.0685425,17.3929275 C56.0685425,19.6035732 56.964932,21.6063078 58.4140138,23.0559004 L58.4114425,23.0511823 C59.8606253,24.5013859 61.8633581,25.4000244 64.0756394,25.4000244 L88.0685425,25.4000244 L88.0685425,49.3929275 C88.0685425,53.8118532 91.6502645,57.4000244 96.0685425,57.4000244 C100.47783,57.4000244 104.068542,53.815125 104.068542,49.3929275 L104.068542,17.4071213 C104.068542,15.1964759 103.172153,13.1937416 101.723072,11.744149 Z\" transform=\"translate(64.068542, 17.400024) scale(1, -1) rotate(-45.000000) translate(-64.068542, -17.400024) \"></path>\n </g>\n</svg>" }, "$:/core/images/folder": { "title": "$:/core/images/folder", "tags": "$:/tags/Image", "text": "<svg class=\"tc-image-folder tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n <g fill-rule=\"evenodd\">\n <path d=\"M55.6943257,128.000004 L7.99859666,128.000004 C3.5810937,128.000004 0,124.413822 0,119.996384 L0,48.0036243 C0,43.5833471 3.58387508,40.0000044 7.99859666,40.0000044 L16,40.0000044 L16,31.9999914 C16,27.5817181 19.5783731,24 24.0003461,24 L55.9996539,24 C60.4181231,24 64,27.5800761 64,31.9999914 L64,40.0000044 L104.001403,40.0000044 C108.418906,40.0000044 112,43.5861868 112,48.0036243 L112,59.8298353 L104,59.7475921 L104,51.9994189 C104,49.7887607 102.207895,48.0000044 99.9972215,48.0000044 L56,48.0000044 L56,36.0000255 C56,33.7898932 54.2072328,32 51.9957423,32 L28.0042577,32 C25.7890275,32 24,33.7908724 24,36.0000255 L24,48.0000044 L12.0027785,48.0000044 C9.78987688,48.0000044 8,49.7906032 8,51.9994189 L8,116.00059 C8,118.211248 9.79210499,120.000004 12.0027785,120.000004 L58.7630167,120.000004 L55.6943257,128.000004 L55.6943257,128.000004 Z\"></path>\n <path d=\"M23.8728955,55.5 L119.875702,55.5 C124.293205,55.5 126.87957,59.5532655 125.650111,64.5630007 L112.305967,118.936999 C111.077582,123.942356 106.497904,128 102.083183,128 L6.08037597,128 C1.66287302,128 -0.923492342,123.946735 0.305967145,118.936999 L13.650111,64.5630007 C14.878496,59.5576436 19.4581739,55.5 23.8728955,55.5 L23.8728955,55.5 L23.8728955,55.5 Z M25.6530124,64 L113.647455,64 C115.858129,64 117.151473,66.0930612 116.538306,68.6662267 L105.417772,115.333773 C104.803671,117.910859 102.515967,120 100.303066,120 L12.3086228,120 C10.0979492,120 8.8046054,117.906939 9.41777189,115.333773 L20.5383062,68.6662267 C21.1524069,66.0891409 23.4401107,64 25.6530124,64 L25.6530124,64 L25.6530124,64 Z\"></path>\n </g>\n</svg>" }, "$:/core/images/full-screen-button": { "title": "$:/core/images/full-screen-button", "tags": "$:/tags/Image", "text": "<svg class=\"tc-image-full-screen-button tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n <g>\n <g>\n <path d=\"M5.29777586e-31,8 C1.59060409e-15,3.581722 3.581722,0 8,0 L40,0 C44.418278,0 48,3.581722 48,8 C48,12.418278 44.418278,16 40,16 L16,16 L16,40 C16,44.418278 12.418278,48 8,48 C3.581722,48 -3.55271368e-15,44.418278 0,40 L3.55271368e-15,8 Z\"></path>\n </g>\n <g transform=\"translate(104.000000, 104.000000) rotate(-180.000000) translate(-104.000000, -104.000000) translate(80.000000, 80.000000)\">\n <path d=\"M5.29777586e-31,8 C1.59060409e-15,3.581722 3.581722,0 8,0 L40,0 C44.418278,0 48,3.581722 48,8 C48,12.418278 44.418278,16 40,16 L16,16 L16,40 C16,44.418278 12.418278,48 8,48 C3.581722,48 -3.55271368e-15,44.418278 0,40 L3.55271368e-15,8 Z\"></path>\n </g>\n <g transform=\"translate(24.000000, 104.000000) rotate(-90.000000) translate(-24.000000, -104.000000) translate(0.000000, 80.000000)\">\n <path d=\"M5.29777586e-31,8 C1.59060409e-15,3.581722 3.581722,0 8,0 L40,0 C44.418278,0 48,3.581722 48,8 C48,12.418278 44.418278,16 40,16 L16,16 L16,40 C16,44.418278 12.418278,48 8,48 C3.581722,48 -3.55271368e-15,44.418278 0,40 L3.55271368e-15,8 Z\"></path>\n </g>\n <g transform=\"translate(104.000000, 24.000000) rotate(90.000000) translate(-104.000000, -24.000000) translate(80.000000, 0.000000)\">\n <path d=\"M5.29777586e-31,8 C1.59060409e-15,3.581722 3.581722,0 8,0 L40,0 C44.418278,0 48,3.581722 48,8 C48,12.418278 44.418278,16 40,16 L16,16 L16,40 C16,44.418278 12.418278,48 8,48 C3.581722,48 -3.55271368e-15,44.418278 0,40 L3.55271368e-15,8 Z\"></path>\n </g>\n </g>\n</svg>" }, "$:/core/images/github": { "title": "$:/core/images/github", "tags": "$:/tags/Image", "text": "<svg class=\"tc-image-github tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n <g fill-rule=\"evenodd\">\n <path d=\"M63.9383506,1.60695328 C28.6017227,1.60695328 -0.055756057,30.2970814 -0.055756057,65.6906208 C-0.055756057,94.003092 18.2804728,118.019715 43.7123154,126.493393 C46.9143781,127.083482 48.0812647,125.104717 48.0812647,123.405261 C48.0812647,121.886765 48.02626,117.85449 47.9948287,112.508284 C30.1929317,116.379268 26.4368926,103.916587 26.4368926,103.916587 C23.5255693,96.5129372 19.3294921,94.5420399 19.3294921,94.5420399 C13.5186324,90.5687739 19.7695302,90.6474524 19.7695302,90.6474524 C26.1933001,91.099854 29.5721638,97.2525155 29.5721638,97.2525155 C35.2808718,107.044059 44.5531024,104.215566 48.1991321,102.575118 C48.7806109,98.4366275 50.4346826,95.612068 52.2616263,94.0109598 C38.0507543,92.3941159 23.1091047,86.8944862 23.1091047,62.3389152 C23.1091047,55.3443933 25.6039634,49.6205298 29.6978889,45.1437211 C29.0378318,43.5229433 26.8415704,37.0044266 30.3265147,28.1845627 C30.3265147,28.1845627 35.6973364,26.4615028 47.9241083,34.7542205 C53.027764,33.330139 58.5046663,32.6220321 63.9462084,32.5944947 C69.3838216,32.6220321 74.856795,33.330139 79.9683085,34.7542205 C92.1872225,26.4615028 97.5501864,28.1845627 97.5501864,28.1845627 C101.042989,37.0044266 98.8467271,43.5229433 98.190599,45.1437211 C102.292382,49.6205298 104.767596,55.3443933 104.767596,62.3389152 C104.767596,86.9574291 89.8023734,92.3744463 75.5482834,93.9598188 C77.8427675,95.9385839 79.8897303,99.8489072 79.8897303,105.828476 C79.8897303,114.392635 79.8111521,121.304544 79.8111521,123.405261 C79.8111521,125.120453 80.966252,127.114954 84.2115327,126.489459 C109.623731,117.996111 127.944244,93.9952241 127.944244,65.6906208 C127.944244,30.2970814 99.2867652,1.60695328 63.9383506,1.60695328\"></path>\n </g>\n </svg>\n" }, "$:/core/images/globe": { "title": "$:/core/images/globe", "tags": "$:/tags/Image", "text": "<svg class=\"tc-image-globe tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n <g fill-rule=\"evenodd\">\n <path d=\"M72.8111354,37.1275855 C72.8111354,37.9789875 72.8111354,38.8303894 72.8111354,39.6817913 C72.8111354,41.8784743 73.7885604,46.5631866 72.8111354,48.5143758 C71.3445471,51.4420595 68.1617327,52.0543531 66.4170946,54.3812641 C65.2352215,55.9575873 61.7987417,64.9821523 62.7262858,67.3005778 C66.6959269,77.2228204 74.26087,70.4881886 80.6887657,76.594328 C81.5527211,77.415037 83.5758191,78.8666631 83.985137,79.8899578 C87.2742852,88.1128283 76.4086873,94.8989524 87.7419325,106.189751 C88.9872885,107.430443 91.555495,102.372895 91.8205061,101.575869 C92.6726866,99.0129203 98.5458765,96.1267309 100.908882,94.5234439 C102.928056,93.1534443 105.782168,91.8557166 107.236936,89.7775886 C109.507391,86.5342557 108.717505,82.2640435 110.334606,79.0328716 C112.473794,74.7585014 114.163418,69.3979002 116.332726,65.0674086 C120.230862,57.2857361 121.054075,67.1596684 121.400359,67.5059523 C121.757734,67.8633269 122.411167,67.5059523 122.916571,67.5059523 C123.011132,67.5059523 124.364019,67.6048489 124.432783,67.5059523 C125.0832,66.5705216 123.390209,49.5852316 123.114531,48.2089091 C121.710578,41.1996597 116.17083,32.4278331 111.249523,27.7092761 C104.975994,21.6942076 104.160516,11.5121686 92.9912146,12.7547535 C92.7872931,12.7774397 87.906794,22.9027026 85.2136766,26.2672064 C81.486311,30.9237934 82.7434931,22.1144904 78.6876623,22.1144904 C78.6065806,22.1144904 77.5045497,22.0107615 77.4353971,22.1144904 C76.8488637,22.9942905 75.9952305,26.0101404 75.1288269,26.5311533 C74.8635477,26.6906793 73.4071369,26.2924966 73.2826811,26.5311533 C71.0401728,30.8313939 81.5394677,28.7427264 79.075427,34.482926 C76.7225098,39.9642538 72.747373,32.4860199 72.747373,43.0434079\"></path>\n <path d=\"M44.4668556,7.01044608 C54.151517,13.1403033 45.1489715,19.2084878 47.1611905,23.2253896 C48.8157833,26.5283781 51.4021933,28.6198851 48.8753629,33.038878 C46.8123257,36.6467763 42.0052989,37.0050492 39.251679,39.7621111 C36.2115749,42.8060154 33.7884281,48.7028116 32.4624592,52.6732691 C30.8452419,57.5158356 47.0088721,59.5388126 44.5246867,63.6811917 C43.1386839,65.9923513 37.7785192,65.1466282 36.0880227,63.8791519 C34.9234453,63.0059918 32.4946425,63.3331166 31.6713597,62.0997342 C29.0575851,58.1839669 29.4107339,54.0758543 28.0457962,49.9707786 C27.1076833,47.1493864 21.732611,47.8501656 20.2022714,49.3776393 C19.6790362,49.8998948 19.8723378,51.1703278 19.8723378,51.8829111 C19.8723378,57.1682405 26.9914913,55.1986414 26.9914913,58.3421973 C26.9914913,72.9792302 30.9191897,64.8771867 38.1313873,69.6793121 C48.1678018,76.3618966 45.9763926,76.981595 53.0777543,84.0829567 C56.7511941,87.7563965 60.8192437,87.7689005 62.503478,93.3767069 C64.1046972,98.7081071 53.1759798,98.7157031 50.786754,100.825053 C49.663965,101.816317 47.9736094,104.970571 46.5680513,105.439676 C44.7757187,106.037867 43.334221,105.93607 41.6242359,107.219093 C39.1967302,109.040481 37.7241465,112.151588 37.6034934,112.030935 C35.4555278,109.88297 34.0848666,96.5511248 33.7147244,93.7726273 C33.1258872,89.3524817 28.1241923,88.2337027 26.7275443,84.7420826 C25.1572737,80.8164061 28.2518481,75.223612 25.599097,70.9819941 C19.0797019,60.557804 13.7775712,56.4811506 10.2493953,44.6896152 C9.3074899,41.5416683 13.5912267,38.1609942 15.1264825,35.8570308 C17.0029359,33.0410312 17.7876232,30.0028946 19.8723378,27.2224065 C22.146793,24.1888519 40.8551166,9.46076832 43.8574051,8.63490613 L44.4668556,7.01044608 Z\"></path>\n <path d=\"M64,126 C98.2416545,126 126,98.2416545 126,64 C126,29.7583455 98.2416545,2 64,2 C29.7583455,2 2,29.7583455 2,64 C2,98.2416545 29.7583455,126 64,126 Z M64,120 C94.927946,120 120,94.927946 120,64 C120,33.072054 94.927946,8 64,8 C33.072054,8 8,33.072054 8,64 C8,94.927946 33.072054,120 64,120 Z\"></path>\n </g>\n</svg>" }, "$:/core/images/heading-1": { "title": "$:/core/images/heading-1", "tags": "$:/tags/Image", "text": "<svg class=\"tc-image-heading-1 tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n <g fill-rule=\"evenodd\">\n <path d=\"M14,30 L27.25,30 L27.25,60.104 L61.7,60.104 L61.7,30 L74.95,30 L74.95,105.684 L61.7,105.684 L61.7,71.552 L27.25,71.552 L27.25,105.684 L14,105.684 L14,30 Z M84.3350766,43.78 C86.8790893,43.78 89.3523979,43.5680021 91.7550766,43.144 C94.1577553,42.7199979 96.3307336,42.0133383 98.2740766,41.024 C100.21742,40.0346617 101.87807,38.7626744 103.256077,37.208 C104.634084,35.6533256 105.535075,33.7453446 105.959077,31.484 L115.817077,31.484 L115.817077,105.684 L102.567077,105.684 L102.567077,53.32 L84.3350766,53.32 L84.3350766,43.78 Z\"></path>\n </g>\n</svg>" }, "$:/core/images/heading-2": { "title": "$:/core/images/heading-2", "tags": "$:/tags/Image", "text": "<svg class=\"tc-image-heading-2 tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n <g fill-rule=\"evenodd\">\n <path d=\"M6,30 L19.25,30 L19.25,60.104 L53.7,60.104 L53.7,30 L66.95,30 L66.95,105.684 L53.7,105.684 L53.7,71.552 L19.25,71.552 L19.25,105.684 L6,105.684 L6,30 Z M125.519077,105.684 L74.8510766,105.684 C74.9217436,99.5359693 76.4057288,94.1653563 79.3030766,89.572 C82.2004244,84.9786437 86.1577182,80.986017 91.1750766,77.594 C93.5777553,75.8273245 96.0863969,74.113675 98.7010766,72.453 C101.315756,70.792325 103.718399,69.0080095 105.909077,67.1 C108.099754,65.1919905 109.901736,63.1250111 111.315077,60.899 C112.728417,58.6729889 113.47041,56.1113478 113.541077,53.214 C113.541077,51.8713266 113.382078,50.4403409 113.064077,48.921 C112.746075,47.4016591 112.127748,45.9883399 111.209077,44.681 C110.290405,43.3736601 109.018418,42.2783377 107.393077,41.395 C105.767735,40.5116622 103.647756,40.07 101.033077,40.07 C98.6303979,40.07 96.6340846,40.5469952 95.0440766,41.501 C93.4540687,42.4550048 92.1820814,43.762325 91.2280766,45.423 C90.2740719,47.083675 89.5674123,49.0446554 89.1080766,51.306 C88.648741,53.5673446 88.3837436,56.0053203 88.3130766,58.62 L76.2290766,58.62 C76.2290766,54.5213128 76.7767378,50.7230175 77.8720766,47.225 C78.9674154,43.7269825 80.610399,40.7060127 82.8010766,38.162 C84.9917542,35.6179873 87.6593942,33.6216739 90.8040766,32.173 C93.948759,30.7243261 97.6057224,30 101.775077,30 C106.297766,30 110.078395,30.7419926 113.117077,32.226 C116.155758,33.7100074 118.611401,35.5826554 120.484077,37.844 C122.356753,40.1053446 123.681739,42.5609868 124.459077,45.211 C125.236414,47.8610133 125.625077,50.3873213 125.625077,52.79 C125.625077,55.7580148 125.165748,58.4433213 124.247077,60.846 C123.328405,63.2486787 122.091751,65.4569899 120.537077,67.471 C118.982402,69.4850101 117.215753,71.3399915 115.237077,73.036 C113.2584,74.7320085 111.209087,76.3219926 109.089077,77.806 C106.969066,79.2900074 104.849087,80.7033266 102.729077,82.046 C100.609066,83.3886734 98.6480856,84.7313266 96.8460766,86.074 C95.0440676,87.4166734 93.47175,88.8123261 92.1290766,90.261 C90.7864032,91.7096739 89.8677458,93.2466585 89.3730766,94.872 L125.519077,94.872 L125.519077,105.684 Z\"></path>\n </g>\n</svg>" }, "$:/core/images/heading-3": { "title": "$:/core/images/heading-3", "tags": "$:/tags/Image", "text": "<svg class=\"tc-image-heading-3 tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n <g fill-rule=\"evenodd\">\n <path d=\"M6,30 L19.25,30 L19.25,60.104 L53.7,60.104 L53.7,30 L66.95,30 L66.95,105.684 L53.7,105.684 L53.7,71.552 L19.25,71.552 L19.25,105.684 L6,105.684 L6,30 Z M94.8850766,62.224 C96.8637532,62.294667 98.8424001,62.1533351 100.821077,61.8 C102.799753,61.4466649 104.566402,60.8283378 106.121077,59.945 C107.675751,59.0616623 108.930072,57.8426744 109.884077,56.288 C110.838081,54.7333256 111.315077,52.8253446 111.315077,50.564 C111.315077,47.3839841 110.237421,44.8400095 108.082077,42.932 C105.926733,41.0239905 103.153094,40.07 99.7610766,40.07 C97.641066,40.07 95.8037511,40.4939958 94.2490766,41.342 C92.6944022,42.1900042 91.4047484,43.3383261 90.3800766,44.787 C89.3554048,46.2356739 88.5957458,47.860991 88.1010766,49.663 C87.6064075,51.465009 87.3944096,53.3199905 87.4650766,55.228 L75.3810766,55.228 C75.5224107,51.623982 76.1937373,48.2850154 77.3950766,45.211 C78.596416,42.1369846 80.2393995,39.4693446 82.3240766,37.208 C84.4087537,34.9466554 86.9350618,33.1800064 89.9030766,31.908 C92.8710915,30.6359936 96.2277246,30 99.9730766,30 C102.870424,30 105.714729,30.4239958 108.506077,31.272 C111.297424,32.1200042 113.806065,33.3566585 116.032077,34.982 C118.258088,36.6073415 120.042403,38.6743208 121.385077,41.183 C122.72775,43.6916792 123.399077,46.5713171 123.399077,49.822 C123.399077,53.5673521 122.551085,56.8356527 120.855077,59.627 C119.159068,62.4183473 116.509095,64.4499936 112.905077,65.722 L112.905077,65.934 C117.145098,66.7820042 120.448731,68.8843166 122.816077,72.241 C125.183422,75.5976835 126.367077,79.6786426 126.367077,84.484 C126.367077,88.017351 125.660417,91.1796527 124.247077,93.971 C122.833736,96.7623473 120.925755,99.129657 118.523077,101.073 C116.120398,103.016343 113.329093,104.517995 110.149077,105.578 C106.969061,106.638005 103.612428,107.168 100.079077,107.168 C95.7683884,107.168 92.005426,106.549673 88.7900766,105.313 C85.5747272,104.076327 82.8894207,102.327345 80.7340766,100.066 C78.5787325,97.8046554 76.9357489,95.0840159 75.8050766,91.904 C74.6744043,88.7239841 74.0737436,85.1906861 74.0030766,81.304 L86.0870766,81.304 C85.9457426,85.8266893 87.0587315,89.5896517 89.4260766,92.593 C91.7934218,95.5963483 95.3443863,97.098 100.079077,97.098 C104.107097,97.098 107.481396,95.9496782 110.202077,93.653 C112.922757,91.3563219 114.283077,88.0880212 114.283077,83.848 C114.283077,80.9506522 113.717749,78.6540085 112.587077,76.958 C111.456404,75.2619915 109.972419,73.9723378 108.135077,73.089 C106.297734,72.2056623 104.230755,71.6580011 101.934077,71.446 C99.6373985,71.2339989 97.2877553,71.163333 94.8850766,71.234 L94.8850766,62.224 Z\"></path>\n </g>\n</svg>" }, "$:/core/images/heading-4": { "title": "$:/core/images/heading-4", "tags": "$:/tags/Image", "text": "<svg class=\"tc-image-heading-4 tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n <g fill-rule=\"evenodd\">\n <path d=\"M8,30 L21.25,30 L21.25,60.104 L55.7,60.104 L55.7,30 L68.95,30 L68.95,105.684 L55.7,105.684 L55.7,71.552 L21.25,71.552 L21.25,105.684 L8,105.684 L8,30 Z M84.5890766,78.548 L107.061077,78.548 L107.061077,45.9 L106.849077,45.9 L84.5890766,78.548 Z M128.049077,88.088 L118.509077,88.088 L118.509077,105.684 L107.061077,105.684 L107.061077,88.088 L75.2610766,88.088 L75.2610766,76.11 L107.061077,31.484 L118.509077,31.484 L118.509077,78.548 L128.049077,78.548 L128.049077,88.088 Z\"></path>\n </g>\n</svg>" }, "$:/core/images/heading-5": { "title": "$:/core/images/heading-5", "tags": "$:/tags/Image", "text": "<svg class=\"tc-image-heading-5 tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n <g fill-rule=\"evenodd\">\n <path d=\"M6,30 L19.25,30 L19.25,60.104 L53.7,60.104 L53.7,30 L66.95,30 L66.95,105.684 L53.7,105.684 L53.7,71.552 L19.25,71.552 L19.25,105.684 L6,105.684 L6,30 Z M83.7550766,31.484 L122.127077,31.484 L122.127077,42.296 L92.7650766,42.296 L88.9490766,61.164 L89.1610766,61.376 C90.7864181,59.5386575 92.8533974,58.1430048 95.3620766,57.189 C97.8707558,56.2349952 100.361731,55.758 102.835077,55.758 C106.509762,55.758 109.795729,56.3763272 112.693077,57.613 C115.590424,58.8496729 118.0284,60.5809889 120.007077,62.807 C121.985753,65.0330111 123.487405,67.6653181 124.512077,70.704 C125.536748,73.7426819 126.049077,77.028649 126.049077,80.562 C126.049077,83.5300148 125.572081,86.5863176 124.618077,89.731 C123.664072,92.8756824 122.144754,95.7376538 120.060077,98.317 C117.9754,100.896346 115.30776,103.016325 112.057077,104.677 C108.806394,106.337675 104.919766,107.168 100.397077,107.168 C96.7930586,107.168 93.454092,106.691005 90.3800766,105.737 C87.3060613,104.782995 84.6030883,103.35201 82.2710766,101.444 C79.939065,99.5359905 78.0840835,97.1863473 76.7060766,94.395 C75.3280697,91.6036527 74.5684107,88.3353521 74.4270766,84.59 L86.5110766,84.59 C86.8644117,88.6180201 88.2423979,91.7096559 90.6450766,93.865 C93.0477553,96.0203441 96.2277235,97.098 100.185077,97.098 C102.729089,97.098 104.884401,96.6740042 106.651077,95.826 C108.417752,94.9779958 109.848738,93.8120074 110.944077,92.328 C112.039415,90.8439926 112.816741,89.1126766 113.276077,87.134 C113.735412,85.1553234 113.965077,83.0353446 113.965077,80.774 C113.965077,78.7246564 113.682413,76.763676 113.117077,74.891 C112.55174,73.018324 111.703749,71.3753404 110.573077,69.962 C109.442404,68.5486596 107.976086,67.4180042 106.174077,66.57 C104.372068,65.7219958 102.269755,65.298 99.8670766,65.298 C97.3230639,65.298 94.9380878,65.7749952 92.7120766,66.729 C90.4860655,67.6830048 88.8784149,69.4673203 87.8890766,72.082 L75.8050766,72.082 L83.7550766,31.484 Z\"></path>\n </g>\n</svg>" }, "$:/core/images/heading-6": { "title": "$:/core/images/heading-6", "tags": "$:/tags/Image", "text": "<svg class=\"tc-image-heading-6 tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n <g fill-rule=\"evenodd\">\n <path d=\"M6,30 L19.25,30 L19.25,60.104 L53.7,60.104 L53.7,30 L66.95,30 L66.95,105.684 L53.7,105.684 L53.7,71.552 L19.25,71.552 L19.25,105.684 L6,105.684 L6,30 Z M112.587077,50.246 C112.304409,47.2073181 111.226753,44.751676 109.354077,42.879 C107.481401,41.006324 104.955093,40.07 101.775077,40.07 C99.584399,40.07 97.6940846,40.4763293 96.1040766,41.289 C94.5140687,42.1016707 93.1714154,43.1793266 92.0760766,44.522 C90.9807378,45.8646734 90.0974133,47.401658 89.4260766,49.133 C88.7547399,50.864342 88.2070787,52.6839905 87.7830766,54.592 C87.3590745,56.5000095 87.0587442,58.390324 86.8820766,60.263 C86.7054091,62.135676 86.5464107,63.8846585 86.4050766,65.51 L86.6170766,65.722 C88.2424181,62.7539852 90.4860623,60.5456739 93.3480766,59.097 C96.2100909,57.6483261 99.3017267,56.924 102.623077,56.924 C106.297762,56.924 109.583729,57.5599936 112.481077,58.832 C115.378424,60.1040064 117.834067,61.8529889 119.848077,64.079 C121.862087,66.3050111 123.399071,68.9373181 124.459077,71.976 C125.519082,75.0146819 126.049077,78.300649 126.049077,81.834 C126.049077,85.438018 125.466082,88.7769846 124.300077,91.851 C123.134071,94.9250154 121.455754,97.6103219 119.265077,99.907 C117.074399,102.203678 114.459758,103.987994 111.421077,105.26 C108.382395,106.532006 105.025762,107.168 101.351077,107.168 C95.9097161,107.168 91.4400941,106.16101 87.9420766,104.147 C84.4440591,102.13299 81.6880867,99.3770175 79.6740766,95.879 C77.6600666,92.3809825 76.2644138,88.2823568 75.4870766,83.583 C74.7097394,78.8836432 74.3210766,73.8133605 74.3210766,68.372 C74.3210766,63.9199777 74.7980719,59.4326893 75.7520766,54.91 C76.7060814,50.3873107 78.278399,46.2710186 80.4690766,42.561 C82.6597542,38.8509815 85.5393921,35.8300117 89.1080766,33.498 C92.6767611,31.1659883 97.0757171,30 102.305077,30 C105.273091,30 108.064397,30.4946617 110.679077,31.484 C113.293756,32.4733383 115.608067,33.8513245 117.622077,35.618 C119.636087,37.3846755 121.27907,39.5046543 122.551077,41.978 C123.823083,44.4513457 124.529743,47.2073181 124.671077,50.246 L112.587077,50.246 Z M100.927077,97.098 C103.117754,97.098 105.025735,96.6563378 106.651077,95.773 C108.276418,94.8896623 109.636738,93.7413404 110.732077,92.328 C111.827415,90.9146596 112.640074,89.271676 113.170077,87.399 C113.700079,85.526324 113.965077,83.6006766 113.965077,81.622 C113.965077,79.6433234 113.700079,77.7353425 113.170077,75.898 C112.640074,74.0606575 111.827415,72.4530069 110.732077,71.075 C109.636738,69.6969931 108.276418,68.5840042 106.651077,67.736 C105.025735,66.8879958 103.117754,66.464 100.927077,66.464 C98.736399,66.464 96.8107516,66.8703293 95.1500766,67.683 C93.4894017,68.4956707 92.0937489,69.5909931 90.9630766,70.969 C89.8324043,72.3470069 88.9844128,73.9546575 88.4190766,75.792 C87.8537405,77.6293425 87.5710766,79.5726564 87.5710766,81.622 C87.5710766,83.6713436 87.8537405,85.6146575 88.4190766,87.452 C88.9844128,89.2893425 89.8324043,90.9323261 90.9630766,92.381 C92.0937489,93.8296739 93.4894017,94.9779958 95.1500766,95.826 C96.8107516,96.6740042 98.736399,97.098 100.927077,97.098 L100.927077,97.098 Z\"></path>\n </g>\n</svg>" }, "$:/core/images/help": { "title": "$:/core/images/help", "tags": "$:/tags/Image", "text": "<svg class=\"tc-image-help tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n <g fill-rule=\"evenodd\">\n <path d=\"M36.0548906,111.44117 C30.8157418,115.837088 20.8865444,118.803477 9.5,118.803477 C7.86465619,118.803477 6.25937294,118.742289 4.69372699,118.624467 C12.612543,115.984876 18.7559465,110.02454 21.0611049,102.609942 C8.74739781,92.845129 1.04940554,78.9359851 1.04940554,63.5 C1.04940554,33.9527659 29.2554663,10 64.0494055,10 C98.8433448,10 127.049406,33.9527659 127.049406,63.5 C127.049406,93.0472341 98.8433448,117 64.0494055,117 C53.9936953,117 44.48824,114.999337 36.0548906,111.44117 L36.0548906,111.44117 Z M71.4042554,77.5980086 C71.406883,77.2865764 71.4095079,76.9382011 71.4119569,76.5610548 C71.4199751,75.3262169 71.4242825,74.0811293 71.422912,72.9158546 C71.4215244,71.736154 71.4143321,70.709635 71.4001396,69.8743525 C71.4078362,68.5173028 71.9951951,67.7870427 75.1273009,65.6385471 C75.2388969,65.5619968 76.2124091,64.8981068 76.5126553,64.6910879 C79.6062455,62.5580654 81.5345849,60.9050204 83.2750652,58.5038955 C85.6146327,55.2762841 86.8327108,51.426982 86.8327108,46.8554323 C86.8327108,33.5625756 76.972994,24.9029551 65.3778484,24.9029551 C54.2752771,24.9029551 42.8794554,34.5115163 41.3121702,47.1975534 C40.9043016,50.4989536 43.2499725,53.50591 46.5513726,53.9137786 C49.8527728,54.3216471 52.8597292,51.9759763 53.2675978,48.6745761 C54.0739246,42.1479456 60.2395837,36.9492759 65.3778484,36.9492759 C70.6427674,36.9492759 74.78639,40.5885487 74.78639,46.8554323 C74.78639,50.4892974 73.6853224,52.008304 69.6746221,54.7736715 C69.4052605,54.9593956 68.448509,55.6118556 68.3131127,55.7047319 C65.6309785,57.5445655 64.0858213,58.803255 62.6123358,60.6352315 C60.5044618,63.2559399 59.3714208,66.3518252 59.3547527,69.9487679 C59.3684999,70.8407274 59.3752803,71.8084521 59.3765995,72.9300232 C59.3779294,74.0607297 59.3737237,75.2764258 59.36589,76.482835 C59.3634936,76.8518793 59.3609272,77.1924914 59.3583633,77.4963784 C59.3568319,77.6778944 59.3556368,77.8074256 59.3549845,77.8730928 C59.3219814,81.1994287 61.9917551,83.9227111 65.318091,83.9557142 C68.644427,83.9887173 71.3677093,81.3189435 71.4007124,77.9926076 C71.4014444,77.9187458 71.402672,77.7856841 71.4042554,77.5980086 Z M65.3778489,102.097045 C69.5359735,102.097045 72.9067994,98.7262189 72.9067994,94.5680944 C72.9067994,90.4099698 69.5359735,87.0391439 65.3778489,87.0391439 C61.2197243,87.0391439 57.8488984,90.4099698 57.8488984,94.5680944 C57.8488984,98.7262189 61.2197243,102.097045 65.3778489,102.097045 Z\"></path>\n </g>\n</svg>" }, "$:/core/images/home-button": { "title": "$:/core/images/home-button", "tags": "$:/tags/Image", "text": "<svg class=\"tc-image-home-button tc-image-button\" viewBox=\"0 0 128 128\" width=\"22pt\" height=\"22pt\">\n <g fill-rule=\"evenodd\">\n <path d=\"M112.9847,119.501583 C112.99485,119.336814 113,119.170705 113,119.003406 L113,67.56802 C116.137461,70.5156358 121.076014,70.4518569 124.133985,67.3938855 C127.25818,64.2696912 127.260618,59.2068102 124.131541,56.0777326 L70.3963143,2.34250601 C68.8331348,0.779326498 66.7828947,-0.000743167069 64.7337457,1.61675364e-05 C62.691312,-0.00409949529 60.6426632,0.777559815 59.077717,2.34250601 L33,28.420223 L33,28.420223 L33,8.00697327 C33,3.58484404 29.4092877,0 25,0 C20.581722,0 17,3.59075293 17,8.00697327 L17,44.420223 L5.3424904,56.0777326 C2.21694607,59.2032769 2.22220878,64.2760483 5.34004601,67.3938855 C8.46424034,70.5180798 13.5271213,70.5205187 16.6561989,67.3914411 L17,67.04764 L17,119.993027 C17,119.994189 17.0000002,119.995351 17.0000007,119.996514 C17.0000002,119.997675 17,119.998838 17,120 C17,124.418278 20.5881049,128 24.9992458,128 L105.000754,128 C109.418616,128 113,124.409288 113,120 C113,119.832611 112.99485,119.666422 112.9847,119.501583 Z M97,112 L97,51.5736087 L97,51.5736087 L64.7370156,19.3106244 L33,51.04764 L33,112 L97,112 Z\"></path>\n </g>\n</svg>" }, "$:/core/images/import-button": { "title": "$:/core/images/import-button", "tags": "$:/tags/Image", "text": "<svg class=\"tc-image-import-button tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n <g fill-rule=\"evenodd\">\n <path d=\"M105.449437,94.2138951 C105.449437,94.2138951 110.049457,94.1897106 110.049457,99.4026111 C110.049457,104.615512 105.163246,104.615511 105.163246,104.615511 L45.0075072,105.157833 C45.0075072,105.157833 0.367531803,106.289842 0.367532368,66.6449212 C0.367532934,27.0000003 45.0428249,27.0000003 45.0428249,27.0000003 L105.532495,27.0000003 C105.532495,27.0000003 138.996741,25.6734987 138.996741,55.1771866 C138.996741,84.6808745 105.727102,82.8457535 105.727102,82.8457535 L56.1735087,82.8457535 C56.1735087,82.8457535 22.6899229,85.1500223 22.6899229,66.0913753 C22.6899229,47.0327282 56.1735087,49.3383013 56.1735087,49.3383013 L105.727102,49.3383013 C105.727102,49.3383013 111.245209,49.3383024 111.245209,54.8231115 C111.245209,60.3079206 105.727102,60.5074524 105.727102,60.5074524 L56.1735087,60.5074524 C56.1735087,60.5074524 37.48913,60.5074528 37.48913,66.6449195 C37.48913,72.7823862 56.1735087,71.6766023 56.1735087,71.6766023 L105.727102,71.6766029 C105.727102,71.6766029 127.835546,73.1411469 127.835546,55.1771866 C127.835546,35.5304025 105.727102,38.3035317 105.727102,38.3035317 L45.0428249,38.3035317 C45.0428249,38.3035317 11.5287276,38.3035313 11.5287276,66.6449208 C11.5287276,94.9863103 45.0428244,93.9579678 45.0428244,93.9579678 L105.449437,94.2138951 Z\" transform=\"translate(69.367532, 66.000000) rotate(-45.000000) translate(-69.367532, -66.000000) \"></path>\n </g>\n</svg>" }, "$:/core/images/info-button": { "title": "$:/core/images/info-button", "tags": "$:/tags/Image", "text": "<svg class=\"tc-image-info-button tc-image-button\" viewBox=\"0 0 128 128\" width=\"22pt\" height=\"22pt\">\n <g fill-rule=\"evenodd\">\n <g transform=\"translate(0.049406, 0.000000)\">\n <path d=\"M64,128 C99.346224,128 128,99.346224 128,64 C128,28.653776 99.346224,0 64,0 C28.653776,0 0,28.653776 0,64 C0,99.346224 28.653776,128 64,128 Z M64,112 C90.509668,112 112,90.509668 112,64 C112,37.490332 90.509668,16 64,16 C37.490332,16 16,37.490332 16,64 C16,90.509668 37.490332,112 64,112 Z\"></path>\n <circle cx=\"64\" cy=\"32\" r=\"8\"></circle>\n <rect x=\"56\" y=\"48\" width=\"16\" height=\"56\" rx=\"8\"></rect>\n </g>\n </g>\n</svg>" }, "$:/core/images/italic": { "title": "$:/core/images/italic", "tags": "$:/tags/Image", "text": "<svg class=\"tc-image-italic tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n <g fill-rule=\"evenodd\">\n <polygon points=\"66.7114846 0 89.1204482 0 62.4089636 128 40 128\"></polygon>\n </g>\n</svg>" }, "$:/core/images/left-arrow": { "created": "20150315234410875", "modified": "20150315235324760", "tags": "$:/tags/Image", "title": "$:/core/images/left-arrow", "text": "<svg class=\"tc-image-left-arrow tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n <path transform=\"rotate(135, 63.8945, 64.1752)\" d=\"m109.07576,109.35336c-1.43248,1.43361 -3.41136,2.32182 -5.59717,2.32182l-79.16816,0c-4.36519,0 -7.91592,-3.5444 -7.91592,-7.91666c0,-4.36337 3.54408,-7.91667 7.91592,-7.91667l71.25075,0l0,-71.25075c0,-4.3652 3.54442,-7.91592 7.91667,-7.91592c4.36336,0 7.91667,3.54408 7.91667,7.91592l0,79.16815c0,2.1825 -0.88602,4.16136 -2.3185,5.59467l-0.00027,-0.00056z\"/>\n</svg>\n" }, "$:/core/images/line-width": { "title": "$:/core/images/line-width", "tags": "$:/tags/Image", "text": "<svg class=\"tc-image-line-width tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n <g fill-rule=\"evenodd\">\n <path d=\"M128,-97 L112.992786,-97 C112.452362,-97 112,-96.5522847 112,-96 C112,-95.4438648 112.444486,-95 112.992786,-95 L128,-95 L128,-97 Z M128,-78.6794919 L111.216185,-88.3696322 C110.748163,-88.6398444 110.132549,-88.4782926 109.856406,-88 C109.578339,-87.5183728 109.741342,-86.9117318 110.216185,-86.6375814 L128,-76.3700908 L128,-78.6794919 Z M78.6794919,-128 L88.3696322,-111.216185 C88.6437826,-110.741342 88.4816272,-110.134474 88,-109.856406 C87.5217074,-109.580264 86.9077936,-109.748163 86.6375814,-110.216185 L76.3700908,-128 L78.6794919,-128 Z M97,-128 L97,-112.992786 C97,-112.444486 96.5561352,-112 96,-112 C95.4477153,-112 95,-112.452362 95,-112.992786 L95,-128 L97,-128 Z M115.629909,-128 L105.362419,-110.216185 C105.088268,-109.741342 104.481627,-109.578339 104,-109.856406 C103.521707,-110.132549 103.360156,-110.748163 103.630368,-111.216185 L113.320508,-128 L115.629909,-128 Z M128,-113.320508 L111.216185,-103.630368 C110.741342,-103.356217 110.134474,-103.518373 109.856406,-104 C109.580264,-104.478293 109.748163,-105.092206 110.216185,-105.362419 L128,-115.629909 L128,-113.320508 Z M48,-96 C48,-96.5522847 48.4523621,-97 48.9927864,-97 L79.0072136,-97 C79.5555144,-97 80,-96.5561352 80,-96 C80,-95.4477153 79.5476379,-95 79.0072136,-95 L48.9927864,-95 C48.4444856,-95 48,-95.4438648 48,-96 Z M54.4307806,-120 C54.706923,-120.478293 55.3225377,-120.639844 55.7905589,-120.369632 L81.7838153,-105.362419 C82.2586577,-105.088268 82.4216611,-104.481627 82.1435935,-104 C81.8674512,-103.521707 81.2518365,-103.360156 80.7838153,-103.630368 L54.7905589,-118.637581 C54.3157165,-118.911732 54.152713,-119.518373 54.4307806,-120 Z M104,-82.1435935 C104.478293,-82.4197359 105.092206,-82.2518365 105.362419,-81.7838153 L120.369632,-55.7905589 C120.643783,-55.3157165 120.481627,-54.7088482 120,-54.4307806 C119.521707,-54.1546382 118.907794,-54.3225377 118.637581,-54.7905589 L103.630368,-80.7838153 C103.356217,-81.2586577 103.518373,-81.865526 104,-82.1435935 Z M96,-80 C96.5522847,-80 97,-79.5476379 97,-79.0072136 L97,-48.9927864 C97,-48.4444856 96.5561352,-48 96,-48 C95.4477153,-48 95,-48.4523621 95,-48.9927864 L95,-79.0072136 C95,-79.5555144 95.4438648,-80 96,-80 Z M88,-82.1435935 C88.4782926,-81.8674512 88.6398444,-81.2518365 88.3696322,-80.7838153 L73.3624186,-54.7905589 C73.0882682,-54.3157165 72.4816272,-54.152713 72,-54.4307806 C71.5217074,-54.706923 71.3601556,-55.3225377 71.6303678,-55.7905589 L86.6375814,-81.7838153 C86.9117318,-82.2586577 87.5183728,-82.4216611 88,-82.1435935 Z M82.1435935,-88 C82.4197359,-87.5217074 82.2518365,-86.9077936 81.7838153,-86.6375814 L55.7905589,-71.6303678 C55.3157165,-71.3562174 54.7088482,-71.5183728 54.4307806,-72 C54.1546382,-72.4782926 54.3225377,-73.0922064 54.7905589,-73.3624186 L80.7838153,-88.3696322 C81.2586577,-88.6437826 81.865526,-88.4816272 82.1435935,-88 Z M1.30626177e-08,-41.9868843 L15.0170091,-57.9923909 L20.7983821,-52.9749272 L44.7207091,-81.2095939 L73.4260467,-42.1002685 L85.984793,-56.6159488 L104.48741,-34.0310661 L127.969109,-47.4978019 L127.969109,7.99473128e-07 L1.30626177e-08,7.99473128e-07 L1.30626177e-08,-41.9868843 Z M96,-84 C102.627417,-84 108,-89.372583 108,-96 C108,-102.627417 102.627417,-108 96,-108 C89.372583,-108 84,-102.627417 84,-96 C84,-89.372583 89.372583,-84 96,-84 Z\"></path>\n <path d=\"M16,18 L112,18 C113.104569,18 114,17.1045695 114,16 C114,14.8954305 113.104569,14 112,14 L16,14 C14.8954305,14 14,14.8954305 14,16 C14,17.1045695 14.8954305,18 16,18 L16,18 Z M16,35 L112,35 C114.209139,35 116,33.209139 116,31 C116,28.790861 114.209139,27 112,27 L16,27 C13.790861,27 12,28.790861 12,31 C12,33.209139 13.790861,35 16,35 L16,35 Z M16,56 L112,56 C115.313708,56 118,53.3137085 118,50 C118,46.6862915 115.313708,44 112,44 L16,44 C12.6862915,44 10,46.6862915 10,50 C10,53.3137085 12.6862915,56 16,56 L16,56 Z M16,85 L112,85 C117.522847,85 122,80.5228475 122,75 C122,69.4771525 117.522847,65 112,65 L16,65 C10.4771525,65 6,69.4771525 6,75 C6,80.5228475 10.4771525,85 16,85 L16,85 Z M16,128 L112,128 C120.836556,128 128,120.836556 128,112 C128,103.163444 120.836556,96 112,96 L16,96 C7.163444,96 0,103.163444 0,112 C0,120.836556 7.163444,128 16,128 L16,128 Z\"></path>\n </g>\n</svg>" }, "$:/core/images/link": { "title": "$:/core/images/link", "tags": "$:/tags/Image", "text": "<svg class=\"tc-image-link tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n <g fill-rule=\"evenodd\">\n <path d=\"M128.719999,57.568543 C130.219553,53.8628171 131.045202,49.8121445 131.045202,45.5685425 C131.045202,27.8915447 116.718329,13.5685425 99.0452364,13.5685425 L67.0451674,13.5685425 C49.3655063,13.5685425 35.0452019,27.8954305 35.0452019,45.5685425 C35.0452019,63.2455403 49.3720745,77.5685425 67.0451674,77.5685425 L99.0452364,77.5685425 C100.406772,77.5685425 101.748384,77.4835732 103.065066,77.3186499 C96.4792444,73.7895096 91.1190212,68.272192 87.7873041,61.5685425 L67.0506214,61.5685425 C58.2110723,61.5685425 51.0452019,54.4070414 51.0452019,45.5685425 C51.0452019,36.7319865 58.2005234,29.5685425 67.0506214,29.5685425 L99.0397824,29.5685425 C107.879331,29.5685425 115.045202,36.7300436 115.045202,45.5685425 C115.045202,48.9465282 113.99957,52.0800164 112.21335,54.6623005 C114.314383,56.4735917 117.050039,57.5685425 120.041423,57.5685425 L128.720003,57.5685425 Z\" transform=\"translate(83.045202, 45.568542) rotate(-225.000000) translate(-83.045202, -45.568542)\"></path>\n <path d=\"M-0.106255113,71.0452019 C-1.60580855,74.7509276 -2.43145751,78.8016001 -2.43145751,83.0452019 C-2.43145751,100.7222 11.8954151,115.045202 29.568508,115.045202 L61.568577,115.045202 C79.2482381,115.045202 93.5685425,100.718314 93.5685425,83.0452019 C93.5685425,65.3682041 79.2416699,51.0452019 61.568577,51.0452019 L29.568508,51.0452019 C28.206973,51.0452019 26.8653616,51.1301711 25.5486799,51.2950943 C32.1345,54.8242347 37.4947231,60.3415524 40.8264403,67.0452019 L61.563123,67.0452019 C70.4026721,67.0452019 77.5685425,74.206703 77.5685425,83.0452019 C77.5685425,91.8817579 70.413221,99.0452019 61.563123,99.0452019 L29.573962,99.0452019 C20.7344129,99.0452019 13.5685425,91.8837008 13.5685425,83.0452019 C13.5685425,79.6672162 14.6141741,76.533728 16.4003949,73.9514439 C14.2993609,72.1401527 11.5637054,71.0452019 8.5723215,71.0452019 L-0.106255113,71.0452019 Z\" transform=\"translate(45.568542, 83.045202) rotate(-225.000000) translate(-45.568542, -83.045202)\"></path>\n </g>\n</svg>" }, "$:/core/images/list-bullet": { "title": "$:/core/images/list-bullet", "tags": "$:/tags/Image", "text": "<svg class=\"tc-image-list-bullet tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n <g fill-rule=\"evenodd\">\n <path d=\"M11.6363636,40.2727273 C18.0629498,40.2727273 23.2727273,35.0629498 23.2727273,28.6363636 C23.2727273,22.2097775 18.0629498,17 11.6363636,17 C5.20977746,17 0,22.2097775 0,28.6363636 C0,35.0629498 5.20977746,40.2727273 11.6363636,40.2727273 Z M11.6363636,75.1818182 C18.0629498,75.1818182 23.2727273,69.9720407 23.2727273,63.5454545 C23.2727273,57.1188684 18.0629498,51.9090909 11.6363636,51.9090909 C5.20977746,51.9090909 0,57.1188684 0,63.5454545 C0,69.9720407 5.20977746,75.1818182 11.6363636,75.1818182 Z M11.6363636,110.090909 C18.0629498,110.090909 23.2727273,104.881132 23.2727273,98.4545455 C23.2727273,92.0279593 18.0629498,86.8181818 11.6363636,86.8181818 C5.20977746,86.8181818 0,92.0279593 0,98.4545455 C0,104.881132 5.20977746,110.090909 11.6363636,110.090909 Z M34.9090909,22.8181818 L128,22.8181818 L128,34.4545455 L34.9090909,34.4545455 L34.9090909,22.8181818 Z M34.9090909,57.7272727 L128,57.7272727 L128,69.3636364 L34.9090909,69.3636364 L34.9090909,57.7272727 Z M34.9090909,92.6363636 L128,92.6363636 L128,104.272727 L34.9090909,104.272727 L34.9090909,92.6363636 Z\"></path>\n </g>\n</svg>" }, "$:/core/images/list-number": { "title": "$:/core/images/list-number", "tags": "$:/tags/Image", "text": "<svg class=\"tc-image-list-number tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n <g fill-rule=\"evenodd\">\n <path d=\"M33.8390805,22.3563218 L128,22.3563218 L128,34.1264368 L33.8390805,34.1264368 L33.8390805,22.3563218 Z M33.8390805,57.6666667 L128,57.6666667 L128,69.4367816 L33.8390805,69.4367816 L33.8390805,57.6666667 Z M33.8390805,92.9770115 L128,92.9770115 L128,104.747126 L33.8390805,104.747126 L33.8390805,92.9770115 Z M0.379509711,42.6307008 L0.379509711,40.4082314 L1.37821948,40.4082314 C2.20382368,40.4082314 2.82301754,40.268077 3.23581964,39.9877642 C3.64862174,39.7074513 3.85501969,39.0400498 3.85501969,37.9855395 L3.85501969,22.7686318 C3.85501969,21.3270228 3.66193774,20.4327047 3.27576803,20.0856507 C2.88959832,19.7385967 1.79768657,19.5650723 0,19.5650723 L0,17.4226919 C3.50215975,17.2758613 6.25191314,16.4683055 8.24934266,15 L10.3666074,15 L10.3666074,37.865406 C10.3666074,38.786434 10.5164123,39.4404875 10.8160268,39.8275862 C11.1156412,40.2146849 11.764796,40.4082314 12.7635108,40.4082314 L13.7622206,40.4082314 L13.7622206,42.6307008 L0.379509711,42.6307008 Z M0.0798967812,77.9873934 L0.0798967812,76.0852799 C7.27064304,69.5312983 10.8659622,63.5046623 10.8659622,58.005191 C10.8659622,56.4434479 10.5397203,55.195407 9.88722667,54.2610308 C9.23473303,53.3266546 8.36253522,52.8594735 7.27060709,52.8594735 C6.3784219,52.8594735 5.61608107,53.1764892 4.98356173,53.8105302 C4.35104238,54.4445712 4.03478745,55.1753759 4.03478745,56.0029663 C4.03478745,56.9773871 4.28113339,57.8316611 4.77383268,58.5658139 C4.88036225,58.7259926 4.93362624,58.8461249 4.93362624,58.9262143 C4.93362624,59.0730449 4.77383427,59.2065252 4.45424555,59.3266593 C4.2411864,59.4067486 3.70188852,59.6336652 2.83633573,60.0074156 C1.99741533,60.3811661 1.47809145,60.5680386 1.2783485,60.5680386 C1.03865696,60.5680386 0.765679018,60.1976307 0.459406492,59.4568039 C0.153133966,58.715977 0,57.9184322 0,57.0641453 C0,55.1153036 0.848894811,53.5202138 2.5467099,52.2788283 C4.24452499,51.0374428 6.34512352,50.4167594 8.84856852,50.4167594 C11.3120649,50.4167594 13.3793735,51.0874979 15.0505562,52.4289952 C16.7217389,53.7704924 17.5573177,55.5224215 17.5573177,57.684835 C17.5573177,58.9662652 17.2743527,60.2076321 16.7084144,61.4089729 C16.142476,62.6103138 14.7875733,64.4623531 12.6436656,66.9651465 C10.4997579,69.4679398 8.40914641,71.7804862 6.3717683,73.902855 L17.8169822,73.902855 L16.7982982,79.6292176 L14.6810335,79.6292176 C14.7609307,79.3489048 14.8008787,79.0952922 14.8008787,78.8683723 C14.8008787,78.4812736 14.7010087,78.237672 14.5012658,78.1375603 C14.3015228,78.0374485 13.9020429,77.9873934 13.3028141,77.9873934 L0.0798967812,77.9873934 Z M12.2042333,97.1935484 C13.9486551,97.2335931 15.4400468,97.8309175 16.6784531,98.9855395 C17.9168594,100.140162 18.5360532,101.75861 18.5360532,103.840934 C18.5360532,106.830938 17.4041935,109.233584 15.14044,111.048943 C12.8766866,112.864303 10.1402492,113.771969 6.93104577,113.771969 C4.92030005,113.771969 3.26245842,113.388213 1.95747114,112.62069 C0.652483855,111.853166 0,110.848727 0,109.607341 C0,108.833144 0.26964894,108.209124 0.808954909,107.735261 C1.34826088,107.261399 1.93749375,107.024472 2.57667119,107.024472 C3.21584864,107.024472 3.73850152,107.224692 4.14464552,107.625139 C4.55078953,108.025586 4.92696644,108.67964 5.27318756,109.587319 C5.73925445,110.855401 6.51158227,111.489433 7.59019421,111.489433 C8.85523291,111.489433 9.87723568,111.012241 10.6562332,110.057842 C11.4352307,109.103444 11.8247236,107.371536 11.8247236,104.862069 C11.8247236,103.153495 11.7048796,101.838714 11.4651881,100.917686 C11.2254966,99.9966584 10.6728827,99.5361513 9.80732989,99.5361513 C9.22141723,99.5361513 8.62219737,99.843156 8.00965231,100.457175 C7.51695303,100.951059 7.07752513,101.197998 6.69135542,101.197998 C6.3584505,101.197998 6.08880156,101.051169 5.88240051,100.757508 C5.67599946,100.463847 5.57280049,100.183539 5.57280049,99.916574 C5.57280049,99.5962164 5.67599946,99.3225818 5.88240051,99.0956618 C6.08880156,98.8687419 6.57150646,98.5016711 7.33052967,97.9944383 C10.2068282,96.0722929 11.6449559,93.9766521 11.6449559,91.7074527 C11.6449559,90.5194601 11.3386879,89.615131 10.7261429,88.9944383 C10.1135978,88.3737455 9.37455999,88.0634038 8.5090072,88.0634038 C7.71003539,88.0634038 6.98431355,88.3270274 6.33181991,88.8542825 C5.67932627,89.3815377 5.35308434,90.0122321 5.35308434,90.7463849 C5.35308434,91.3871 5.60608828,91.9810874 6.11210376,92.5283648 C6.28521432,92.7285883 6.3717683,92.8954387 6.3717683,93.028921 C6.3717683,93.1490551 5.80250943,93.4560598 4.6639746,93.9499444 C3.52543978,94.4438289 2.80970494,94.6907675 2.51674861,94.6907675 C2.10394651,94.6907675 1.76771758,94.3570667 1.50805174,93.6896552 C1.24838591,93.0222436 1.11855494,92.4082342 1.11855494,91.8476085 C1.11855494,90.0989901 2.04734573,88.6240327 3.90495518,87.4226919 C5.76256463,86.2213511 7.86982116,85.6206897 10.226788,85.6206897 C12.2907985,85.6206897 14.0784711,86.0678487 15.5898594,86.9621802 C17.1012478,87.8565117 17.8569306,89.0778566 17.8569306,90.6262514 C17.8569306,91.987771 17.2876717,93.2491599 16.1491369,94.4104561 C15.0106021,95.5717522 13.6956474,96.4994404 12.2042333,97.1935484 Z\"></path>\n </g>\n</svg>" }, "$:/core/images/locked-padlock": { "title": "$:/core/images/locked-padlock", "tags": "$:/tags/Image", "text": "<svg class=\"tc-image-locked-padlock tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n <g fill-rule=\"evenodd\">\n <path d=\"M96.4723753,64 L105,64 L105,96.0097716 C105,113.673909 90.6736461,128 73.001193,128 L55.998807,128 C38.3179793,128 24,113.677487 24,96.0097716 L24,64 L32.0000269,64 C32.0028554,48.2766389 32.3030338,16.2688026 64.1594984,16.2688041 C95.9543927,16.2688056 96.4648869,48.325931 96.4723753,64 Z M80.5749059,64 L48.4413579,64 C48.4426205,47.71306 48.5829272,31.9999996 64.1595001,31.9999996 C79.8437473,31.9999996 81.1369461,48.1359182 80.5749059,64 Z M67.7315279,92.3641717 C70.8232551,91.0923621 73,88.0503841 73,84.5 C73,79.8055796 69.1944204,76 64.5,76 C59.8055796,76 56,79.8055796 56,84.5 C56,87.947435 58.0523387,90.9155206 61.0018621,92.2491029 L55.9067479,115.020857 L72.8008958,115.020857 L67.7315279,92.3641717 L67.7315279,92.3641717 Z\"></path>\n </g>\n</svg>" }, "$:/core/images/mail": { "title": "$:/core/images/mail", "tags": "$:/tags/Image", "text": "<svg class=\"tc-image-mail tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n <g fill-rule=\"evenodd\">\n <path d=\"M122.826782,104.894066 C121.945525,105.22777 120.990324,105.41043 119.993027,105.41043 L8.00697327,105.41043 C7.19458381,105.41043 6.41045219,105.289614 5.67161357,105.064967 L5.67161357,105.064967 L39.8346483,70.9019325 L60.6765759,91.7438601 C61.6118278,92.679112 62.8865166,93.0560851 64.0946097,92.8783815 C65.2975108,93.0473238 66.5641085,92.6696979 67.4899463,91.7438601 L88.5941459,70.6396605 C88.6693095,70.7292352 88.7490098,70.8162939 88.8332479,70.9005321 L122.826782,104.894066 Z M127.903244,98.6568194 C127.966933,98.2506602 128,97.8343714 128,97.4103789 L128,33.410481 C128,32.7414504 127.917877,32.0916738 127.763157,31.4706493 L94.2292399,65.0045665 C94.3188145,65.0797417 94.4058701,65.1594458 94.4901021,65.2436778 L127.903244,98.6568194 Z M0.205060636,99.2178117 C0.0709009529,98.6370366 0,98.0320192 0,97.4103789 L0,33.410481 C0,32.694007 0.0944223363,31.9995312 0.27147538,31.3387595 L0.27147538,31.3387595 L34.1777941,65.2450783 L0.205060636,99.2178117 L0.205060636,99.2178117 Z M5.92934613,25.6829218 C6.59211333,25.5051988 7.28862283,25.4104299 8.00697327,25.4104299 L119.993027,25.4104299 C120.759109,25.4104299 121.500064,25.5178649 122.201605,25.7184927 L122.201605,25.7184927 L64.0832611,83.8368368 L5.92934613,25.6829218 L5.92934613,25.6829218 Z\"></path>\n </g>\n</svg>" }, "$:/core/images/menu-button": { "title": "$:/core/images/menu-button", "tags": "$:/tags/Image", "text": "<svg class=\"tc-image-menu-button tc-image-button\" viewBox=\"0 0 128 128\" width=\"22pt\" height=\"22pt\">\n <rect x=\"0\" y=\"16\" width=\"128\" height=\"16\" rx=\"8\"></rect>\n <rect x=\"0\" y=\"56\" width=\"128\" height=\"16\" rx=\"8\"></rect>\n <rect x=\"0\" y=\"96\" width=\"128\" height=\"16\" rx=\"8\"></rect>\n</svg>" }, "$:/core/images/mono-block": { "title": "$:/core/images/mono-block", "tags": "$:/tags/Image", "text": "<svg class=\"tc-image-mono-block tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n <g fill-rule=\"evenodd\">\n <path d=\"M23.9653488,32.9670593 L24.3217888,32.9670593 C25.0766067,32.9670593 25.6497006,33.1592554 26.0410876,33.5436534 C26.4324747,33.9280514 26.6281653,34.4906619 26.6281653,35.2315017 C26.6281653,36.0562101 26.4219913,36.6502709 26.009637,37.0137017 C25.5972828,37.3771326 24.9158602,37.5588453 23.9653488,37.5588453 L17.6542639,37.5588453 C16.6897744,37.5588453 16.0048573,37.380627 15.5994921,37.0241852 C15.1941269,36.6677435 14.9914474,36.0701882 14.9914474,35.2315017 C14.9914474,34.4207713 15.1941269,33.8406885 15.5994921,33.4912358 C16.0048573,33.141783 16.6897744,32.9670593 17.6542639,32.9670593 L18.388111,32.9670593 L17.5284616,30.5139133 L8.47069195,30.5139133 L7.5691084,32.9670593 L8.30295547,32.9670593 C9.25346691,32.9670593 9.93488953,33.1452775 10.3472438,33.5017193 C10.759598,33.8581611 10.965772,34.4347494 10.965772,35.2315017 C10.965772,36.0562101 10.759598,36.6502709 10.3472438,37.0137017 C9.93488953,37.3771326 9.25346691,37.5588453 8.30295547,37.5588453 L2.89345418,37.5588453 C1.92896463,37.5588453 1.24404754,37.3771326 0.838682371,37.0137017 C0.433317198,36.6502709 0.230637652,36.0562101 0.230637652,35.2315017 C0.230637652,34.4906619 0.426328248,33.9280514 0.817715312,33.5436534 C1.20910238,33.1592554 1.78219626,32.9670593 2.53701417,32.9670593 L2.89345418,32.9670593 L8.51262607,17.3256331 L6.83526132,17.3256331 C5.88474988,17.3256331 5.20332727,17.1439204 4.79097304,16.7804895 C4.37861882,16.4170587 4.1724448,15.8299869 4.1724448,15.0192565 C4.1724448,14.1945481 4.37861882,13.6004873 4.79097304,13.2370565 C5.20332727,12.8736257 5.88474988,12.691913 6.83526132,12.691913 L14.6979086,12.691913 C15.9419603,12.691913 16.815579,13.3628521 17.318791,14.7047506 L17.318791,14.7676518 L23.9653488,32.9670593 Z M12.9786097,17.3256331 L9.9383861,26.1737321 L16.0188333,26.1737321 L12.9786097,17.3256331 Z M35.3809383,26.6979086 L35.3809383,33.0928616 L38.5259972,33.0928616 C40.7485166,33.0928616 42.3140414,32.8482484 43.2226185,32.3590146 C44.1311956,31.8697807 44.5854773,31.0520736 44.5854773,29.9058686 C44.5854773,28.7456855 44.1521624,27.9209895 43.2855197,27.4317556 C42.4188769,26.9425218 40.9022748,26.6979086 38.7356678,26.6979086 L35.3809383,26.6979086 Z M46.0741385,24.370565 C47.5977525,24.9296893 48.7159844,25.6949794 49.428868,26.666458 C50.1417516,27.6379366 50.498188,28.8784752 50.498188,30.388111 C50.498188,31.6601189 50.1906743,32.8202846 49.5756374,33.8686428 C48.9606006,34.917001 48.0799929,35.7766419 46.933788,36.4475911 C46.2628387,36.8389782 45.5115266,37.1220307 44.6798291,37.296757 C43.8481316,37.4714834 42.6704935,37.5588453 41.1468796,37.5588453 L39.3856466,37.5588453 L30.2020747,37.5588453 C29.2795194,37.5588453 28.6190637,37.3771326 28.2206876,37.0137017 C27.8223114,36.6502709 27.6231264,36.0562101 27.6231264,35.2315017 C27.6231264,34.4906619 27.811828,33.9280514 28.189237,33.5436534 C28.5666459,33.1592554 29.118773,32.9670593 29.8456347,32.9670593 L30.2020747,32.9670593 L30.2020747,17.3256331 L29.8456347,17.3256331 C29.118773,17.3256331 28.5666459,17.1299425 28.189237,16.7385554 C27.811828,16.3471683 27.6231264,15.7740744 27.6231264,15.0192565 C27.6231264,14.2085262 27.8258059,13.6179599 28.2311711,13.24754 C28.6365363,12.8771201 29.2934976,12.691913 30.2020747,12.691913 L39.8469219,12.691913 C42.796303,12.691913 45.0362615,13.2650068 46.5668644,14.4112118 C48.0974674,15.5574168 48.8627574,17.2347648 48.8627574,19.443306 C48.8627574,20.5335986 48.6286276,21.4945792 48.1603609,22.3262767 C47.6920943,23.1579742 46.9966938,23.8393968 46.0741385,24.370565 L46.0741385,24.370565 Z M35.3809383,17.1998307 L35.3809383,22.4835296 L38.2114913,22.4835296 C39.9307988,22.4835296 41.1433816,22.2808501 41.8492761,21.8754849 C42.5551706,21.4701197 42.9081126,20.7852027 42.9081126,19.8207131 C42.9081126,18.912136 42.5901154,18.2481858 41.9541114,17.8288425 C41.3181074,17.4094992 40.2872373,17.1998307 38.8614701,17.1998307 L35.3809383,17.1998307 Z M71.244119,13.3838259 C71.5236812,12.880614 71.8102281,12.5241775 72.1037684,12.3145059 C72.3973087,12.1048342 72.7677231,12 73.2150226,12 C73.8999499,12 74.3856819,12.1817127 74.6722332,12.5451435 C74.9587844,12.9085744 75.1020579,13.5305909 75.1020579,14.4112118 L75.143992,19.8626472 C75.143992,20.8271368 74.9867406,21.4771091 74.6722332,21.8125837 C74.3577257,22.1480584 73.7881263,22.3157932 72.9634178,22.3157932 C72.3763372,22.3157932 71.92555,22.1760142 71.6110425,21.896452 C71.2965351,21.6168898 71.0274605,21.0997075 70.8038107,20.3448896 C70.4403799,19.0169692 69.8602971,18.0629775 69.0635448,17.482886 C68.2667926,16.9027945 67.1625385,16.612753 65.7507494,16.612753 C63.5981206,16.612753 61.9487284,17.3396038 60.8025235,18.7933272 C59.6563185,20.2470506 59.0832246,22.3507245 59.0832246,25.104412 C59.0832246,27.8441215 59.6633074,29.9477954 60.8234905,31.4154969 C61.9836736,32.8831984 63.6400547,33.6170381 65.7926836,33.6170381 C67.2603851,33.6170381 68.878327,33.1278116 70.6465578,32.149344 C72.4147886,31.1708763 73.5295261,30.6816498 73.9908037,30.6816498 C74.53595,30.6816498 74.9937262,30.9122852 75.3641461,31.3735628 C75.734566,31.8348404 75.9197732,32.4079343 75.9197732,33.0928616 C75.9197732,34.3229353 74.836486,35.4831009 72.669879,36.5733935 C70.5032721,37.663686 68.0641285,38.2088241 65.3523753,38.2088241 C61.6901107,38.2088241 58.7267959,36.9997358 56.4623422,34.5815228 C54.1978885,32.1633099 53.0656786,29.0043046 53.0656786,25.104412 C53.0656786,21.3443006 54.2118664,18.22024 56.5042763,15.7321366 C58.7966863,13.2440331 61.7040894,12 65.226573,12 C66.2190187,12 67.1974717,12.1118232 68.1619613,12.3354729 C69.1264508,12.5591227 70.1538264,12.9085702 71.244119,13.3838259 L71.244119,13.3838259 Z M81.4645862,32.9670593 L81.4645862,17.3256331 L81.1081461,17.3256331 C80.3533282,17.3256331 79.7802344,17.1299425 79.3888473,16.7385554 C78.9974602,16.3471683 78.8017696,15.7740744 78.8017696,15.0192565 C78.8017696,14.2085262 79.0114381,13.6179599 79.4307814,13.24754 C79.8501247,12.8771201 80.5280528,12.691913 81.4645862,12.691913 L85.4063933,12.691913 L86.6434498,12.691913 C89.5648747,12.691913 91.7034933,12.8177141 93.0593699,13.06932 C94.4152465,13.320926 95.5684233,13.740263 96.5189347,14.3273436 C98.210286,15.3337675 99.5067362,16.7699967 100.408324,18.6360743 C101.309912,20.5021519 101.7607,22.6582429 101.7607,25.104412 C101.7607,27.6903623 101.247012,29.9512876 100.219621,31.8872557 C99.1922296,33.8232239 97.7350336,35.2874089 95.8479888,36.2798546 C94.9953241,36.7271541 93.9959043,37.0521403 92.8496993,37.2548229 C91.7034944,37.4575055 89.9981906,37.5588453 87.7337369,37.5588453 L85.4063933,37.5588453 L81.4645862,37.5588453 C80.5000966,37.5588453 79.8151795,37.380627 79.4098143,37.0241852 C79.0044492,36.6677435 78.8017696,36.0701882 78.8017696,35.2315017 C78.8017696,34.4906619 78.9974602,33.9280514 79.3888473,33.5436534 C79.7802344,33.1592554 80.3533282,32.9670593 81.1081461,32.9670593 L81.4645862,32.9670593 Z M86.8740874,17.2417648 L86.8740874,32.9670593 L88.0692098,32.9670593 C90.7110725,32.9670593 92.6609895,32.3205814 93.9190194,31.0276063 C95.1770492,29.7346312 95.8060547,27.7462749 95.8060547,25.0624779 C95.8060547,22.4206153 95.1665658,20.4497314 93.8875688,19.1497672 C92.6085718,17.849803 90.6831161,17.1998307 88.1111439,17.1998307 C87.7756693,17.1998307 87.5205727,17.2033252 87.3458463,17.2103142 C87.1711199,17.2173033 87.0138685,17.2277867 86.8740874,17.2417648 L86.8740874,17.2417648 Z M121.94052,17.1159625 L112.190837,17.1159625 L112.190837,22.4835296 L115.88104,22.4835296 L115.88104,22.2319249 C115.88104,21.4351727 116.055763,20.841112 116.405216,20.4497249 C116.754669,20.0583378 117.285829,19.8626472 117.998713,19.8626472 C118.627728,19.8626472 119.141415,20.0408655 119.539792,20.3973072 C119.938168,20.753749 120.137353,21.2045363 120.137353,21.7496826 C120.137353,21.7776388 120.144342,21.8684951 120.15832,22.0222543 C120.172298,22.1760135 120.179287,22.3297704 120.179287,22.4835296 L120.179287,26.8237109 C120.179287,27.7602442 120.011552,28.4311834 119.676077,28.8365486 C119.340603,29.2419138 118.795465,29.4445933 118.040647,29.4445933 C117.327763,29.4445933 116.789614,29.2558917 116.426183,28.8784827 C116.062752,28.5010738 115.88104,27.9419578 115.88104,27.201118 L115.88104,26.8237109 L112.190837,26.8237109 L112.190837,33.0928616 L121.94052,33.0928616 L121.94052,30.5977816 C121.94052,29.6612482 122.118738,28.9903091 122.47518,28.5849439 C122.831622,28.1795787 123.415199,27.9768992 124.225929,27.9768992 C125.022682,27.9768992 125.592281,28.1760842 125.934745,28.5744604 C126.277208,28.9728365 126.448438,29.6472701 126.448438,30.5977816 L126.448438,35.6718099 C126.448438,36.4266278 126.30167,36.9298322 126.008129,37.1814382 C125.714589,37.4330442 125.134506,37.5588453 124.267863,37.5588453 L107.095842,37.5588453 C106.173287,37.5588453 105.512831,37.3771326 105.114455,37.0137017 C104.716079,36.6502709 104.516894,36.0562101 104.516894,35.2315017 C104.516894,34.4906619 104.705595,33.9280514 105.083004,33.5436534 C105.460413,33.1592554 106.01254,32.9670593 106.739402,32.9670593 L107.095842,32.9670593 L107.095842,17.3256331 L106.739402,17.3256331 C106.026518,17.3256331 105.477886,17.126448 105.093488,16.7280719 C104.70909,16.3296957 104.516894,15.7600963 104.516894,15.0192565 C104.516894,14.2085262 104.719573,13.6179599 105.124938,13.24754 C105.530304,12.8771201 106.187265,12.691913 107.095842,12.691913 L124.267863,12.691913 C125.120528,12.691913 125.697116,12.8212085 125.997646,13.0798036 C126.298175,13.3383986 126.448438,13.8520864 126.448438,14.6208824 L126.448438,19.3175037 C126.448438,20.2680151 126.273714,20.9494377 125.924261,21.361792 C125.574808,21.7741462 125.008703,21.9803202 124.225929,21.9803202 C123.415199,21.9803202 122.831622,21.7706517 122.47518,21.3513084 C122.118738,20.9319652 121.94052,20.254037 121.94052,19.3175037 L121.94052,17.1159625 Z M19.7719369,47.6405477 C20.037521,47.1373358 20.3205734,46.7808993 20.6211028,46.5712277 C20.9216322,46.361556 21.295541,46.2567218 21.7428405,46.2567218 C22.4277678,46.2567218 22.9134998,46.4384345 23.2000511,46.8018653 C23.4866023,47.1652962 23.6298758,47.7873127 23.6298758,48.6679336 L23.6718099,54.119369 C23.6718099,55.0838586 23.5145586,55.7338309 23.2000511,56.0693055 C22.8855436,56.4047802 22.3089553,56.572515 21.4702687,56.572515 C20.8831881,56.572515 20.4254119,56.4292415 20.0969263,56.1426902 C19.7684407,55.856139 19.4993662,55.3424512 19.2896945,54.6016114 C18.9122856,53.2597129 18.3322027,52.3022267 17.5494286,51.7291243 C16.7666545,51.1560218 15.6693894,50.8694748 14.2576003,50.8694748 C12.1049715,50.8694748 10.4590738,51.5963256 9.31985785,53.050049 C8.18064193,54.5037724 7.61104252,56.6074463 7.61104252,59.3611338 C7.61104252,62.1148214 8.20859773,64.2429566 9.40372609,65.7456034 C10.5988544,67.2482501 12.2936748,67.9995623 14.488238,67.9995623 C14.9914499,67.9995623 15.5645438,67.9401562 16.2075368,67.8213423 C16.8505299,67.7025283 17.6053364,67.5173212 18.4719792,67.2657152 L18.4719792,63.9529198 L16.1027015,63.9529198 C15.1521901,63.9529198 14.4777564,63.7781961 14.0793803,63.4287433 C13.6810042,63.0792906 13.4818191,62.4992078 13.4818191,61.6884774 C13.4818191,60.8497908 13.6810042,60.2522356 14.0793803,59.8957938 C14.4777564,59.5393521 15.1521901,59.3611338 16.1027015,59.3611338 L23.6718099,59.3611338 C24.6502776,59.3611338 25.3386891,59.5358576 25.7370653,59.8853103 C26.1354414,60.2347631 26.3346265,60.8218348 26.3346265,61.6465433 C26.3346265,62.3873831 26.1354414,62.9569825 25.7370653,63.3553586 C25.3386891,63.7537347 24.7621008,63.9529198 24.0072829,63.9529198 L23.6718099,63.9529198 L23.6718099,68.9430799 L23.6718099,69.1946846 C23.6718099,69.6419841 23.6228873,69.9529924 23.5250405,70.1277188 C23.4271937,70.3024451 23.2315031,70.4806634 22.9379628,70.6623788 C22.1412106,71.1376345 20.8762107,71.5569715 19.1429251,71.9204023 C17.4096396,72.2838332 15.6554131,72.4655459 13.8801932,72.4655459 C10.2179286,72.4655459 7.25461383,71.2564576 4.99016011,68.8382446 C2.72570638,66.4200317 1.59349651,63.2610264 1.59349651,59.3611338 C1.59349651,55.6010224 2.73968428,52.4769618 5.03209423,49.9888583 C7.32450417,47.5007549 10.2319073,46.2567218 13.7543909,46.2567218 C14.7328585,46.2567218 15.7078171,46.368545 16.6792957,46.5921947 C17.6507743,46.8158445 18.6816444,47.165292 19.7719369,47.6405477 L19.7719369,47.6405477 Z M35.611576,51.5823548 L35.611576,56.4047785 L42.4678043,56.4047785 L42.4678043,51.5823548 L42.1323314,51.5823548 C41.3775135,51.5823548 40.8009251,51.3866642 40.402549,50.9952772 C40.0041729,50.6038901 39.8049878,50.0307962 39.8049878,49.2759783 C39.8049878,48.4512699 40.0111618,47.8572091 40.4235161,47.4937783 C40.8358703,47.1303474 41.5172929,46.9486347 42.4678043,46.9486347 L47.8773056,46.9486347 C48.8278171,46.9486347 49.5022507,47.1303474 49.9006269,47.4937783 C50.299003,47.8572091 50.498188,48.4512699 50.498188,49.2759783 C50.498188,50.0307962 50.3059919,50.6038901 49.9215939,50.9952772 C49.5371959,51.3866642 48.9745854,51.5823548 48.2337456,51.5823548 L47.8773056,51.5823548 L47.8773056,67.2237811 L48.2337456,67.2237811 C48.9885636,67.2237811 49.5616574,67.4159772 49.9530445,67.8003752 C50.3444316,68.1847732 50.5401222,68.7473837 50.5401222,69.4882235 C50.5401222,70.3129319 50.3374426,70.9069927 49.9320774,71.2704235 C49.5267123,71.6338543 48.8417952,71.815567 47.8773056,71.815567 L42.4678043,71.815567 C41.5033148,71.815567 40.8183977,71.6373488 40.4130325,71.280907 C40.0076674,70.9244652 39.8049878,70.32691 39.8049878,69.4882235 C39.8049878,68.7473837 40.0041729,68.1847732 40.402549,67.8003752 C40.8009251,67.4159772 41.3775135,67.2237811 42.1323314,67.2237811 L42.4678043,67.2237811 L42.4678043,61.0384986 L35.611576,61.0384986 L35.611576,67.2237811 L35.9470489,67.2237811 C36.7018668,67.2237811 37.2784552,67.4159772 37.6768313,67.8003752 C38.0752074,68.1847732 38.2743925,68.7473837 38.2743925,69.4882235 C38.2743925,70.3129319 38.0682185,70.9069927 37.6558642,71.2704235 C37.24351,71.6338543 36.5620874,71.815567 35.611576,71.815567 L30.2020747,71.815567 C29.2375851,71.815567 28.552668,71.6373488 28.1473029,71.280907 C27.7419377,70.9244652 27.5392581,70.32691 27.5392581,69.4882235 C27.5392581,68.7473837 27.7349487,68.1847732 28.1263358,67.8003752 C28.5177229,67.4159772 29.0908168,67.2237811 29.8456347,67.2237811 L30.2020747,67.2237811 L30.2020747,51.5823548 L29.8456347,51.5823548 C29.1047949,51.5823548 28.5421844,51.3866642 28.1577864,50.9952772 C27.7733884,50.6038901 27.5811923,50.0307962 27.5811923,49.2759783 C27.5811923,48.4512699 27.7803773,47.8572091 28.1787534,47.4937783 C28.5771296,47.1303474 29.2515632,46.9486347 30.2020747,46.9486347 L35.611576,46.9486347 C36.5481093,46.9486347 37.2260374,47.1303474 37.6453807,47.4937783 C38.064724,47.8572091 38.2743925,48.4512699 38.2743925,49.2759783 C38.2743925,50.0307962 38.0752074,50.6038901 37.6768313,50.9952772 C37.2784552,51.3866642 36.7018668,51.5823548 35.9470489,51.5823548 L35.611576,51.5823548 Z M67.365213,51.5823548 L67.365213,67.2237811 L70.887679,67.2237811 C71.8381904,67.2237811 72.519613,67.4019993 72.9319673,67.7584411 C73.3443215,68.1148829 73.5504955,68.6914712 73.5504955,69.4882235 C73.5504955,70.2989538 73.340827,70.8895201 72.9214837,71.25994 C72.5021404,71.6303599 71.8242123,71.815567 70.887679,71.815567 L58.4332458,71.815567 C57.4827343,71.815567 56.8013117,71.6338543 56.3889575,71.2704235 C55.9766033,70.9069927 55.7704292,70.3129319 55.7704292,69.4882235 C55.7704292,68.6774931 55.9731088,68.0974103 56.378474,67.7479575 C56.7838391,67.3985048 57.4687562,67.2237811 58.4332458,67.2237811 L61.9557117,67.2237811 L61.9557117,51.5823548 L58.4332458,51.5823548 C57.4827343,51.5823548 56.8013117,51.4006421 56.3889575,51.0372113 C55.9766033,50.6737805 55.7704292,50.0867087 55.7704292,49.2759783 C55.7704292,48.4512699 55.9731088,47.8641981 56.378474,47.5147453 C56.7838391,47.1652926 57.4687562,46.9905689 58.4332458,46.9905689 L70.887679,46.9905689 C71.8801247,46.9905689 72.5720308,47.1652926 72.9634178,47.5147453 C73.3548049,47.8641981 73.5504955,48.4512699 73.5504955,49.2759783 C73.5504955,50.0867087 73.347816,50.6737805 72.9424508,51.0372113 C72.5370856,51.4006421 71.8521685,51.5823548 70.887679,51.5823548 L67.365213,51.5823548 Z M97.8608265,51.5823548 L97.8608265,63.1771386 L97.8608265,63.5755127 C97.8608265,65.4485794 97.7385199,66.8044357 97.493903,67.6431222 C97.2492861,68.4818088 96.8404325,69.2296264 96.26733,69.8865976 C95.5264902,70.7392623 94.4991146,71.3822457 93.1851723,71.815567 C91.87123,72.2488884 90.2917273,72.4655459 88.4466169,72.4655459 C87.1466527,72.4655459 85.8921362,72.3397448 84.6830298,72.0881388 C83.4739233,71.8365328 82.3102631,71.4591296 81.1920144,70.9559176 C80.5769776,70.6763554 80.175113,70.31293 79.9864085,69.8656305 C79.797704,69.418331 79.7033532,68.6914802 79.7033532,67.6850564 L79.7033532,63.3658422 C79.7033532,62.1637247 79.8780769,61.3250508 80.2275297,60.849795 C80.5769824,60.3745393 81.185021,60.136915 82.0516638,60.136915 C83.2957156,60.136915 83.9806326,61.0524675 84.1064356,62.8835998 C84.1204137,63.2050963 84.1413806,63.4497096 84.1693368,63.6174469 C84.3370741,65.2389076 84.7144774,66.3466561 85.301558,66.9407258 C85.8886386,67.5347954 86.8251579,67.8318258 88.1111439,67.8318258 C89.7046484,67.8318258 90.8263749,67.4089943 91.476357,66.5633187 C92.126339,65.7176431 92.4513252,64.1765796 92.4513252,61.9400821 L92.4513252,51.5823548 L88.9288593,51.5823548 C87.9783478,51.5823548 87.2969252,51.4006421 86.884571,51.0372113 C86.4722168,50.6737805 86.2660427,50.0867087 86.2660427,49.2759783 C86.2660427,48.4512699 86.4652278,47.8641981 86.8636039,47.5147453 C87.26198,47.1652926 87.9503916,46.9905689 88.9288593,46.9905689 L99.6220595,46.9905689 C100.600527,46.9905689 101.288939,47.1652926 101.687315,47.5147453 C102.085691,47.8641981 102.284876,48.4512699 102.284876,49.2759783 C102.284876,50.0867087 102.078702,50.6737805 101.666348,51.0372113 C101.253994,51.4006421 100.572571,51.5823548 99.6220595,51.5823548 L97.8608265,51.5823548 Z M112.505343,51.5823548 L112.505343,57.9353738 L118.984165,51.4565525 C118.257303,51.3726838 117.747109,51.1665098 117.453569,50.8380242 C117.160029,50.5095387 117.013261,49.9888619 117.013261,49.2759783 C117.013261,48.4512699 117.212446,47.8572091 117.610822,47.4937783 C118.009198,47.1303474 118.683632,46.9486347 119.634143,46.9486347 L124.771073,46.9486347 C125.721584,46.9486347 126.396018,47.1303474 126.794394,47.4937783 C127.19277,47.8572091 127.391955,48.4512699 127.391955,49.2759783 C127.391955,50.0447743 127.19277,50.6213627 126.794394,51.0057607 C126.396018,51.3901587 125.812441,51.5823548 125.043645,51.5823548 L124.561402,51.5823548 L118.459988,57.641835 C119.592215,58.4805215 120.626579,59.5812811 121.563113,60.9441468 C122.499646,62.3070125 123.596911,64.400203 124.854941,67.2237811 L125.127513,67.2237811 L125.546854,67.2237811 C126.371563,67.2237811 126.98659,67.4124827 127.391955,67.7898917 C127.79732,68.1673006 128,68.7334056 128,69.4882235 C128,70.3129319 127.793826,70.9069927 127.381472,71.2704235 C126.969118,71.6338543 126.287695,71.815567 125.337183,71.815567 L122.758235,71.815567 C121.626008,71.815567 120.710456,71.0537715 120.01155,69.5301576 C119.885747,69.2505954 119.787902,69.026949 119.718012,68.8592117 C118.795456,66.9022764 117.949793,65.3926632 117.180997,64.3303269 C116.412201,63.2679906 115.510627,62.2965265 114.476247,61.4159056 L112.505343,63.302941 L112.505343,67.2237811 L112.840816,67.2237811 C113.595634,67.2237811 114.172222,67.4159772 114.570599,67.8003752 C114.968975,68.1847732 115.16816,68.7473837 115.16816,69.4882235 C115.16816,70.3129319 114.961986,70.9069927 114.549631,71.2704235 C114.137277,71.6338543 113.455855,71.815567 112.505343,71.815567 L107.095842,71.815567 C106.131352,71.815567 105.446435,71.6373488 105.04107,71.280907 C104.635705,70.9244652 104.433025,70.32691 104.433025,69.4882235 C104.433025,68.7473837 104.628716,68.1847732 105.020103,67.8003752 C105.41149,67.4159772 105.984584,67.2237811 106.739402,67.2237811 L107.095842,67.2237811 L107.095842,51.5823548 L106.739402,51.5823548 C105.998562,51.5823548 105.435952,51.3866642 105.051554,50.9952772 C104.667156,50.6038901 104.474959,50.0307962 104.474959,49.2759783 C104.474959,48.4512699 104.674145,47.8572091 105.072521,47.4937783 C105.470897,47.1303474 106.14533,46.9486347 107.095842,46.9486347 L112.505343,46.9486347 C113.441877,46.9486347 114.119805,47.1303474 114.539148,47.4937783 C114.958491,47.8572091 115.16816,48.4512699 115.16816,49.2759783 C115.16816,50.0307962 114.968975,50.6038901 114.570599,50.9952772 C114.172222,51.3866642 113.595634,51.5823548 112.840816,51.5823548 L112.505343,51.5823548 Z M13.439885,96.325622 L17.4445933,84.4372993 C17.6961993,83.6545252 18.0456468,83.0849258 18.4929463,82.728484 C18.9402458,82.3720422 19.5343065,82.193824 20.2751463,82.193824 L23.5460076,82.193824 C24.496519,82.193824 25.1779416,82.3755367 25.5902958,82.7389675 C26.0026501,83.1023984 26.2088241,83.6964591 26.2088241,84.5211676 C26.2088241,85.2759855 26.009639,85.8490794 25.6112629,86.2404664 C25.2128868,86.6318535 24.6362984,86.8275441 23.8814805,86.8275441 L23.5460076,86.8275441 L24.1330852,102.46897 L24.4895252,102.46897 C25.2443431,102.46897 25.8104481,102.661166 26.187857,103.045564 C26.565266,103.429962 26.7539676,103.992573 26.7539676,104.733413 C26.7539676,105.558121 26.5547826,106.152182 26.1564064,106.515613 C25.7580303,106.879044 25.0835967,107.060756 24.1330852,107.060756 L19.4154969,107.060756 C18.4649855,107.060756 17.7905518,106.882538 17.3921757,106.526096 C16.9937996,106.169654 16.7946145,105.572099 16.7946145,104.733413 C16.7946145,103.992573 16.9868106,103.429962 17.3712086,103.045564 C17.7556066,102.661166 18.325206,102.46897 19.0800239,102.46897 L19.4154969,102.46897 L19.1219581,89.6790642 L16.0607674,99.1981091 C15.8371177,99.9109927 15.5191204,100.42468 15.1067662,100.739188 C14.694412,101.053695 14.1248126,101.210947 13.3979509,101.210947 C12.6710892,101.210947 12.0945008,101.053695 11.6681685,100.739188 C11.2418362,100.42468 10.91685,99.9109927 10.6932002,99.1981091 L7.65297664,89.6790642 L7.35943781,102.46897 L7.69491075,102.46897 C8.44972866,102.46897 9.01932808,102.661166 9.40372609,103.045564 C9.78812409,103.429962 9.98032022,103.992573 9.98032022,104.733413 C9.98032022,105.558121 9.77764067,106.152182 9.3722755,106.515613 C8.96691032,106.879044 8.29597114,107.060756 7.35943781,107.060756 L2.62088241,107.060756 C1.68434908,107.060756 1.01340989,106.879044 0.608044719,106.515613 C0.202679546,106.152182 0,105.558121 0,104.733413 C0,103.992573 0.192196121,103.429962 0.57659413,103.045564 C0.960992139,102.661166 1.53059155,102.46897 2.28540946,102.46897 L2.62088241,102.46897 L3.22892713,86.8275441 L2.89345418,86.8275441 C2.13863627,86.8275441 1.56204791,86.6318535 1.16367179,86.2404664 C0.765295672,85.8490794 0.5661106,85.2759855 0.5661106,84.5211676 C0.5661106,83.6964591 0.772284622,83.1023984 1.18463885,82.7389675 C1.59699308,82.3755367 2.27841569,82.193824 3.22892713,82.193824 L6.49978838,82.193824 C7.22665007,82.193824 7.81022738,82.3685477 8.25053783,82.7180005 C8.69084827,83.0674532 9.05077919,83.6405471 9.33034138,84.4372993 L13.439885,96.325622 Z M43.8935644,98.3803938 L43.8935644,86.8275441 L42.7403761,86.8275441 C41.8178209,86.8275441 41.1573651,86.6458314 40.758989,86.2824006 C40.3606129,85.9189697 40.1614278,85.3318979 40.1614278,84.5211676 C40.1614278,83.7104372 40.3606129,83.119871 40.758989,82.7494511 C41.1573651,82.3790312 41.8178209,82.193824 42.7403761,82.193824 L48.6950209,82.193824 C49.6035981,82.193824 50.2605593,82.3790312 50.6659245,82.7494511 C51.0712897,83.119871 51.2739692,83.7104372 51.2739692,84.5211676 C51.2739692,85.2620074 51.0817731,85.8316068 50.6973751,86.2299829 C50.3129771,86.628359 49.7643445,86.8275441 49.051461,86.8275441 L48.6950209,86.8275441 L48.6950209,105.865634 C48.6950209,106.522605 48.6251315,106.934953 48.4853504,107.10269 C48.3455693,107.270428 48.0310665,107.354295 47.5418327,107.354295 L45.4451268,107.354295 C44.7741775,107.354295 44.3024234,107.284406 44.0298503,107.144625 C43.7572771,107.004843 43.5231473,106.76023 43.3274538,106.410777 L34.6051571,91.0838571 L34.6051571,102.46897 L35.8212466,102.46897 C36.7298237,102.46897 37.379796,102.643694 37.7711831,102.993147 C38.1625701,103.3426 38.3582607,103.922682 38.3582607,104.733413 C38.3582607,105.558121 38.1590757,106.152182 37.7606995,106.515613 C37.3623234,106.879044 36.7158456,107.060756 35.8212466,107.060756 L29.8037005,107.060756 C28.8951234,107.060756 28.2381621,106.879044 27.832797,106.515613 C27.4274318,106.152182 27.2247522,105.558121 27.2247522,104.733413 C27.2247522,103.992573 27.4134539,103.429962 27.7908629,103.045564 C28.1682718,102.661166 28.7273878,102.46897 29.4682276,102.46897 L29.8037005,102.46897 L29.8037005,86.8275441 L29.4682276,86.8275441 C28.755344,86.8275441 28.203217,86.628359 27.8118299,86.2299829 C27.4204428,85.8316068 27.2247522,85.2620074 27.2247522,84.5211676 C27.2247522,83.7104372 27.4309263,83.119871 27.8432805,82.7494511 C28.2556347,82.3790312 28.9091015,82.193824 29.8037005,82.193824 L33.2422983,82.193824 C34.0670067,82.193824 34.6261227,82.3021527 34.919663,82.5188134 C35.2132033,82.7354741 35.5416839,83.1722835 35.9051148,83.8292546 L43.8935644,98.3803938 Z M64.6604624,86.3662688 C62.8572863,86.3662688 61.4420239,87.0931196 60.4146329,88.546843 C59.3872418,90.0005663 58.873554,92.0203728 58.873554,94.6063231 C58.873554,97.1922733 59.3907363,99.2190688 60.4251164,100.68677 C61.4594965,102.154472 62.8712644,102.888312 64.6604624,102.888312 C66.4636385,102.888312 67.8823953,102.157966 68.9167754,100.697254 C69.9511555,99.2365414 70.4683378,97.2062514 70.4683378,94.6063231 C70.4683378,92.0203728 69.95465,90.0005663 68.9272589,88.546843 C67.8998679,87.0931196 66.4776166,86.3662688 64.6604624,86.3662688 L64.6604624,86.3662688 Z M64.6604624,81.501911 C68.0990773,81.501911 70.929602,82.7319662 73.1521214,85.1921135 C75.3746408,87.6522607 76.4858838,90.7902992 76.4858838,94.6063231 C76.4858838,98.4503032 75.3816297,101.595331 73.1730884,104.0415 C70.9645471,106.487669 68.1270335,107.710735 64.6604624,107.710735 C61.2358256,107.710735 58.4053009,106.477185 56.1688034,104.010049 C53.9323059,101.542913 52.8140739,98.4083688 52.8140739,94.6063231 C52.8140739,90.7763211 53.9218224,87.6347881 56.1373528,85.1816299 C58.3528831,82.7284717 61.1938912,81.501911 64.6604624,81.501911 L64.6604624,81.501911 Z M87.4611651,98.1707232 L87.4611651,102.46897 L89.6207722,102.46897 C90.5293493,102.46897 91.1758272,102.643694 91.5602252,102.993147 C91.9446232,103.3426 92.1368193,103.922682 92.1368193,104.733413 C92.1368193,105.558121 91.9411287,106.152182 91.5497417,106.515613 C91.1583546,106.879044 90.5153712,107.060756 89.6207722,107.060756 L82.3661697,107.060756 C81.4436145,107.060756 80.7831587,106.879044 80.3847826,106.515613 C79.9864065,106.152182 79.7872214,105.558121 79.7872214,104.733413 C79.7872214,103.992573 79.9759231,103.429962 80.353332,103.045564 C80.730741,102.661166 81.282868,102.46897 82.0097297,102.46897 L82.3661697,102.46897 L82.3661697,86.8275441 L82.0097297,86.8275441 C81.2968461,86.8275441 80.7482136,86.628359 80.3638155,86.2299829 C79.9794175,85.8316068 79.7872214,85.2620074 79.7872214,84.5211676 C79.7872214,83.7104372 79.989901,83.119871 80.3952661,82.7494511 C80.8006313,82.3790312 81.4575926,82.193824 82.3661697,82.193824 L91.0255652,82.193824 C94.450202,82.193824 97.0396079,82.8507853 98.7938606,84.1647276 C100.548113,85.4786699 101.425227,87.414609 101.425227,89.972603 C101.425227,92.6703781 100.551608,94.7111515 98.8043442,96.0949843 C97.0570805,97.4788171 94.4641801,98.1707232 91.0255652,98.1707232 L87.4611651,98.1707232 Z M87.4611651,86.8275441 L87.4611651,93.4531348 L90.4384875,93.4531348 C92.0879044,93.4531348 93.328443,93.1735768 94.1601405,92.6144525 C94.9918381,92.0553281 95.4076806,91.2166541 95.4076806,90.0984053 C95.4076806,89.0500471 94.9778602,88.2428234 94.1182064,87.67671 C93.2585527,87.1105966 92.031992,86.8275441 90.4384875,86.8275441 L87.4611651,86.8275441 Z M114.727851,107.396229 L113.092421,109.03166 C113.69348,108.835966 114.284046,108.689198 114.864137,108.591352 C115.444229,108.493505 116.013828,108.444582 116.572953,108.444582 C117.677223,108.444582 118.840883,108.608823 120.063968,108.937308 C121.287053,109.265794 122.031376,109.430034 122.29696,109.430034 C122.744259,109.430034 123.327837,109.279772 124.047709,108.979242 C124.767582,108.678713 125.253314,108.52845 125.50492,108.52845 C126.02211,108.52845 126.45193,108.727636 126.794394,109.126012 C127.136858,109.524388 127.308087,110.024098 127.308087,110.625156 C127.308087,111.421909 126.836333,112.099837 125.892811,112.658961 C124.949288,113.218086 123.792617,113.497643 122.422762,113.497643 C121.486229,113.497643 120.28413,113.277492 118.816428,112.837181 C117.348727,112.396871 116.286406,112.176719 115.629435,112.176719 C114.636989,112.176719 113.518757,112.449288 112.274706,112.994434 C111.030654,113.53958 110.261869,113.812149 109.968329,113.812149 C109.36727,113.812149 108.857077,113.612964 108.437734,113.214588 C108.01839,112.816212 107.808722,112.337469 107.808722,111.778345 C107.808722,111.386958 107.941512,110.971115 108.207096,110.530805 C108.47268,110.090494 108.94094,109.520895 109.611889,108.821989 L111.729562,106.683349 C109.395218,105.830685 107.536157,104.29661 106.152324,102.08108 C104.768491,99.8655494 104.076585,97.3180772 104.076585,94.4385866 C104.076585,90.6365409 105.180839,87.5299526 107.389381,85.1187288 C109.597922,82.7075049 112.442425,81.501911 115.922974,81.501911 C119.389545,81.501911 122.227059,82.7109994 124.4356,85.1292123 C126.644141,87.5474252 127.748395,90.650519 127.748395,94.4385866 C127.748395,98.2126762 126.65113,101.322759 124.456567,103.768928 C122.262004,106.215097 119.480402,107.438163 116.111677,107.438163 C115.888028,107.438163 115.660887,107.434669 115.430248,107.42768 C115.199609,107.420691 114.965479,107.410207 114.727851,107.396229 L114.727851,107.396229 Z M115.922974,86.3662688 C114.119798,86.3662688 112.704535,87.0931196 111.677144,88.546843 C110.649753,90.0005663 110.136065,92.0203728 110.136065,94.6063231 C110.136065,97.1922733 110.653248,99.2190688 111.687628,100.68677 C112.722008,102.154472 114.133776,102.888312 115.922974,102.888312 C117.72615,102.888312 119.144907,102.157966 120.179287,100.697254 C121.213667,99.2365414 121.730849,97.2062514 121.730849,94.6063231 C121.730849,92.0203728 121.217161,90.0005663 120.18977,88.546843 C119.162379,87.0931196 117.740128,86.3662688 115.922974,86.3662688 L115.922974,86.3662688 Z\"></path>\n </g>\n</svg>" }, "$:/core/images/mono-line": { "title": "$:/core/images/mono-line", "tags": "$:/tags/Image", "text": "<svg class=\"tc-image-mono-line tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n <g fill-rule=\"evenodd\">\n <path d=\"M60.4374591,84.522627 L61.3450888,84.522627 C63.2671377,84.522627 64.7264493,85.0120303 65.7230673,85.9908515 C66.7196852,86.9696727 67.2179868,88.4022896 67.2179868,90.288745 C67.2179868,92.3887615 66.6929905,93.9014625 65.6429823,94.8268935 C64.5929741,95.7523244 62.857817,96.215033 60.4374591,96.215033 L44.3670747,96.215033 C41.9111232,96.215033 40.1670679,95.7612227 39.1348565,94.8535884 C38.102645,93.9459542 37.586547,92.424355 37.586547,90.288745 C37.586547,88.2243221 38.102645,86.747214 39.1348565,85.8573766 C40.1670679,84.9675391 41.9111232,84.522627 44.3670747,84.522627 L46.235724,84.522627 L44.0467348,78.2759992 L20.9822627,78.2759992 L18.6864935,84.522627 L20.5551429,84.522627 C22.9755008,84.522627 24.7106579,84.9764373 25.7606661,85.8840716 C26.8106743,86.7917058 27.3356705,88.2599156 27.3356705,90.288745 C27.3356705,92.3887615 26.8106743,93.9014625 25.7606661,94.8268935 C24.7106579,95.7523244 22.9755008,96.215033 20.5551429,96.215033 L6.78052766,96.215033 C4.32457622,96.215033 2.58052094,95.7523244 1.54830946,94.8268935 C0.516097994,93.9014625 0,92.3887615 0,90.288745 C0,88.4022896 0.498301511,86.9696727 1.49491948,85.9908515 C2.49153745,85.0120303 3.95084902,84.522627 5.87289797,84.522627 L6.78052766,84.522627 L21.0890427,44.6937008 L16.8178442,44.6937008 C14.3974863,44.6937008 12.6623292,44.2309922 11.612321,43.3055613 C10.5623128,42.3801303 10.0373165,40.8852258 10.0373165,38.8208028 C10.0373165,36.7207864 10.5623128,35.2080854 11.612321,34.2826544 C12.6623292,33.3572234 14.3974863,32.8945149 16.8178442,32.8945149 L36.8390873,32.8945149 C40.0069087,32.8945149 42.231469,34.6029772 43.512835,38.0199531 L43.512835,38.180123 L60.4374591,84.522627 Z M32.4611088,44.6937008 L24.7195615,67.224273 L40.2026561,67.224273 L32.4611088,44.6937008 Z M89.5058233,68.5590225 L89.5058233,84.8429669 L97.5143205,84.8429669 C103.173687,84.8429669 107.160099,84.22009 109.473676,82.9743176 C111.787254,81.7285451 112.944025,79.6463566 112.944025,76.7276897 C112.944025,73.7734293 111.840643,71.6734444 109.633846,70.4276719 C107.427049,69.1818994 103.565213,68.5590225 98.0482204,68.5590225 L89.5058233,68.5590225 Z M116.734714,62.6327346 C120.614405,64.0564746 123.461842,66.0051894 125.277111,68.4789376 C127.092379,70.9526857 128,74.1115614 128,77.9556593 C128,81.1946677 127.216955,84.1488838 125.650841,86.8183962 C124.084727,89.4879087 121.84237,91.676876 118.923703,93.385364 C117.215215,94.3819819 115.302093,95.1027395 113.18428,95.5476582 C111.066467,95.9925769 108.06776,96.215033 104.188068,96.215033 L99.7033098,96.215033 L76.3184979,96.215033 C73.9693269,96.215033 72.2875593,95.7523244 71.2731446,94.8268935 C70.2587299,93.9014625 69.7515301,92.3887615 69.7515301,90.288745 C69.7515301,88.4022896 70.2320352,86.9696727 71.1930596,85.9908515 C72.1540841,85.0120303 73.5600062,84.522627 75.4108682,84.522627 L76.3184979,84.522627 L76.3184979,44.6937008 L75.4108682,44.6937008 C73.5600062,44.6937008 72.1540841,44.1953993 71.1930596,43.1987813 C70.2320352,42.2021633 69.7515301,40.7428518 69.7515301,38.8208028 C69.7515301,36.7563799 70.2676281,35.2525771 71.2998396,34.3093494 C72.3320511,33.3661217 74.0049204,32.8945149 76.3184979,32.8945149 L100.877889,32.8945149 C108.388118,32.8945149 114.09189,34.3538264 117.989378,37.2724934 C121.886867,40.1911603 123.835581,44.4623161 123.835581,50.0860889 C123.835581,52.8623819 123.239399,55.3093982 122.047017,57.4272114 C120.854635,59.5450246 119.083885,61.2801816 116.734714,62.6327346 L116.734714,62.6327346 Z M89.5058233,44.3733609 L89.5058233,57.8276363 L96.7134708,57.8276363 C101.091471,57.8276363 104.179161,57.3115383 105.976633,56.2793268 C107.774104,55.2471153 108.672827,53.50306 108.672827,51.0471086 C108.672827,48.7335312 107.863087,47.0428653 106.243583,45.9750604 C104.624078,44.9072554 101.999097,44.3733609 98.3685602,44.3733609 L89.5058233,44.3733609 Z\"></path>\n </g>\n</svg>" }, "$:/core/images/new-button": { "title": "$:/core/images/new-button", "tags": "$:/tags/Image", "text": "<svg class=\"tc-image-new-button tc-image-button\" viewBox=\"0 0 128 128\" width=\"22pt\" height=\"22pt\">\n <g fill-rule=\"evenodd\">\n <path d=\"M56,72 L8.00697327,72 C3.59075293,72 0,68.418278 0,64 C0,59.5907123 3.58484404,56 8.00697327,56 L56,56 L56,8.00697327 C56,3.59075293 59.581722,0 64,0 C68.4092877,0 72,3.58484404 72,8.00697327 L72,56 L119.993027,56 C124.409247,56 128,59.581722 128,64 C128,68.4092877 124.415156,72 119.993027,72 L72,72 L72,119.993027 C72,124.409247 68.418278,128 64,128 C59.5907123,128 56,124.415156 56,119.993027 L56,72 L56,72 Z\"></path>\n </g>\n</svg>" }, "$:/core/images/new-here-button": { "title": "$:/core/images/new-here-button", "tags": "$:/tags/Image", "text": "<svg class=\"tc-image-new-here-button tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n <g fill-rule=\"evenodd\">\n \t<g transform=\"translate(52.233611, 64.389922) rotate(75.000000) translate(-52.233611, -64.389922) translate(-7.734417, 3.702450)\">\n\t <path d=\"M18.9270186,45.959338 L18.9080585,49.6521741 C18.8884833,53.4648378 21.0574548,58.7482162 23.7526408,61.4434022 L78.5671839,116.257945 C81.2617332,118.952495 85.6348701,118.950391 88.3334363,116.251825 L115.863237,88.7220241 C118.555265,86.0299959 118.564544,81.6509578 115.869358,78.9557717 L61.0548144,24.1412286 C58.3602652,21.4466794 53.0787224,19.2788426 49.2595808,19.3006519 L25.9781737,19.4336012 C22.1633003,19.4553862 19.0471195,22.5673232 19.0275223,26.3842526 L18.9871663,34.2443819 C19.0818862,34.255617 19.1779758,34.2665345 19.2754441,34.2771502 C22.6891275,34.6489512 27.0485594,34.2348566 31.513244,33.2285542 C31.7789418,32.8671684 32.075337,32.5211298 32.4024112,32.1940556 C34.8567584,29.7397084 38.3789778,29.0128681 41.4406288,30.0213822 C41.5958829,29.9543375 41.7503946,29.8866669 41.9041198,29.8183808 L42.1110981,30.2733467 C43.1114373,30.6972371 44.0473796,31.3160521 44.8614145,32.1300869 C48.2842088,35.5528813 48.2555691,41.130967 44.7974459,44.5890903 C41.4339531,47.952583 36.0649346,48.0717177 32.6241879,44.9262969 C27.8170558,45.8919233 23.0726921,46.2881596 18.9270186,45.959338 Z\"></path>\n\t <path d=\"M45.4903462,38.8768094 C36.7300141,42.6833154 26.099618,44.7997354 18.1909048,43.9383587 C7.2512621,42.7468685 1.50150083,35.8404432 4.66865776,24.7010202 C7.51507386,14.6896965 15.4908218,6.92103848 24.3842626,4.38423012 C34.1310219,1.60401701 42.4070208,6.15882777 42.4070209,16.3101169 L34.5379395,16.310117 C34.5379394,11.9285862 31.728784,10.3825286 26.5666962,11.8549876 C20.2597508,13.6540114 14.3453742,19.4148216 12.2444303,26.8041943 C10.4963869,32.9523565 12.6250796,35.5092726 19.0530263,36.2093718 C25.5557042,36.9176104 35.0513021,34.9907189 42.7038419,31.5913902 L42.7421786,31.6756595 C44.3874154,31.5384763 47.8846101,37.3706354 45.9274416,38.6772897 L45.9302799,38.6835285 C45.9166992,38.6895612 45.9031139,38.6955897 45.8895238,38.7016142 C45.8389288,38.7327898 45.7849056,38.7611034 45.7273406,38.7863919 C45.6506459,38.8200841 45.571574,38.8501593 45.4903462,38.8768094 Z\"></path>\n </g>\n <rect x=\"96\" y=\"80\" width=\"16\" height=\"48\" rx=\"8\"></rect>\n <rect x=\"80\" y=\"96\" width=\"48\" height=\"16\" rx=\"8\"></rect>\n </g>\n </g>\n</svg>" }, "$:/core/images/new-image-button": { "title": "$:/core/images/new-image-button", "tags": "$:/tags/Image", "text": "<svg class=\"tc-image-new-image-button tc-image-button\" viewBox=\"0 0 128 128\" width=\"22pt\" height=\"22pt\">\n <g fill-rule=\"evenodd\">\n <path d=\"M81.3619177,73.6270062 L97.1875317,46.2162388 C97.91364,44.9585822 97.4824378,43.3533085 96.2260476,42.6279312 L46.2162388,13.7547547 C44.9585822,13.0286463 43.3533085,13.4598485 42.6279312,14.7162388 L30.0575956,36.4886988 L40.0978909,31.2276186 C43.1404959,29.6333041 46.8692155,31.3421319 47.6479264,34.6877101 L51.2545483,52.3903732 L61.1353556,53.2399953 C63.2899974,53.4346096 65.1046382,54.9309951 65.706105,57.0091178 C65.7395572,57.1246982 65.8069154,57.3539875 65.9047035,57.6813669 C66.0696435,58.2335608 66.2581528,58.852952 66.4667073,59.5238092 C67.0618822,61.4383079 67.6960725,63.3742727 68.3393254,65.2021174 C68.5462918,65.7902259 68.7511789,66.3583016 68.953259,66.9034738 C69.5777086,68.5881157 70.1617856,70.0172008 70.6783305,71.110045 C70.9334784,71.6498566 71.1627732,72.0871602 71.4035746,72.5373068 C71.6178999,72.7492946 71.9508843,72.9623307 72.4151452,73.1586945 C73.5561502,73.6412938 75.1990755,73.899146 77.0720271,73.9171651 C77.9355886,73.9254732 78.7819239,73.8832103 79.5638842,73.8072782 C80.0123946,73.7637257 80.3172916,73.7224469 80.4352582,73.7027375 C80.7503629,73.6500912 81.0598053,73.6256267 81.3619177,73.6270062 L81.3619177,73.6270062 L81.3619177,73.6270062 L81.3619177,73.6270062 Z M37.4707881,2.64867269 C38.9217993,0.135447653 42.1388058,-0.723707984 44.6486727,0.725364314 L108.293614,37.4707881 C110.806839,38.9217993 111.665994,42.1388058 110.216922,44.6486727 L73.4714982,108.293614 C72.0204871,110.806839 68.8034805,111.665994 66.2936136,110.216922 L2.64867269,73.4714982 C0.135447653,72.0204871 -0.723707984,68.8034805 0.725364314,66.2936136 L37.4707881,2.64867269 L37.4707881,2.64867269 L37.4707881,2.64867269 L37.4707881,2.64867269 Z M80.3080975,53.1397764 C82.8191338,54.5895239 86.0299834,53.7291793 87.4797308,51.218143 C88.9294783,48.7071068 88.0691338,45.4962571 85.5580975,44.0465097 C83.0470612,42.5967622 79.8362116,43.4571068 78.3864641,45.968143 C76.9367166,48.4791793 77.7970612,51.6900289 80.3080975,53.1397764 L80.3080975,53.1397764 L80.3080975,53.1397764 L80.3080975,53.1397764 Z M96,112 L88.0070969,112 C83.5881712,112 80,108.418278 80,104 C80,99.5907123 83.5848994,96 88.0070969,96 L96,96 L96,88.0070969 C96,83.5881712 99.581722,80 104,80 C108.409288,80 112,83.5848994 112,88.0070969 L112,96 L119.992903,96 C124.411829,96 128,99.581722 128,104 C128,108.409288 124.415101,112 119.992903,112 L112,112 L112,119.992903 C112,124.411829 108.418278,128 104,128 C99.5907123,128 96,124.415101 96,119.992903 L96,112 L96,112 Z M33.3471097,51.7910932 C40.7754579,59.7394511 42.3564368,62.4818351 40.7958321,65.1848818 C39.2352273,67.8879286 26.9581062,62.8571718 24.7019652,66.7649227 C22.4458242,70.6726735 23.7947046,70.0228006 22.2648667,72.6725575 L41.9944593,84.0634431 C41.9944593,84.0634431 36.3904568,75.8079231 37.7602356,73.4353966 C40.2754811,69.0788636 46.5298923,72.1787882 48.1248275,69.4162793 C50.538989,65.234829 43.0222016,59.7770885 33.3471097,51.7910932 L33.3471097,51.7910932 Z\"></path>\n </g>\n</svg>" }, "$:/core/images/new-journal-button": { "title": "$:/core/images/new-journal-button", "tags": "$:/tags/Image", "text": "<svg class=\"tc-image-new-journal-button tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n <g fill-rule=\"evenodd\">\n <path d=\"M102.545455,112.818182 L102.545455,124.636364 L102.545455,124.636364 L102.545455,124.636364 C102.545455,125.941761 103.630828,127 104.969697,127 L111.030303,127 C112.369172,127 113.454545,125.941761 113.454545,124.636364 L113.454545,112.818182 L125.575758,112.818182 C126.914626,112.818182 128,111.759982 128,110.454545 L128,104.545455 C128,103.240018 126.914626,102.181818 125.575758,102.181818 L113.454545,102.181818 L113.454545,90.3636364 C113.454545,89.0582 112.369172,88 111.030303,88 L104.969697,88 L104.969697,88 C103.630828,88 102.545455,89.0582 102.545455,90.3636364 L102.545455,102.181818 L90.4242424,102.181818 L90.4242424,102.181818 C89.0853705,102.181818 88,103.240018 88,104.545455 L88,110.454545 L88,110.454545 L88,110.454545 C88,111.759982 89.0853705,112.818182 90.4242424,112.818182 L102.545455,112.818182 Z\"></path>\n <g transform=\"translate(59.816987, 64.316987) rotate(30.000000) translate(-59.816987, -64.316987) translate(20.316987, 12.816987)\">\n <g transform=\"translate(0.000000, 0.000000)\">\n <path d=\"M9.99631148,0 C4.4755011,0 -2.27373675e-13,4.48070044 -2.27373675e-13,9.99759461 L-2.27373675e-13,91.6128884 C-2.27373675e-13,97.1344074 4.46966773,101.610483 9.99631148,101.610483 L68.9318917,101.610483 C74.4527021,101.610483 78.9282032,97.1297826 78.9282032,91.6128884 L78.9282032,9.99759461 C78.9282032,4.47607557 74.4585355,0 68.9318917,0 L9.99631148,0 Z M20.8885263,26 C24.2022348,26 26.8885263,23.3137085 26.8885263,20 C26.8885263,16.6862915 24.2022348,14 20.8885263,14 C17.5748178,14 14.8885263,16.6862915 14.8885263,20 C14.8885263,23.3137085 17.5748178,26 20.8885263,26 Z M57.3033321,25.6783342 C60.6170406,25.6783342 63.3033321,22.9920427 63.3033321,19.6783342 C63.3033321,16.3646258 60.6170406,13.6783342 57.3033321,13.6783342 C53.9896236,13.6783342 51.3033321,16.3646258 51.3033321,19.6783342 C51.3033321,22.9920427 53.9896236,25.6783342 57.3033321,25.6783342 Z\"></path>\n <text font-family=\"Helvetica\" font-size=\"47.1724138\" font-weight=\"bold\" fill=\"#FFFFFF\">\n <tspan x=\"42\" y=\"77.4847912\" text-anchor=\"middle\"><<now \"DD\">></tspan>\n </text>\n </g>\n </g>\n </g>\n</svg>" }, "$:/core/images/opacity": { "title": "$:/core/images/opacity", "tags": "$:/tags/Image", "text": "<svg class=\"tc-image-opacity tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n <g fill-rule=\"evenodd\">\n <path d=\"M102.361773,65 C101.833691,67.051742 101.183534,69.0544767 100.419508,71 L82.5835324,71 C83.7602504,69.1098924 84.7666304,67.1027366 85.581205,65 L102.361773,65 Z M102.834311,63 C103.256674,61.0388326 103.568427,59.0365486 103.762717,57 L87.6555706,57 C87.3692052,59.0609452 86.9083652,61.0660782 86.2884493,63 L102.834311,63 Z M99.5852583,73 C98.6682925,75.0747721 97.6196148,77.0783056 96.4498253,79 L75.8124196,79 C77.8387053,77.2115633 79.6621163,75.1985844 81.2437158,73 L99.5852583,73 Z M95.1689122,81 C93.7449202,83.1155572 92.1695234,85.1207336 90.458251,87 L60.4614747,87 C65.1836162,85.86248 69.5430327,83.794147 73.3347255,81 L95.1689122,81 Z M87.6555706,47 L103.762717,47 C101.246684,20.6269305 79.0321807,0 52,0 C23.281193,0 0,23.281193 0,52 C0,77.2277755 17.9651296,98.2595701 41.8000051,103 L62.1999949,103 C67.8794003,101.870444 73.2255333,99.8158975 78.074754,97 L39,97 L39,95 L81.2493857,95 C83.8589242,93.2215015 86.2981855,91.2116653 88.5376609,89 L39,89 L39,87 L43.5385253,87 C27.7389671,83.1940333 16,68.967908 16,52 C16,32.117749 32.117749,16 52,16 C70.1856127,16 85.2217929,29.4843233 87.6555706,47 Z M87.8767787,49 L103.914907,49 C103.971379,49.9928025 104,50.9930589 104,52 C104,53.0069411 103.971379,54.0071975 103.914907,55 L87.8767787,55 C87.958386,54.0107999 88,53.0102597 88,52 C88,50.9897403 87.958386,49.9892001 87.8767787,49 Z\"></path>\n <path d=\"M76,128 C104.718807,128 128,104.718807 128,76 C128,47.281193 104.718807,24 76,24 C47.281193,24 24,47.281193 24,76 C24,104.718807 47.281193,128 76,128 L76,128 Z M76,112 C95.882251,112 112,95.882251 112,76 C112,56.117749 95.882251,40 76,40 C56.117749,40 40,56.117749 40,76 C40,95.882251 56.117749,112 76,112 L76,112 Z\"></path>\n <path d=\"M37,58 L90,58 L90,62 L37,62 L37,58 L37,58 Z M40,50 L93,50 L93,54 L40,54 L40,50 L40,50 Z M40,42 L93,42 L93,46 L40,46 L40,42 L40,42 Z M32,66 L85,66 L85,70 L32,70 L32,66 L32,66 Z M30,74 L83,74 L83,78 L30,78 L30,74 L30,74 Z M27,82 L80,82 L80,86 L27,86 L27,82 L27,82 Z\"></path>\n </g>\n</svg>" }, "$:/core/images/open-window": { "title": "$:/core/images/open-window", "tags": "$:/tags/Image", "text": "<svg class=\"tc-image-open-window tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n <g fill-rule=\"evenodd\">\n <path d=\"M16,112 L104.993898,112 C108.863261,112 112,115.590712 112,120 C112,124.418278 108.858091,128 104.993898,128 L7.00610161,128 C3.13673853,128 0,124.409288 0,120 C0,119.998364 4.30952878e-07,119.996727 1.29273572e-06,119.995091 C4.89579306e-07,119.993456 0,119.99182 0,119.990183 L0,24.0098166 C0,19.586117 3.59071231,16 8,16 C12.418278,16 16,19.5838751 16,24.0098166 L16,112 Z\"></path>\n <path d=\"M96,43.1959595 L96,56 C96,60.418278 99.581722,64 104,64 C108.418278,64 112,60.418278 112,56 L112,24 C112,19.5907123 108.415101,16 103.992903,16 L72.0070969,16 C67.5881712,16 64,19.581722 64,24 C64,28.4092877 67.5848994,32 72.0070969,32 L84.5685425,32 L48.2698369,68.2987056 C45.1421332,71.4264093 45.1434327,76.4904296 48.267627,79.614624 C51.3854642,82.7324612 56.4581306,82.7378289 59.5835454,79.6124141 L96,43.1959595 Z M32,7.9992458 C32,3.58138434 35.5881049,0 39.9992458,0 L120.000754,0 C124.418616,0 128,3.5881049 128,7.9992458 L128,88.0007542 C128,92.4186157 124.411895,96 120.000754,96 L39.9992458,96 C35.5813843,96 32,92.4118951 32,88.0007542 L32,7.9992458 Z\"></path>\n </g>\n</svg>" }, "$:/core/images/options-button": { "title": "$:/core/images/options-button", "tags": "$:/tags/Image", "text": "<svg class=\"tc-image-options-button tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n <g fill-rule=\"evenodd\">\n <path d=\"M110.48779,76.0002544 C109.354214,80.4045063 107.611262,84.5641217 105.354171,88.3838625 L105.354171,88.3838625 L112.07833,95.1080219 C115.20107,98.2307613 115.210098,103.299824 112.089164,106.420759 L106.420504,112.089418 C103.301049,115.208874 98.2346851,115.205502 95.1077675,112.078585 L88.3836082,105.354425 C84.5638673,107.611516 80.4042519,109.354468 76,110.488045 L76,110.488045 L76,119.993281 C76,124.409501 72.4220153,128.000254 68.0083475,128.000254 L59.9916525,128.000254 C55.5800761,128.000254 52,124.41541 52,119.993281 L52,110.488045 C47.5957481,109.354468 43.4361327,107.611516 39.6163918,105.354425 L32.8922325,112.078585 C29.7694931,115.201324 24.7004301,115.210353 21.5794957,112.089418 L15.9108363,106.420759 C12.7913807,103.301303 12.7947522,98.2349395 15.9216697,95.1080219 L22.6458291,88.3838625 C20.3887383,84.5641217 18.6457859,80.4045063 17.5122098,76.0002544 L8.00697327,76.0002544 C3.59075293,76.0002544 2.19088375e-16,72.4222697 4.89347582e-16,68.0086019 L9.80228577e-16,59.9919069 C1.25035972e-15,55.5803305 3.58484404,52.0002544 8.00697327,52.0002544 L17.5122098,52.0002544 C18.6457859,47.5960025 20.3887383,43.4363871 22.6458291,39.6166462 L15.9216697,32.8924868 C12.7989304,29.7697475 12.7899019,24.7006845 15.9108363,21.5797501 L21.5794957,15.9110907 C24.6989513,12.7916351 29.7653149,12.7950065 32.8922325,15.9219241 L39.6163918,22.6460835 C43.4361327,20.3889927 47.5957481,18.6460403 52,17.5124642 L52,8.00722764 C52,3.5910073 55.5779847,0.000254375069 59.9916525,0.000254375069 L68.0083475,0.000254375069 C72.4199239,0.000254375069 76,3.58509841 76,8.00722764 L76,17.5124642 C80.4042519,18.6460403 84.5638673,20.3889927 88.3836082,22.6460835 L95.1077675,15.9219241 C98.2305069,12.7991848 103.29957,12.7901562 106.420504,15.9110907 L112.089164,21.5797501 C115.208619,24.6992057 115.205248,29.7655693 112.07833,32.8924868 L105.354171,39.6166462 L105.354171,39.6166462 C107.611262,43.4363871 109.354214,47.5960025 110.48779,52.0002544 L119.993027,52.0002544 C124.409247,52.0002544 128,55.5782391 128,59.9919069 L128,68.0086019 C128,72.4201783 124.415156,76.0002544 119.993027,76.0002544 L110.48779,76.0002544 L110.48779,76.0002544 Z M64,96.0002544 C81.673112,96.0002544 96,81.6733664 96,64.0002544 C96,46.3271424 81.673112,32.0002544 64,32.0002544 C46.326888,32.0002544 32,46.3271424 32,64.0002544 C32,81.6733664 46.326888,96.0002544 64,96.0002544 Z\"></path>\n </g>\n</svg>" }, "$:/core/images/paint": { "title": "$:/core/images/paint", "tags": "$:/tags/Image", "text": "<svg class=\"tc-image-paint tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n <g fill-rule=\"evenodd\">\n <path d=\"M83.5265806,76.1907935 C90.430962,69.2864121 91.8921169,59.0000433 87.9100453,50.6642209 L125.812763,12.7615036 C128.732035,9.84223095 128.72611,5.10322984 125.812796,2.18991592 C122.893542,-0.729338085 118.161775,-0.730617045 115.241209,2.18994966 L77.3384914,40.092667 C69.002669,36.1105954 58.7163002,37.5717503 51.8119188,44.4761317 L83.5265806,76.1907935 L83.5265806,76.1907935 L83.5265806,76.1907935 L83.5265806,76.1907935 Z M80.8836921,78.8336819 L49.1690303,47.1190201 C49.1690303,47.1190201 8.50573364,81.242543 0,80.2820711 C0,80.2820711 3.78222974,85.8744423 6.82737483,88.320684 C20.8514801,82.630792 44.1526049,63.720771 44.1526049,63.720771 L44.8144806,64.3803375 C44.8144806,64.3803375 19.450356,90.2231043 9.18040433,92.0477601 C10.4017154,93.4877138 13.5343883,96.1014812 15.4269991,97.8235871 C20.8439164,96.3356979 50.1595367,69.253789 50.1595367,69.253789 L50.8214124,69.9133555 L18.4136144,100.936036 L23.6993903,106.221812 L56.1060358,75.2002881 L56.7679115,75.8598546 C56.7679115,75.8598546 28.9040131,106.396168 28.0841366,108.291555 C28.0841366,108.291555 34.1159238,115.144621 35.6529617,116.115796 C36.3545333,113.280171 63.5365402,82.6307925 63.5365402,82.6307925 L64.1984159,83.290359 C64.1984159,83.290359 43.6013016,107.04575 39.2343772,120.022559 C42.443736,123.571575 46.7339155,125.159692 50.1595362,126.321151 C47.9699978,114.504469 80.8836921,78.8336819 80.8836921,78.8336819 L80.8836921,78.8336819 Z\"></path>\n </g>\n</svg>" }, "$:/core/images/palette": { "title": "$:/core/images/palette", "tags": "$:/tags/Image", "text": "<svg class=\"tc-image-palette tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n <g fill-rule=\"evenodd\">\n <path d=\"M80.2470434,39.1821571 C75.0645698,38.2680897 69.6261555,37.7814854 64.0193999,37.7814854 C28.6624616,37.7814854 0,57.1324214 0,81.0030106 C0,90.644534 4.67604329,99.5487133 12.5805659,106.738252 C23.5031767,91.1899067 26.3405471,72.3946229 36.8885698,63.5622337 C52.0716764,50.8486559 63.4268694,55.7343343 63.4268694,55.7343343 L80.2470434,39.1821571 Z M106.781666,48.8370714 C119.830962,56.749628 128.0388,68.229191 128.0388,81.0030106 C128.0388,90.3534932 128.557501,98.4142085 116.165191,106.082518 C105.367708,112.763955 112.341384,99.546808 104.321443,95.1851533 C96.3015017,90.8234987 84.3749007,96.492742 86.1084305,103.091059 C89.3087234,115.272303 105.529892,114.54645 92.4224435,119.748569 C79.3149955,124.950687 74.2201582,124.224536 64.0193999,124.224536 C56.1979176,124.224536 48.7040365,123.277578 41.7755684,121.544216 C51.620343,117.347916 69.6563669,109.006202 75.129737,102.088562 C82.7876655,92.4099199 87.3713218,80.0000002 83.3235694,72.4837191 C83.1303943,72.1250117 94.5392656,60.81569 106.781666,48.8370714 Z M1.13430476,123.866563 C0.914084026,123.867944 0.693884185,123.868637 0.473712455,123.868637 C33.9526848,108.928928 22.6351223,59.642592 59.2924543,59.6425917 C59.6085574,61.0606542 59.9358353,62.5865065 60.3541977,64.1372318 C34.4465025,59.9707319 36.7873124,112.168427 1.13429588,123.866563 L1.13430476,123.866563 Z M1.84669213,123.859694 C40.7185279,123.354338 79.9985412,101.513051 79.9985401,79.0466836 C70.7284906,79.0466835 65.9257264,75.5670082 63.1833375,71.1051511 C46.585768,64.1019718 32.81846,116.819636 1.84665952,123.859695 L1.84669213,123.859694 Z M67.1980193,59.8524981 C62.748213,63.9666823 72.0838429,76.2846822 78.5155805,71.1700593 C89.8331416,59.8524993 112.468264,37.2173758 123.785825,25.8998146 C135.103386,14.5822535 123.785825,3.26469247 112.468264,14.5822535 C101.150703,25.8998144 78.9500931,48.9868127 67.1980193,59.8524981 Z\"></path>\n </g>\n</svg>" }, "$:/core/images/permalink-button": { "title": "$:/core/images/permalink-button", "tags": "$:/tags/Image", "text": "<svg class=\"tc-image-permalink-button tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n <g fill-rule=\"evenodd\">\n <path d=\"M80.4834582,48 L73.0956761,80 L73.0956761,80 L47.5165418,80 L54.9043239,48 L80.4834582,48 Z M84.1773493,32 L89.8007299,7.64246248 C90.7941633,3.33942958 95.0918297,0.64641956 99.3968675,1.64031585 C103.693145,2.63218977 106.385414,6.93288901 105.390651,11.2416793 L100.598215,32 L104.000754,32 C108.411895,32 112,35.581722 112,40 C112,44.4092877 108.418616,48 104.000754,48 L96.9043239,48 L89.5165418,80 L104.000754,80 C108.411895,80 112,83.581722 112,88 C112,92.4092877 108.418616,96 104.000754,96 L85.8226507,96 L80.1992701,120.357538 C79.2058367,124.66057 74.9081703,127.35358 70.6031325,126.359684 C66.3068546,125.36781 63.6145865,121.067111 64.6093491,116.758321 L69.401785,96 L43.8226507,96 L38.1992701,120.357538 C37.2058367,124.66057 32.9081703,127.35358 28.6031325,126.359684 C24.3068546,125.36781 21.6145865,121.067111 22.6093491,116.758321 L27.401785,96 L23.9992458,96 C19.5881049,96 16,92.418278 16,88 C16,83.5907123 19.5813843,80 23.9992458,80 L31.0956761,80 L38.4834582,48 L23.9992458,48 C19.5881049,48 16,44.418278 16,40 C16,35.5907123 19.5813843,32 23.9992458,32 L42.1773493,32 L47.8007299,7.64246248 C48.7941633,3.33942958 53.0918297,0.64641956 57.3968675,1.64031585 C61.6931454,2.63218977 64.3854135,6.93288901 63.3906509,11.2416793 L58.598215,32 L84.1773493,32 Z\"></path>\n </g>\n</svg>" }, "$:/core/images/permaview-button": { "title": "$:/core/images/permaview-button", "tags": "$:/tags/Image", "text": "<svg class=\"tc-image-permaview-button tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n <g fill-rule=\"evenodd\">\n <path d=\"M81.4834582,48 L79.6365127,56 L79.6365127,56 L74.0573784,56 L75.9043239,48 L81.4834582,48 Z M85.1773493,32 L90.8007299,7.64246248 C91.7941633,3.33942958 96.0918297,0.64641956 100.396867,1.64031585 C104.693145,2.63218977 107.385414,6.93288901 106.390651,11.2416793 L101.598215,32 L104.000754,32 C108.411895,32 112,35.581722 112,40 C112,44.4092877 108.418616,48 104.000754,48 L97.9043239,48 L96.0573784,56 L104.000754,56 C108.411895,56 112,59.581722 112,64 C112,68.4092877 108.418616,72 104.000754,72 L92.3634873,72 L90.5165418,80 L104.000754,80 C108.411895,80 112,83.581722 112,88 C112,92.4092877 108.418616,96 104.000754,96 L86.8226507,96 L81.1992701,120.357538 C80.2058367,124.66057 75.9081703,127.35358 71.6031325,126.359684 C67.3068546,125.36781 64.6145865,121.067111 65.6093491,116.758321 L70.401785,96 L64.8226507,96 L59.1992701,120.357538 C58.2058367,124.66057 53.9081703,127.35358 49.6031325,126.359684 C45.3068546,125.36781 42.6145865,121.067111 43.6093491,116.758321 L48.401785,96 L42.8226507,96 L37.1992701,120.357538 C36.2058367,124.66057 31.9081703,127.35358 27.6031325,126.359684 C23.3068546,125.36781 20.6145865,121.067111 21.6093491,116.758321 L26.401785,96 L23.9992458,96 C19.5881049,96 16,92.418278 16,88 C16,83.5907123 19.5813843,80 23.9992458,80 L30.0956761,80 L31.9426216,72 L23.9992458,72 C19.5881049,72 16,68.418278 16,64 C16,59.5907123 19.5813843,56 23.9992458,56 L35.6365127,56 L37.4834582,48 L23.9992458,48 C19.5881049,48 16,44.418278 16,40 C16,35.5907123 19.5813843,32 23.9992458,32 L41.1773493,32 L46.8007299,7.64246248 C47.7941633,3.33942958 52.0918297,0.64641956 56.3968675,1.64031585 C60.6931454,2.63218977 63.3854135,6.93288901 62.3906509,11.2416793 L57.598215,32 L63.1773493,32 L68.8007299,7.64246248 C69.7941633,3.33942958 74.0918297,0.64641956 78.3968675,1.64031585 C82.6931454,2.63218977 85.3854135,6.93288901 84.3906509,11.2416793 L79.598215,32 L85.1773493,32 Z M53.9043239,48 L52.0573784,56 L57.6365127,56 L59.4834582,48 L53.9043239,48 Z M75.9426216,72 L74.0956761,80 L74.0956761,80 L68.5165418,80 L70.3634873,72 L75.9426216,72 L75.9426216,72 Z M48.3634873,72 L46.5165418,80 L52.0956761,80 L53.9426216,72 L48.3634873,72 L48.3634873,72 Z\"></path>\n </g>\n</svg>" }, "$:/core/images/picture": { "title": "$:/core/images/picture", "tags": "$:/tags/Image", "text": "<svg class=\"tc-image-picture tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n <g fill-rule=\"evenodd\">\n <path d=\"M112,68.2332211 L112,20.0027785 C112,17.7898769 110.207895,16 107.997221,16 L20.0027785,16 C17.7898769,16 16,17.792105 16,20.0027785 L16,58.312373 L25.2413115,43.7197989 C28.041793,39.297674 34.2643908,38.7118128 37.8410347,42.5335275 L56.0882845,63.1470817 L69.7748997,56.7400579 C72.766567,55.3552503 76.3013751,55.9473836 78.678437,58.2315339 C78.8106437,58.3585731 79.0742301,58.609836 79.4527088,58.9673596 C80.0910923,59.570398 80.8117772,60.2441563 81.598127,60.9705595 C83.8422198,63.043576 86.1541548,65.1151944 88.3956721,67.0372264 C89.1168795,67.6556396 89.8200801,68.2492007 90.5021258,68.8146755 C92.6097224,70.5620551 94.4693308,72.0029474 95.9836366,73.0515697 C96.7316295,73.5695379 97.3674038,73.9719282 98.0281481,74.3824999 C98.4724987,74.4989557 99.0742374,74.5263881 99.8365134,74.4317984 C101.709944,74.1993272 104.074502,73.2878514 106.559886,71.8846196 C107.705822,71.2376318 108.790494,70.5370325 109.764561,69.8410487 C110.323259,69.4418522 110.694168,69.1550757 110.834827,69.0391868 C111.210545,68.7296319 111.600264,68.4615815 112,68.2332211 L112,68.2332211 Z M0,8.00697327 C0,3.58484404 3.59075293,0 8.00697327,0 L119.993027,0 C124.415156,0 128,3.59075293 128,8.00697327 L128,119.993027 C128,124.415156 124.409247,128 119.993027,128 L8.00697327,128 C3.58484404,128 0,124.409247 0,119.993027 L0,8.00697327 L0,8.00697327 Z M95,42 C99.418278,42 103,38.418278 103,34 C103,29.581722 99.418278,26 95,26 C90.581722,26 87,29.581722 87,34 C87,38.418278 90.581722,42 95,42 L95,42 Z M32,76 C47.8587691,80.8294182 52.0345556,83.2438712 52.0345556,88 C52.0345556,92.7561288 32,95.4712486 32,102.347107 C32,109.222965 33.2849191,107.337637 33.2849191,112 L67.999999,112 C67.999999,112 54.3147136,105.375255 54.3147136,101.200691 C54.3147136,93.535181 64.9302432,92.860755 64.9302432,88 C64.9302432,80.6425555 50.8523779,79.167282 32,76 L32,76 Z\"></path>\n </g>\n</svg>" }, "$:/core/images/plugin-generic-language": { "title": "$:/core/images/plugin-generic-language", "tags": "$:/tags/Image", "text": "<svg width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n <g fill-rule=\"evenodd\">\n <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>\n </g>\n</svg>" }, "$:/core/images/plugin-generic-plugin": { "title": "$:/core/images/plugin-generic-plugin", "tags": "$:/tags/Image", "text": "<svg width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n <g fill-rule=\"evenodd\">\n <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>\n </g>\n</svg>" }, "$:/core/images/plugin-generic-theme": { "title": "$:/core/images/plugin-generic-theme", "tags": "$:/tags/Image", "text": "<svg width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n <g fill-rule=\"evenodd\">\n <path d=\"M29.4078519,91.4716406 L51.4693474,69.4101451 L51.4646675,69.4054652 C50.5969502,68.5377479 50.5929779,67.1348725 51.4693474,66.2585029 C52.3396494,65.3882009 53.7499654,65.3874786 54.6163097,66.2538229 L64.0805963,75.7181095 C64.9483136,76.5858268 64.9522859,77.9887022 64.0759163,78.8650718 C63.2056143,79.7353737 61.7952984,79.736096 60.9289541,78.8697517 L60.9242741,78.8650718 L60.9242741,78.8650718 L38.8627786,100.926567 C36.2518727,103.537473 32.0187578,103.537473 29.4078519,100.926567 C26.796946,98.3156614 26.796946,94.0825465 29.4078519,91.4716406 Z M60.8017407,66.3810363 C58.3659178,63.6765806 56.3370667,61.2899536 54.9851735,59.5123615 C48.1295381,50.4979488 44.671561,55.2444054 40.7586738,59.5123614 C36.8457866,63.7803174 41.789473,67.2384487 38.0759896,70.2532832 C34.3625062,73.2681177 34.5917646,74.3131575 28.3243876,68.7977024 C22.0570105,63.2822473 21.6235306,61.7636888 24.5005999,58.6166112 C27.3776691,55.4695337 29.7823103,60.4247912 35.6595047,54.8320442 C41.5366991,49.2392972 36.5996215,44.2825646 36.5996215,44.2825646 C36.5996215,44.2825646 48.8365511,19.267683 65.1880231,21.1152173 C81.5394952,22.9627517 59.0022276,18.7228947 53.3962199,38.3410355 C50.9960082,46.7405407 53.8429162,44.7613399 58.3941742,48.3090467 C59.7875202,49.3951602 64.4244828,52.7100463 70.1884353,56.9943417 L90.8648751,36.3179019 L92.4795866,31.5515482 L100.319802,26.8629752 L103.471444,30.0146174 L98.782871,37.8548326 L94.0165173,39.4695441 L73.7934912,59.6925702 C86.4558549,69.2403631 102.104532,81.8392557 102.104532,86.4016913 C102.104533,93.6189834 99.0337832,97.9277545 92.5695848,95.5655717 C87.8765989,93.8506351 73.8015497,80.3744087 63.8173444,69.668717 L60.9242741,72.5617873 L57.7726319,69.4101451 L60.8017407,66.3810363 L60.8017407,66.3810363 Z M63.9533761,1.42108547e-13 L118.512977,32 L118.512977,96 L63.9533761,128 L9.39377563,96 L9.39377563,32 L63.9533761,1.42108547e-13 Z\"></path>\n </g>\n</svg>" }, "$:/core/images/preview-closed": { "title": "$:/core/images/preview-closed", "tags": "$:/tags/Image", "text": "<svg class=\"tc-image-preview-closed tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n <g fill-rule=\"evenodd\">\n <path d=\"M0.0881363238,64 C-0.210292223,65.8846266 0.249135869,67.8634737 1.4664206,69.4579969 C16.2465319,88.8184886 39.1692554,100.414336 64,100.414336 C88.8307446,100.414336 111.753468,88.8184886 126.533579,69.4579969 C127.750864,67.8634737 128.210292,65.8846266 127.911864,64 C110.582357,78.4158332 88.3036732,87.0858436 64,87.0858436 C39.6963268,87.0858436 17.4176431,78.4158332 0.0881363238,64 Z\"></path>\n <rect x=\"62\" y=\"96\" width=\"4\" height=\"16\" rx=\"4\"></rect>\n <rect transform=\"translate(80.000000, 101.000000) rotate(-5.000000) translate(-80.000000, -101.000000) \" x=\"78\" y=\"93\" width=\"4\" height=\"16\" rx=\"4\"></rect>\n <rect transform=\"translate(48.000000, 101.000000) rotate(-355.000000) translate(-48.000000, -101.000000) \" x=\"46\" y=\"93\" width=\"4\" height=\"16\" rx=\"4\"></rect>\n <rect transform=\"translate(32.000000, 96.000000) rotate(-350.000000) translate(-32.000000, -96.000000) \" x=\"30\" y=\"88\" width=\"4\" height=\"16\" rx=\"4\"></rect>\n <rect transform=\"translate(96.000000, 96.000000) rotate(-10.000000) translate(-96.000000, -96.000000) \" x=\"94\" y=\"88\" width=\"4\" height=\"16\" rx=\"4\"></rect>\n <rect transform=\"translate(112.000000, 88.000000) rotate(-20.000000) translate(-112.000000, -88.000000) \" x=\"110\" y=\"80\" width=\"4\" height=\"16\" rx=\"4\"></rect>\n <rect transform=\"translate(16.000000, 88.000000) rotate(-340.000000) translate(-16.000000, -88.000000) \" x=\"14\" y=\"80\" width=\"4\" height=\"16\" rx=\"4\"></rect>\n </g>\n</svg>" }, "$:/core/images/preview-open": { "title": "$:/core/images/preview-open", "tags": "$:/tags/Image", "text": "<svg class=\"tc-image-preview-open tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n <g fill-rule=\"evenodd\">\n <path d=\"M64.1099282,99.5876785 C39.2791836,99.5876785 16.3564602,87.9918313 1.57634884,68.6313396 C-0.378878622,66.070184 -0.378878622,62.5174945 1.57634884,59.9563389 C16.3564602,40.5958472 39.2791836,29 64.1099282,29 C88.9406729,29 111.863396,40.5958472 126.643508,59.9563389 C128.598735,62.5174945 128.598735,66.070184 126.643508,68.6313396 C111.863396,87.9918313 88.9406729,99.5876785 64.1099282,99.5876785 Z M110.213805,67.5808331 C111.654168,66.0569335 111.654168,63.9430665 110.213805,62.4191669 C99.3257042,50.8995835 82.4391647,44 64.1470385,44 C45.8549124,44 28.9683729,50.8995835 18.0802717,62.4191669 C16.6399094,63.9430665 16.6399094,66.0569335 18.0802717,67.5808331 C28.9683729,79.1004165 45.8549124,86 64.1470385,86 C82.4391647,86 99.3257042,79.1004165 110.213805,67.5808331 Z\"></path>\n <path d=\"M63.5,88 C76.4786916,88 87,77.4786916 87,64.5 C87,51.5213084 76.4786916,41 63.5,41 C50.5213084,41 40,51.5213084 40,64.5 C40,77.4786916 50.5213084,88 63.5,88 Z\"></path>\n </g>\n</svg>" }, "$:/core/images/quote": { "title": "$:/core/images/quote", "tags": "$:/tags/Image", "text": "<svg class=\"tc-image-quote tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n <g fill-rule=\"evenodd\">\n <path d=\"M51.2188077,117.712501 L51.2188077,62.1993386 L27.4274524,62.1993386 C27.4274524,53.3075754 29.1096526,45.797753 32.4741035,39.669646 C35.8385544,33.541539 42.0867267,28.9154883 51.2188077,25.7913554 L51.2188077,2 C43.7689521,2.96127169 36.8599155,5.18417913 30.4914905,8.668789 C24.1230656,12.1533989 18.6559149,16.5391352 14.0898743,21.8261295 C9.52383382,27.1131238 5.97919764,33.2411389 3.45585945,40.2103586 C0.932521268,47.1795784 -0.208971741,54.6293222 0.0313461819,62.5598136 L0.0313461819,117.712501 L51.2188077,117.712501 Z M128,117.712501 L128,62.1993386 L104.208645,62.1993386 C104.208645,53.3075754 105.890845,45.797753 109.255296,39.669646 C112.619747,33.541539 118.867919,28.9154883 128,25.7913554 L128,2 C120.550144,2.96127169 113.641108,5.18417913 107.272683,8.668789 C100.904258,12.1533989 95.4371072,16.5391352 90.8710666,21.8261295 C86.3050261,27.1131238 82.7603899,33.2411389 80.2370517,40.2103586 C77.7137136,47.1795784 76.5722206,54.6293222 76.8125385,62.5598136 L76.8125385,117.712501 L128,117.712501 Z\"></path>\n </g>\n</svg>" }, "$:/core/images/refresh-button": { "title": "$:/core/images/refresh-button", "tags": "$:/tags/Image", "text": "<svg class=\"tc-image-refresh-button tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n <g fill-rule=\"evenodd\">\n <path d=\"M106.369002,39.4325143 C116.529932,60.3119371 112.939592,86.1974934 95.5979797,103.539105 C73.7286194,125.408466 38.2713806,125.408466 16.4020203,103.539105 C-5.46734008,81.6697449 -5.46734008,46.2125061 16.4020203,24.3431458 C19.5262146,21.2189514 24.5915344,21.2189514 27.7157288,24.3431458 C30.8399231,27.4673401 30.8399231,32.5326599 27.7157288,35.6568542 C12.0947571,51.2778259 12.0947571,76.6044251 27.7157288,92.2253967 C43.3367004,107.846368 68.6632996,107.846368 84.2842712,92.2253967 C97.71993,78.7897379 99.5995262,58.1740623 89.9230597,42.729491 L83.4844861,54.9932839 C81.4307001,58.9052072 76.5945372,60.4115251 72.682614,58.3577391 C68.7706907,56.3039532 67.2643728,51.4677903 69.3181587,47.555867 L84.4354914,18.7613158 C86.4966389,14.8353707 91.3577499,13.3347805 95.273202,15.415792 L124.145886,30.7612457 C128.047354,32.8348248 129.52915,37.6785572 127.455571,41.5800249 C125.381992,45.4814927 120.53826,46.9632892 116.636792,44.8897102 L106.369002,39.4325143 Z M98.1470904,27.0648707 C97.9798954,26.8741582 97.811187,26.6843098 97.6409651,26.4953413 L98.6018187,26.1987327 L98.1470904,27.0648707 Z\"></path>\n </g>\n</svg>" }, "$:/core/images/right-arrow": { "title": "$:/core/images/right-arrow", "tags": "$:/tags/Image", "text": "<svg class=\"tc-image-right-arrow tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n <path d=\"M80.3563798,109.353315 C78.9238993,110.786918 76.9450203,111.675144 74.7592239,111.675144 L-4.40893546,111.675144 C-8.77412698,111.675144 -12.3248558,108.130732 -12.3248558,103.758478 C-12.3248558,99.3951199 -8.78077754,95.8418109 -4.40893546,95.8418109 L66.8418109,95.8418109 L66.8418109,24.5910645 C66.8418109,20.225873 70.3862233,16.6751442 74.7584775,16.6751442 C79.1218352,16.6751442 82.6751442,20.2192225 82.6751442,24.5910645 L82.6751442,103.759224 C82.6751442,105.941695 81.7891419,107.920575 80.3566508,109.353886 Z\" transform=\"translate(35.175144, 64.175144) rotate(-45.000000) translate(-35.175144, -64.175144) \"></path>\n</svg>" }, "$:/core/images/save-button": { "title": "$:/core/images/save-button", "tags": "$:/tags/Image", "text": "<svg class=\"tc-image-save-button tc-image-button\" viewBox=\"0 0 128 128\" width=\"22pt\" height=\"22pt\">\n <g fill-rule=\"evenodd\">\n <path d=\"M120.78304,34.329058 C125.424287,43.1924006 128.049406,53.2778608 128.049406,63.9764502 C128.049406,99.3226742 99.3956295,127.97645 64.0494055,127.97645 C28.7031816,127.97645 0.0494055385,99.3226742 0.0494055385,63.9764502 C0.0494055385,28.6302262 28.7031816,-0.0235498012 64.0494055,-0.0235498012 C82.8568763,-0.0235498012 99.769563,8.08898558 111.479045,21.0056358 L114.159581,18.3250998 C117.289194,15.1954866 122.356036,15.1939641 125.480231,18.3181584 C128.598068,21.4359957 128.601317,26.5107804 125.473289,29.6388083 L120.78304,34.329058 Z M108.72451,46.3875877 C110.870571,51.8341374 112.049406,57.767628 112.049406,63.9764502 C112.049406,90.4861182 90.5590735,111.97645 64.0494055,111.97645 C37.5397375,111.97645 16.0494055,90.4861182 16.0494055,63.9764502 C16.0494055,37.4667822 37.5397375,15.9764502 64.0494055,15.9764502 C78.438886,15.9764502 91.3495036,22.308215 100.147097,32.3375836 L58.9411255,73.5435552 L41.975581,56.5780107 C38.8486152,53.4510448 33.7746915,53.4551552 30.6568542,56.5729924 C27.5326599,59.6971868 27.5372202,64.7670668 30.6618725,67.8917192 L53.279253,90.5090997 C54.8435723,92.073419 56.8951519,92.8541315 58.9380216,92.8558261 C60.987971,92.8559239 63.0389578,92.0731398 64.6049211,90.5071765 L108.72451,46.3875877 Z\"></path>\n </g>\n</svg>" }, "$:/core/images/size": { "title": "$:/core/images/size", "tags": "$:/tags/Image", "text": "<svg class=\"tc-image-size tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n <path d=\"M92.3431458,26 L83.1715729,35.1715729 C81.6094757,36.73367 81.6094757,39.26633 83.1715729,40.8284271 C84.73367,42.3905243 87.26633,42.3905243 88.8284271,40.8284271 L104.828427,24.8284271 C106.390524,23.26633 106.390524,20.73367 104.828427,19.1715729 L88.8284271,3.17157288 C87.26633,1.60947571 84.73367,1.60947571 83.1715729,3.17157288 C81.6094757,4.73367004 81.6094757,7.26632996 83.1715729,8.82842712 L92.3431457,18 L22,18 C19.790861,18 18,19.790861 18,22 L18,92.3431458 L8.82842712,83.1715729 C7.26632996,81.6094757 4.73367004,81.6094757 3.17157288,83.1715729 C1.60947571,84.73367 1.60947571,87.26633 3.17157288,88.8284271 L19.1715729,104.828427 C20.73367,106.390524 23.26633,106.390524 24.8284271,104.828427 L40.8284271,88.8284271 C42.3905243,87.26633 42.3905243,84.73367 40.8284271,83.1715729 C39.26633,81.6094757 36.73367,81.6094757 35.1715729,83.1715729 L26,92.3431458 L26,22 L22,26 L92.3431458,26 L92.3431458,26 Z M112,52 L112,116 L116,112 L52,112 C49.790861,112 48,113.790861 48,116 C48,118.209139 49.790861,120 52,120 L116,120 C118.209139,120 120,118.209139 120,116 L120,52 C120,49.790861 118.209139,48 116,48 C113.790861,48 112,49.790861 112,52 L112,52 Z\"></path>\n</svg>" }, "$:/core/images/spiral": { "title": "$:/core/images/spiral", "tags": "$:/tags/Image", "text": "<svg class=\"tc-image-spiral tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n <g fill-rule=\"nonzero\">\n <path d=\"M64.534 68.348c3.39 0 6.097-2.62 6.476-5.968l-4.755-.538 4.75.583c.377-3.07-1.194-6.054-3.89-7.78-2.757-1.773-6.34-2.01-9.566-.7-3.46 1.403-6.14 4.392-7.35 8.148l-.01.026c-1.3 4.08-.72 8.64 1.58 12.52 2.5 4.2 6.77 7.2 11.76 8.27 5.37 1.15 11.11-.05 15.83-3.31 5.04-3.51 8.46-9.02 9.45-15.3 1.05-6.7-.72-13.63-4.92-19.19l.02.02c-4.42-5.93-11.2-9.82-18.78-10.78-7.96-1.01-16.13 1.31-22.59 6.43-6.81 5.39-11.18 13.41-12.11 22.26-.98 9.27 1.87 18.65 7.93 26.02 6.32 7.69 15.6 12.56 25.74 13.48 10.54.96 21.15-2.42 29.45-9.4l.01-.01c8.58-7.25 13.94-17.78 14.86-29.21.94-11.84-2.96-23.69-10.86-32.9-8.19-9.5-19.95-15.36-32.69-16.27-13.16-.94-26.24 3.49-36.34 12.34l.01-.01c-10.41 9.08-16.78 22.1-17.68 36.15-.93 14.44 4.03 28.77 13.79 39.78 10.03 11.32 24.28 18.2 39.6 19.09 15.73.92 31.31-4.56 43.24-15.234 12.23-10.954 19.61-26.44 20.5-43.074.14-2.64-1.89-4.89-4.52-5.03-2.64-.14-4.89 1.88-5.03 4.52-.75 14.1-7 27.2-17.33 36.45-10.03 8.98-23.11 13.58-36.3 12.81-12.79-.75-24.67-6.48-33-15.89-8.07-9.11-12.17-20.94-11.41-32.827.74-11.52 5.942-22.15 14.43-29.54l.01-.01c8.18-7.17 18.74-10.75 29.35-9.998 10.21.726 19.6 5.41 26.11 12.96 6.24 7.273 9.32 16.61 8.573 25.894-.718 8.9-4.88 17.064-11.504 22.66l.01-.007c-6.36 5.342-14.44 7.92-22.425 7.19-7.604-.68-14.52-4.314-19.21-10.027-4.44-5.4-6.517-12.23-5.806-18.94.67-6.3 3.76-11.977 8.54-15.766 4.46-3.54 10.05-5.128 15.44-4.44 5.03.63 9.46 3.18 12.32 7.01l.02.024c2.65 3.5 3.75 7.814 3.1 11.92-.59 3.71-2.58 6.925-5.45 8.924-2.56 1.767-5.61 2.403-8.38 1.81-2.42-.516-4.42-1.92-5.53-3.79-.93-1.56-1.15-3.3-.69-4.75l-4.56-1.446L59.325 65c.36-1.12 1.068-1.905 1.84-2.22.25-.103.48-.14.668-.13.06.006.11.015.14.025.01 0 .01 0-.01-.01-.02-.015-.054-.045-.094-.088-.06-.064-.12-.145-.17-.244-.15-.29-.23-.678-.18-1.11l-.005.04c.15-1.332 1.38-2.523 3.035-2.523-2.65 0-4.79 2.144-4.79 4.787s2.14 4.785 4.78 4.785z\"></path>\n </g>\n</svg>" }, "$:/core/images/stamp": { "title": "$:/core/images/stamp", "tags": "$:/tags/Image", "text": "<svg class=\"tc-image-stamp tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n <g fill-rule=\"evenodd\">\n <path d=\"M49.7334301,64 L16.0098166,64 C11.5838751,64 8,67.5829053 8,72.002643 L8,74.4986785 L8,97 L120,97 L120,74.4986785 L120,72.002643 C120,67.5737547 116.413883,64 111.990183,64 L78.2665699,64 C76.502049,60.7519149 75.5,57.0311962 75.5,53.0769231 C75.5,46.6017951 78.1869052,40.7529228 82.5087769,36.5800577 C85.3313113,32.7688808 87,28.0549983 87,22.952183 C87,10.2760423 76.7025492,0 64,0 C51.2974508,0 41,10.2760423 41,22.952183 C41,28.0549983 42.6686887,32.7688808 45.4912231,36.5800577 C49.8130948,40.7529228 52.5,46.6017951 52.5,53.0769231 C52.5,57.0311962 51.497951,60.7519149 49.7334301,64 Z M8,104 L120,104 L120,112 L8,112 L8,104 Z\"></path>\n </g>\n</svg>" }, "$:/core/images/star-filled": { "title": "$:/core/images/star-filled", "tags": "$:/tags/Image", "text": "<svg class=\"tc-image-star-filled tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n <g fill-rule=\"nonzero\">\n <path d=\"M61.8361286,96.8228569 L99.1627704,124.110219 C101.883827,126.099427 105.541968,123.420868 104.505636,120.198072 L90.2895569,75.9887263 L89.0292911,79.8977279 L126.314504,52.5528988 C129.032541,50.5595011 127.635256,46.2255025 124.273711,46.2229134 L78.1610486,46.1873965 L81.4604673,48.6032923 L67.1773543,4.41589688 C66.1361365,1.19470104 61.6144265,1.19470104 60.5732087,4.41589688 L46.2900957,48.6032923 L49.5895144,46.1873965 L3.47685231,46.2229134 C0.115307373,46.2255025 -1.28197785,50.5595011 1.43605908,52.5528988 L38.7212719,79.8977279 L37.4610061,75.9887263 L23.2449266,120.198072 C22.2085954,123.420868 25.8667356,126.099427 28.5877926,124.110219 L65.9144344,96.8228569 L61.8361286,96.8228569 Z\"></path>\n </g>\n</svg>" }, "$:/core/images/storyview-classic": { "title": "$:/core/images/storyview-classic", "tags": "$:/tags/Image", "text": "<svg class=\"tc-image-storyview-classic tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n <g fill-rule=\"evenodd\">\n <path d=\"M8.00697327,0 C3.58484404,0 0,3.59075293 0,8.00697327 L0,119.993027 C0,124.415156 3.59075293,128 8.00697327,128 L119.993027,128 C124.415156,128 128,124.409247 128,119.993027 L128,8.00697327 C128,3.58484404 124.409247,0 119.993027,0 L8.00697327,0 L8.00697327,0 Z M23.9992458,16 C19.5813843,16 16,19.5776607 16,23.9924054 L16,40.0075946 C16,44.4216782 19.5881049,48 23.9992458,48 L104.000754,48 C108.418616,48 112,44.4223393 112,40.0075946 L112,23.9924054 C112,19.5783218 108.411895,16 104.000754,16 L23.9992458,16 L23.9992458,16 Z M23.9992458,64 C19.5813843,64 16,67.5907123 16,72 C16,76.418278 19.5881049,80 23.9992458,80 L104.000754,80 C108.418616,80 112,76.4092877 112,72 C112,67.581722 108.411895,64 104.000754,64 L23.9992458,64 L23.9992458,64 Z M23.9992458,96 C19.5813843,96 16,99.5907123 16,104 C16,108.418278 19.5881049,112 23.9992458,112 L104.000754,112 C108.418616,112 112,108.409288 112,104 C112,99.581722 108.411895,96 104.000754,96 L23.9992458,96 L23.9992458,96 Z\"></path>\n </g>\n</svg>" }, "$:/core/images/storyview-pop": { "title": "$:/core/images/storyview-pop", "tags": "$:/tags/Image", "text": "<svg class=\"tc-image-storyview-pop tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n <g fill-rule=\"evenodd\">\n <path d=\"M8.00697327,0 C3.58484404,0 0,3.59075293 0,8.00697327 L0,119.993027 C0,124.415156 3.59075293,128 8.00697327,128 L119.993027,128 C124.415156,128 128,124.409247 128,119.993027 L128,8.00697327 C128,3.58484404 124.409247,0 119.993027,0 L8.00697327,0 L8.00697327,0 Z M23.9992458,16 C19.5813843,16 16,19.5776607 16,23.9924054 L16,40.0075946 C16,44.4216782 19.5881049,48 23.9992458,48 L104.000754,48 C108.418616,48 112,44.4223393 112,40.0075946 L112,23.9924054 C112,19.5783218 108.411895,16 104.000754,16 L23.9992458,16 L23.9992458,16 Z M16.0098166,56 C11.586117,56 8,59.5776607 8,63.9924054 L8,80.0075946 C8,84.4216782 11.5838751,88 16.0098166,88 L111.990183,88 C116.413883,88 120,84.4223393 120,80.0075946 L120,63.9924054 C120,59.5783218 116.416125,56 111.990183,56 L16.0098166,56 L16.0098166,56 Z M23.9992458,96 C19.5813843,96 16,99.5907123 16,104 C16,108.418278 19.5881049,112 23.9992458,112 L104.000754,112 C108.418616,112 112,108.409288 112,104 C112,99.581722 108.411895,96 104.000754,96 L23.9992458,96 L23.9992458,96 Z M23.9992458,64 C19.5813843,64 16,67.5907123 16,72 C16,76.418278 19.5881049,80 23.9992458,80 L104.000754,80 C108.418616,80 112,76.4092877 112,72 C112,67.581722 108.411895,64 104.000754,64 L23.9992458,64 L23.9992458,64 Z\"></path>\n </g>\n</svg>" }, "$:/core/images/storyview-zoomin": { "title": "$:/core/images/storyview-zoomin", "tags": "$:/tags/Image", "text": "<svg class=\"tc-image-storyview-zoomin tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n <g fill-rule=\"evenodd\">\n <path d=\"M8.00697327,0 C3.58484404,0 0,3.59075293 0,8.00697327 L0,119.993027 C0,124.415156 3.59075293,128 8.00697327,128 L119.993027,128 C124.415156,128 128,124.409247 128,119.993027 L128,8.00697327 C128,3.58484404 124.409247,0 119.993027,0 L8.00697327,0 L8.00697327,0 Z M23.9992458,16 C19.5813843,16 16,19.578055 16,24.0085154 L16,71.9914846 C16,76.4144655 19.5881049,80 23.9992458,80 L104.000754,80 C108.418616,80 112,76.421945 112,71.9914846 L112,24.0085154 C112,19.5855345 108.411895,16 104.000754,16 L23.9992458,16 L23.9992458,16 Z\"></path>\n </g>\n</svg>" }, "$:/core/images/strikethrough": { "title": "$:/core/images/strikethrough", "tags": "$:/tags/Image", "text": "<svg class=\"tc-image-strikethrough tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n <g fill-rule=\"evenodd\">\n <path d=\"M92.793842,38.7255689 L108.215529,38.7255689 C107.987058,31.985687 106.70193,26.1883331 104.360107,21.3333333 C102.018284,16.4783336 98.8197436,12.4516001 94.7643909,9.25301205 C90.7090382,6.05442399 85.9969032,3.71263572 80.6278447,2.22757697 C75.2587862,0.742518233 69.4328739,0 63.1499331,0 C57.552404,0 52.0977508,0.713959839 46.7858099,2.14190094 C41.473869,3.56984203 36.7331757,5.74027995 32.5635877,8.65327979 C28.3939997,11.5662796 25.0526676,15.2788708 22.5394913,19.7911647 C20.026315,24.3034585 18.7697456,29.6438781 18.7697456,35.8125837 C18.7697456,41.4101128 19.883523,46.0651309 22.1111111,49.7777778 C24.3386992,53.4904246 27.3087722,56.5176144 31.021419,58.8594378 C34.7340659,61.2012612 38.9321497,63.0861151 43.6157965,64.5140562 C48.2994433,65.9419973 53.068695,67.1985666 57.9236948,68.2838019 C62.7786945,69.3690371 67.5479462,70.4256977 72.231593,71.4538153 C76.9152398,72.4819329 81.1133237,73.8241773 84.8259705,75.480589 C88.5386174,77.1370007 91.5086903,79.2788802 93.7362784,81.9062918 C95.9638666,84.5337035 97.0776439,87.9607107 97.0776439,92.1874163 C97.0776439,96.6425926 96.1637753,100.298067 94.3360107,103.153949 C92.5082461,106.009831 90.109341,108.265944 87.1392236,109.922356 C84.1691061,111.578768 80.827774,112.749662 77.1151272,113.435074 C73.4024803,114.120485 69.7184476,114.463186 66.0629183,114.463186 C61.4935068,114.463186 57.0383974,113.892018 52.6974565,112.749665 C48.3565156,111.607312 44.5582492,109.836692 41.3025435,107.437751 C38.0468378,105.03881 35.4194656,101.983062 33.4203481,98.270415 C31.4212305,94.5577681 30.4216867,90.1312171 30.4216867,84.9906292 L15,84.9906292 C15,92.4159229 16.3422445,98.8415614 19.0267738,104.267738 C21.711303,109.693914 25.3667774,114.149023 29.9933066,117.633199 C34.6198357,121.117376 39.9888137,123.71619 46.1004016,125.429719 C52.2119895,127.143248 58.6947448,128 65.5488621,128 C71.1463912,128 76.7723948,127.343157 82.4270415,126.029451 C88.0816882,124.715745 93.1936407,122.602424 97.7630522,119.689424 C102.332464,116.776425 106.073613,113.006717 108.986613,108.380187 C111.899613,103.753658 113.356091,98.1847715 113.356091,91.6733601 C113.356091,85.6188899 112.242314,80.5926126 110.014726,76.5943775 C107.787137,72.5961424 104.817065,69.2833688 101.104418,66.6559572 C97.3917708,64.0285455 93.193687,61.9437828 88.5100402,60.4016064 C83.8263934,58.85943 79.0571416,57.5171855 74.2021419,56.3748327 C69.3471422,55.2324798 64.5778904,54.1758192 59.8942436,53.2048193 C55.2105968,52.2338193 51.012513,51.0058084 47.2998661,49.5207497 C43.5872193,48.0356909 40.6171463,46.1222786 38.3895582,43.7804552 C36.1619701,41.4386318 35.0481928,38.3828836 35.0481928,34.6131191 C35.0481928,30.6148841 35.8192694,27.273552 37.3614458,24.5890228 C38.9036222,21.9044935 40.9598265,19.762614 43.5301205,18.1633199 C46.1004145,16.5640259 49.041929,15.4216902 52.3547523,14.7362784 C55.6675757,14.0508667 59.0374661,13.708166 62.4645248,13.708166 C70.9179361,13.708166 77.8576257,15.6786952 83.2838019,19.6198126 C88.709978,23.56093 91.8799597,29.9294518 92.793842,38.7255689 L92.793842,38.7255689 Z\"></path>\n <rect x=\"5\" y=\"54\" width=\"118\" height=\"16\"></rect>\n </g>\n</svg>" }, "$:/core/images/subscript": { "title": "$:/core/images/subscript", "tags": "$:/tags/Image", "text": "<svg class=\"tc-image-subscript tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n <g fill-rule=\"evenodd\">\n <path d=\"M2.27170276,16 L22.1825093,16 L43.8305003,49.6746527 L66.4138983,16 L85.1220387,16 L53.5854592,61.9685735 L87.3937414,111.411516 L67.0820462,111.411516 L43.295982,74.9306422 L19.1090291,111.411516 L0,111.411516 L33.8082822,61.9685735 L2.27170276,16 Z M127.910914,128.411516 L85.3276227,128.411516 C85.3870139,123.24448 86.6342108,118.730815 89.0692508,114.870386 C91.5042907,111.009956 94.8301491,107.654403 99.0469256,104.803624 C101.066227,103.318844 103.174584,101.878629 105.372059,100.482935 C107.569534,99.0872413 109.588805,97.5876355 111.429933,95.9840726 C113.271061,94.3805097 114.785514,92.6433426 115.973338,90.7725192 C117.161163,88.9016958 117.784761,86.7487964 117.844152,84.3137564 C117.844152,83.1853233 117.710524,81.9826691 117.443264,80.7057579 C117.176003,79.4288467 116.656338,78.2410402 115.884252,77.1423026 C115.112166,76.0435651 114.04314,75.123015 112.677142,74.3806248 C111.311144,73.6382345 109.529434,73.267045 107.331959,73.267045 C105.312658,73.267045 103.634881,73.6679297 102.298579,74.4697112 C100.962276,75.2714926 99.8932503,76.3702137 99.0914688,77.7659073 C98.2896874,79.161601 97.6957841,80.8096826 97.3097412,82.7102016 C96.9236982,84.6107206 96.7009845,86.6596869 96.6415933,88.857162 L86.4857457,88.857162 C86.4857457,85.4124713 86.9460207,82.2202411 87.8665846,79.2803758 C88.7871485,76.3405105 90.1679736,73.801574 92.0091014,71.6634901 C93.8502292,69.5254062 96.092214,67.8476295 98.7351233,66.6301095 C101.378033,65.4125895 104.451482,64.8038386 107.955564,64.8038386 C111.756602,64.8038386 114.933984,65.4274371 117.487807,66.6746527 C120.041629,67.9218683 122.105443,69.4957119 123.67931,71.3962309 C125.253178,73.2967499 126.366746,75.3605638 127.02005,77.5877345 C127.673353,79.8149053 128,81.9381095 128,83.9574109 C128,86.4518421 127.613963,88.7086746 126.841877,90.727976 C126.069791,92.7472774 125.03046,94.6032252 123.723854,96.2958749 C122.417247,97.9885247 120.932489,99.5475208 119.269534,100.97291 C117.60658,102.398299 115.884261,103.734582 114.102524,104.981797 C112.320788,106.229013 110.539078,107.416819 108.757341,108.545253 C106.975605,109.673686 105.327523,110.802102 103.813047,111.930535 C102.298571,113.058968 100.977136,114.231927 99.8487031,115.449447 C98.7202699,116.666967 97.9481956,117.958707 97.5324571,119.324705 L127.910914,119.324705 L127.910914,128.411516 Z\"></path>\n </g>\n</svg>" }, "$:/core/images/superscript": { "title": "$:/core/images/superscript", "tags": "$:/tags/Image", "text": "<svg class=\"tc-image-superscript tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n <g fill-rule=\"evenodd\">\n <path d=\"M2.27170276,16 L22.1825093,16 L43.8305003,49.6746527 L66.4138983,16 L85.1220387,16 L53.5854592,61.9685735 L87.3937414,111.411516 L67.0820462,111.411516 L43.295982,74.9306422 L19.1090291,111.411516 L0,111.411516 L33.8082822,61.9685735 L2.27170276,16 Z M127.910914,63.4115159 L85.3276227,63.4115159 C85.3870139,58.2444799 86.6342108,53.7308149 89.0692508,49.8703857 C91.5042907,46.0099565 94.8301491,42.654403 99.0469256,39.8036245 C101.066227,38.318844 103.174584,36.8786285 105.372059,35.4829349 C107.569534,34.0872413 109.588805,32.5876355 111.429933,30.9840726 C113.271061,29.3805097 114.785514,27.6433426 115.973338,25.7725192 C117.161163,23.9016958 117.784761,21.7487964 117.844152,19.3137564 C117.844152,18.1853233 117.710524,16.9826691 117.443264,15.7057579 C117.176003,14.4288467 116.656338,13.2410402 115.884252,12.1423026 C115.112166,11.0435651 114.04314,10.123015 112.677142,9.38062477 C111.311144,8.63823453 109.529434,8.26704499 107.331959,8.26704499 C105.312658,8.26704499 103.634881,8.6679297 102.298579,9.46971115 C100.962276,10.2714926 99.8932503,11.3702137 99.0914688,12.7659073 C98.2896874,14.161601 97.6957841,15.8096826 97.3097412,17.7102016 C96.9236982,19.6107206 96.7009845,21.6596869 96.6415933,23.857162 L86.4857457,23.857162 C86.4857457,20.4124713 86.9460207,17.2202411 87.8665846,14.2803758 C88.7871485,11.3405105 90.1679736,8.80157397 92.0091014,6.6634901 C93.8502292,4.52540622 96.092214,2.84762946 98.7351233,1.63010947 C101.378033,0.412589489 104.451482,-0.196161372 107.955564,-0.196161372 C111.756602,-0.196161372 114.933984,0.427437071 117.487807,1.67465266 C120.041629,2.92186826 122.105443,4.49571195 123.67931,6.39623095 C125.253178,8.29674995 126.366746,10.3605638 127.02005,12.5877345 C127.673353,14.8149053 128,16.9381095 128,18.9574109 C128,21.4518421 127.613963,23.7086746 126.841877,25.727976 C126.069791,27.7472774 125.03046,29.6032252 123.723854,31.2958749 C122.417247,32.9885247 120.932489,34.5475208 119.269534,35.97291 C117.60658,37.3982993 115.884261,38.7345816 114.102524,39.9817972 C112.320788,41.2290128 110.539078,42.4168194 108.757341,43.5452525 C106.975605,44.6736857 105.327523,45.8021019 103.813047,46.9305351 C102.298571,48.0589682 100.977136,49.2319272 99.8487031,50.4494472 C98.7202699,51.6669672 97.9481956,52.9587068 97.5324571,54.3247048 L127.910914,54.3247048 L127.910914,63.4115159 Z\"></path>\n </g>\n</svg>" }, "$:/core/images/tag-button": { "title": "$:/core/images/tag-button", "tags": "$:/tags/Image", "text": "<svg class=\"tc-image-tag-button tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n <g fill-rule=\"evenodd\">\n <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>\n <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>\n </g>\n</svg>" }, "$:/core/images/theme-button": { "title": "$:/core/images/theme-button", "tags": "$:/tags/Image", "text": "<svg class=\"tc-image-theme-button tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n <g fill-rule=\"evenodd\">\n <path d=\"M55.854113,66.9453198 C54.3299482,65.1432292 53.0133883,63.518995 51.9542746,62.1263761 C40.8899947,47.578055 35.3091807,55.2383404 28.9941893,62.1263758 C22.6791979,69.0144112 30.6577916,74.5954741 24.6646171,79.4611023 C18.6714426,84.3267304 19.0414417,86.0133155 8.92654943,77.1119468 C-1.18834284,68.2105781 -1.88793412,65.7597832 2.7553553,60.6807286 C7.39864472,55.601674 11.2794845,63.5989423 20.7646627,54.5728325 C30.2498409,45.5467226 22.2819131,37.5470737 22.2819131,37.5470737 C22.2819131,37.5470737 42.0310399,-2.82433362 68.4206088,0.157393922 C94.8101776,3.13912147 58.4373806,-3.70356506 49.3898693,27.958066 C45.5161782,41.5139906 50.1107906,38.3197672 57.4560458,44.0453955 C59.1625767,45.3756367 63.8839488,48.777453 70.127165,53.3625321 C63.9980513,59.2416709 58.9704753,64.0315459 55.854113,66.9453198 Z M67.4952439,79.8919946 C83.5082212,96.9282402 105.237121,117.617674 112.611591,120.312493 C123.044132,124.12481 128.000001,117.170903 128,105.522947 C127.999999,98.3705516 104.170675,78.980486 84.0760493,63.7529565 C76.6683337,70.9090328 70.7000957,76.7055226 67.4952439,79.8919946 Z\"></path>\n <path d=\"M58.2852966,138.232794 L58.2852966,88.3943645 C56.318874,88.3923153 54.7254089,86.7952906 54.7254089,84.8344788 C54.7254089,82.8684071 56.3175932,81.2745911 58.2890859,81.2745911 L79.6408336,81.2745911 C81.608998,81.2745911 83.2045105,82.8724076 83.2045105,84.8344788 C83.2045105,86.7992907 81.614366,88.3923238 79.6446228,88.3943645 L79.6446228,88.3943646 L79.6446228,138.232794 C79.6446228,144.131009 74.8631748,148.912457 68.9649597,148.912457 C63.0667446,148.912457 58.2852966,144.131009 58.2852966,138.232794 Z M65.405072,-14.8423767 L72.5248474,-14.8423767 L76.0847351,-0.690681892 L72.5248474,6.51694947 L72.5248474,81.2745911 L65.405072,81.2745911 L65.405072,6.51694947 L61.8451843,-0.690681892 L65.405072,-14.8423767 Z\" transform=\"translate(68.964960, 67.035040) rotate(45.000000) translate(-68.964960, -67.035040) \"></path>\n </g>\n</svg>" }, "$:/core/images/tip": { "title": "$:/core/images/tip", "tags": "$:/tags/Image", "text": "<svg class=\"tc-image-tip tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n <g fill-rule=\"evenodd\">\n <path d=\"M64,128.241818 C99.346224,128.241818 128,99.5880417 128,64.2418177 C128,28.8955937 99.346224,0.241817675 64,0.241817675 C28.653776,0.241817675 0,28.8955937 0,64.2418177 C0,99.5880417 28.653776,128.241818 64,128.241818 Z M75.9358659,91.4531941 C75.3115438,95.581915 70.2059206,98.8016748 64,98.8016748 C57.7940794,98.8016748 52.6884562,95.581915 52.0641341,91.4531941 C54.3299053,94.0502127 58.8248941,95.8192805 64,95.8192805 C69.1751059,95.8192805 73.6700947,94.0502127 75.9358659,91.4531941 L75.9358659,91.4531941 Z M75.9358659,95.9453413 C75.3115438,100.074062 70.2059206,103.293822 64,103.293822 C57.7940794,103.293822 52.6884562,100.074062 52.0641341,95.9453413 C54.3299053,98.5423599 58.8248941,100.311428 64,100.311428 C69.1751059,100.311428 73.6700947,98.5423599 75.9358659,95.9453413 L75.9358659,95.9453413 Z M75.9358659,100.40119 C75.3115438,104.529911 70.2059206,107.74967 64,107.74967 C57.7940794,107.74967 52.6884562,104.529911 52.0641341,100.40119 C54.3299053,102.998208 58.8248941,104.767276 64,104.767276 C69.1751059,104.767276 73.6700947,102.998208 75.9358659,100.40119 L75.9358659,100.40119 Z M75.9358659,104.893337 C75.3115438,109.022058 70.2059206,112.241818 64,112.241818 C57.7940794,112.241818 52.6884562,109.022058 52.0641341,104.893337 C54.3299053,107.490356 58.8248941,109.259423 64,109.259423 C69.1751059,109.259423 73.6700947,107.490356 75.9358659,104.893337 L75.9358659,104.893337 Z M64.3010456,24.2418177 C75.9193117,24.2418188 88.0000013,32.0619847 88,48.4419659 C87.9999987,64.8219472 75.9193018,71.7540963 75.9193021,83.5755932 C75.9193022,89.4486648 70.0521957,92.8368862 63.9999994,92.8368862 C57.947803,92.8368862 51.9731007,89.8295115 51.9731007,83.5755932 C51.9731007,71.1469799 39.9999998,65.4700602 40,48.4419647 C40.0000002,31.4138691 52.6827796,24.2418166 64.3010456,24.2418177 Z\"></path>\n </g>\n</svg>" }, "$:/core/images/twitter": { "title": "$:/core/images/twitter", "tags": "$:/tags/Image", "text": "<svg class=\"tc-image-twitter tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n <g fill-rule=\"evenodd\">\n <path d=\"M41.6263422,115.803477 C27.0279663,115.803477 13.4398394,111.540813 1.99987456,104.234833 C4.02221627,104.472643 6.08004574,104.594302 8.16644978,104.594302 C20.277456,104.594302 31.4238403,100.47763 40.270894,93.5715185 C28.9590538,93.3635501 19.4123842,85.9189246 16.1230832,75.6885328 C17.7011365,75.9892376 19.320669,76.1503787 20.9862896,76.1503787 C23.344152,76.1503787 25.6278127,75.8359011 27.7971751,75.247346 C15.9709927,72.8821073 7.06079851,62.4745062 7.06079851,49.9982394 C7.06079851,49.8898938 7.06079851,49.7820074 7.06264203,49.67458 C10.5482779,51.6032228 14.5339687,52.7615103 18.7717609,52.8951059 C11.8355159,48.277565 7.2714207,40.3958845 7.2714207,31.4624258 C7.2714207,26.7434257 8.54621495,22.3200804 10.7713439,18.5169676 C23.5211299,34.0957738 42.568842,44.3472839 64.0532269,45.4210985 C63.6126256,43.5365285 63.3835682,41.5711584 63.3835682,39.5529928 C63.3835682,25.3326379 74.95811,13.8034766 89.2347917,13.8034766 C96.6697089,13.8034766 103.387958,16.930807 108.103682,21.9353619 C113.991886,20.780288 119.52429,18.6372496 124.518847,15.6866694 C122.588682,21.6993889 118.490075,26.7457211 113.152623,29.9327334 C118.381769,29.3102055 123.363882,27.926045 127.999875,25.8780385 C124.534056,31.0418981 120.151087,35.5772616 115.100763,39.2077561 C115.150538,40.3118708 115.175426,41.4224128 115.175426,42.538923 C115.175426,76.5663154 89.1744164,115.803477 41.6263422,115.803477\"></path>\n </g>\n</svg>\n" }, "$:/core/images/underline": { "title": "$:/core/images/underline", "tags": "$:/tags/Image", "text": "<svg class=\"tc-image-underline tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n <g fill-rule=\"evenodd\">\n <path d=\"M7,117.421488 L121.247934,117.421488 L121.247934,128 L7,128 L7,117.421488 Z M104.871212,98.8958333 L104.871212,0 L88.6117424,0 L88.6117424,55.8560606 C88.6117424,60.3194668 88.0060035,64.432115 86.7945076,68.1941288 C85.5830116,71.9561425 83.7657949,75.239885 81.342803,78.0454545 C78.9198111,80.8510241 75.8911167,83.0189317 72.2566288,84.5492424 C68.6221409,86.0795531 64.3182067,86.844697 59.344697,86.844697 C53.0959284,86.844697 48.1862552,85.0593613 44.6155303,81.4886364 C41.0448054,77.9179114 39.2594697,73.0720003 39.2594697,66.9507576 L39.2594697,0 L23,0 L23,65.0378788 C23,70.3939662 23.5419769,75.2717583 24.625947,79.6714015 C25.709917,84.0710447 27.5908957,87.864883 30.2689394,91.0530303 C32.9469831,94.2411776 36.4538925,96.6960141 40.7897727,98.4176136 C45.125653,100.139213 50.545422,101 57.0492424,101 C64.3182182,101 70.630655,99.5653553 75.9867424,96.6960227 C81.3428298,93.8266902 85.742407,89.33147 89.1856061,83.2102273 L89.5681818,83.2102273 L89.5681818,98.8958333 L104.871212,98.8958333 Z\"></path>\n </g>\n</svg>" }, "$:/core/images/unfold-all-button": { "title": "$:/core/images/unfold-all-button", "tags": "$:/tags/Image", "text": "<svg class=\"tc-image-unfold-all tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n <g fill-rule=\"evenodd\">\n <rect x=\"0\" y=\"0\" width=\"128\" height=\"16\" rx=\"8\"></rect>\n <rect x=\"0\" y=\"64\" width=\"128\" height=\"16\" rx=\"8\"></rect>\n <path d=\"M85.598226,8.34884273 C84.1490432,6.89863875 82.1463102,6 79.9340286,6 L47.9482224,6 C43.5292967,6 39.9411255,9.581722 39.9411255,14 C39.9411255,18.4092877 43.5260249,22 47.9482224,22 L71.9411255,22 L71.9411255,45.9929031 C71.9411255,50.4118288 75.5228475,54 79.9411255,54 C84.3504132,54 87.9411255,50.4151006 87.9411255,45.9929031 L87.9411255,14.0070969 C87.9411255,11.7964515 87.0447363,9.79371715 85.5956548,8.34412458 Z\" transform=\"translate(63.941125, 30.000000) scale(1, -1) rotate(-45.000000) translate(-63.941125, -30.000000) \"></path>\n <path d=\"M85.6571005,72.2899682 C84.2079177,70.8397642 82.2051847,69.9411255 79.9929031,69.9411255 L48.0070969,69.9411255 C43.5881712,69.9411255 40,73.5228475 40,77.9411255 C40,82.3504132 43.5848994,85.9411255 48.0070969,85.9411255 L72,85.9411255 L72,109.934029 C72,114.352954 75.581722,117.941125 80,117.941125 C84.4092877,117.941125 88,114.356226 88,109.934029 L88,77.9482224 C88,75.737577 87.1036108,73.7348426 85.6545293,72.2852501 Z\" transform=\"translate(64.000000, 93.941125) scale(1, -1) rotate(-45.000000) translate(-64.000000, -93.941125) \"></path>\n </g>\n</svg>" }, "$:/core/images/unfold-button": { "title": "$:/core/images/unfold-button", "tags": "$:/tags/Image", "text": "<svg class=\"tc-image-unfold tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n <g fill-rule=\"evenodd\">\n <rect x=\"0\" y=\"0\" width=\"128\" height=\"16\" rx=\"8\"></rect>\n <path d=\"M85.598226,11.3488427 C84.1490432,9.89863875 82.1463102,9 79.9340286,9 L47.9482224,9 C43.5292967,9 39.9411255,12.581722 39.9411255,17 C39.9411255,21.4092877 43.5260249,25 47.9482224,25 L71.9411255,25 L71.9411255,48.9929031 C71.9411255,53.4118288 75.5228475,57 79.9411255,57 C84.3504132,57 87.9411255,53.4151006 87.9411255,48.9929031 L87.9411255,17.0070969 C87.9411255,14.7964515 87.0447363,12.7937171 85.5956548,11.3441246 Z\" transform=\"translate(63.941125, 33.000000) scale(1, -1) rotate(-45.000000) translate(-63.941125, -33.000000) \"></path>\n <path d=\"M85.6571005,53.4077172 C84.2079177,51.9575133 82.2051847,51.0588745 79.9929031,51.0588745 L48.0070969,51.0588745 C43.5881712,51.0588745 40,54.6405965 40,59.0588745 C40,63.4681622 43.5848994,67.0588745 48.0070969,67.0588745 L72,67.0588745 L72,91.0517776 C72,95.4707033 75.581722,99.0588745 80,99.0588745 C84.4092877,99.0588745 88,95.4739751 88,91.0517776 L88,59.0659714 C88,56.855326 87.1036108,54.8525917 85.6545293,53.4029991 Z\" transform=\"translate(64.000000, 75.058875) scale(1, -1) rotate(-45.000000) translate(-64.000000, -75.058875) \"></path>\n </g>\n</svg>" }, "$:/core/images/unlocked-padlock": { "title": "$:/core/images/unlocked-padlock", "tags": "$:/tags/Image", "text": "<svg class=\"tc-image-unlocked-padlock tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n <g fill-rule=\"evenodd\">\n <path d=\"M48.6266053,64 L105,64 L105,96.0097716 C105,113.673909 90.6736461,128 73.001193,128 L55.998807,128 C38.3179793,128 24,113.677487 24,96.0097716 L24,64 L30.136303,64 C19.6806213,51.3490406 2.77158986,28.2115132 25.8366966,8.85759246 C50.4723026,-11.8141335 71.6711028,13.2108337 81.613302,25.0594855 C91.5555012,36.9081373 78.9368488,47.4964439 69.1559674,34.9513593 C59.375086,22.4062748 47.9893192,10.8049522 35.9485154,20.9083862 C23.9077117,31.0118202 34.192312,43.2685325 44.7624679,55.8655518 C47.229397,58.805523 48.403443,61.5979188 48.6266053,64 Z M67.7315279,92.3641717 C70.8232551,91.0923621 73,88.0503841 73,84.5 C73,79.8055796 69.1944204,76 64.5,76 C59.8055796,76 56,79.8055796 56,84.5 C56,87.947435 58.0523387,90.9155206 61.0018621,92.2491029 L55.9067479,115.020857 L72.8008958,115.020857 L67.7315279,92.3641717 L67.7315279,92.3641717 Z\"></path>\n </g>\n</svg>" }, "$:/core/images/up-arrow": { "created": "20150316000544368", "modified": "20150316000831867", "tags": "$:/tags/Image", "title": "$:/core/images/up-arrow", "text": "<svg class=\"tc-image-up-arrow tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n<path transform=\"rotate(-135, 63.8945, 64.1752)\" d=\"m109.07576,109.35336c-1.43248,1.43361 -3.41136,2.32182 -5.59717,2.32182l-79.16816,0c-4.36519,0 -7.91592,-3.5444 -7.91592,-7.91666c0,-4.36337 3.54408,-7.91667 7.91592,-7.91667l71.25075,0l0,-71.25074c0,-4.3652 3.54442,-7.91592 7.91667,-7.91592c4.36336,0 7.91667,3.54408 7.91667,7.91592l0,79.16815c0,2.1825 -0.88602,4.16136 -2.3185,5.59467l-0.00027,-0.00056l0.00001,-0.00001z\" />\n</svg>\n \n" }, "$:/core/images/video": { "title": "$:/core/images/video", "tags": "$:/tags/Image", "text": "<svg class=\"tc-image-video tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n <g fill-rule=\"evenodd\">\n <path d=\"M64,12 C29.0909091,12 8.72727273,14.9166667 5.81818182,17.8333333 C2.90909091,20.75 1.93784382e-15,41.1666667 0,64.5 C1.93784382e-15,87.8333333 2.90909091,108.25 5.81818182,111.166667 C8.72727273,114.083333 29.0909091,117 64,117 C98.9090909,117 119.272727,114.083333 122.181818,111.166667 C125.090909,108.25 128,87.8333333 128,64.5 C128,41.1666667 125.090909,20.75 122.181818,17.8333333 C119.272727,14.9166667 98.9090909,12 64,12 Z M54.9161194,44.6182253 C51.102648,42.0759111 48.0112186,43.7391738 48.0112186,48.3159447 L48.0112186,79.6840553 C48.0112186,84.2685636 51.109784,85.9193316 54.9161194,83.3817747 L77.0838806,68.6032672 C80.897352,66.0609529 80.890216,61.9342897 77.0838806,59.3967328 L54.9161194,44.6182253 Z\"></path>\n </g>\n</svg>" }, "$:/core/images/warning": { "title": "$:/core/images/warning", "tags": "$:/tags/Image", "text": "<svg class=\"tc-image-warning tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n <g fill-rule=\"evenodd\">\n <path d=\"M57.0717968,11 C60.1509982,5.66666667 67.8490018,5.66666667 70.9282032,11 L126.353829,107 C129.433031,112.333333 125.584029,119 119.425626,119 L8.57437416,119 C2.41597129,119 -1.43303051,112.333333 1.64617093,107 L57.0717968,11 Z M64,37 C59.581722,37 56,40.5820489 56,44.9935776 L56,73.0064224 C56,77.4211534 59.5907123,81 64,81 C68.418278,81 72,77.4179511 72,73.0064224 L72,44.9935776 C72,40.5788466 68.4092877,37 64,37 Z M64,104 C68.418278,104 72,100.418278 72,96 C72,91.581722 68.418278,88 64,88 C59.581722,88 56,91.581722 56,96 C56,100.418278 59.581722,104 64,104 Z\"></path>\n </g>\n</svg>" }, "$:/language/Buttons/AdvancedSearch/Caption": { "title": "$:/language/Buttons/AdvancedSearch/Caption", "text": "advanced search" }, "$:/language/Buttons/AdvancedSearch/Hint": { "title": "$:/language/Buttons/AdvancedSearch/Hint", "text": "Advanced search" }, "$:/language/Buttons/Cancel/Caption": { "title": "$:/language/Buttons/Cancel/Caption", "text": "cancel" }, "$:/language/Buttons/Cancel/Hint": { "title": "$:/language/Buttons/Cancel/Hint", "text": "Discard changes to this tiddler" }, "$:/language/Buttons/Clone/Caption": { "title": "$:/language/Buttons/Clone/Caption", "text": "clone" }, "$:/language/Buttons/Clone/Hint": { "title": "$:/language/Buttons/Clone/Hint", "text": "Clone this tiddler" }, "$:/language/Buttons/Close/Caption": { "title": "$:/language/Buttons/Close/Caption", "text": "close" }, "$:/language/Buttons/Close/Hint": { "title": "$:/language/Buttons/Close/Hint", "text": "Close this tiddler" }, "$:/language/Buttons/CloseAll/Caption": { "title": "$:/language/Buttons/CloseAll/Caption", "text": "close all" }, "$:/language/Buttons/CloseAll/Hint": { "title": "$:/language/Buttons/CloseAll/Hint", "text": "Close all tiddlers" }, "$:/language/Buttons/CloseOthers/Caption": { "title": "$:/language/Buttons/CloseOthers/Caption", "text": "close others" }, "$:/language/Buttons/CloseOthers/Hint": { "title": "$:/language/Buttons/CloseOthers/Hint", "text": "Close other tiddlers" }, "$:/language/Buttons/ControlPanel/Caption": { "title": "$:/language/Buttons/ControlPanel/Caption", "text": "control panel" }, "$:/language/Buttons/ControlPanel/Hint": { "title": "$:/language/Buttons/ControlPanel/Hint", "text": "Open control panel" }, "$:/language/Buttons/Delete/Caption": { "title": "$:/language/Buttons/Delete/Caption", "text": "delete" }, "$:/language/Buttons/Delete/Hint": { "title": "$:/language/Buttons/Delete/Hint", "text": "Delete this tiddler" }, "$:/language/Buttons/Edit/Caption": { "title": "$:/language/Buttons/Edit/Caption", "text": "edit" }, "$:/language/Buttons/Edit/Hint": { "title": "$:/language/Buttons/Edit/Hint", "text": "Edit this tiddler" }, "$:/language/Buttons/Encryption/Caption": { "title": "$:/language/Buttons/Encryption/Caption", "text": "encryption" }, "$:/language/Buttons/Encryption/Hint": { "title": "$:/language/Buttons/Encryption/Hint", "text": "Set or clear a password for saving this wiki" }, "$:/language/Buttons/Encryption/ClearPassword/Caption": { "title": "$:/language/Buttons/Encryption/ClearPassword/Caption", "text": "clear password" }, "$:/language/Buttons/Encryption/ClearPassword/Hint": { "title": "$:/language/Buttons/Encryption/ClearPassword/Hint", "text": "Clear the password and save this wiki without encryption" }, "$:/language/Buttons/Encryption/SetPassword/Caption": { "title": "$:/language/Buttons/Encryption/SetPassword/Caption", "text": "set password" }, "$:/language/Buttons/Encryption/SetPassword/Hint": { "title": "$:/language/Buttons/Encryption/SetPassword/Hint", "text": "Set a password for saving this wiki with encryption" }, "$:/language/Buttons/ExportPage/Caption": { "title": "$:/language/Buttons/ExportPage/Caption", "text": "export all" }, "$:/language/Buttons/ExportPage/Hint": { "title": "$:/language/Buttons/ExportPage/Hint", "text": "Export all tiddlers" }, "$:/language/Buttons/ExportTiddler/Caption": { "title": "$:/language/Buttons/ExportTiddler/Caption", "text": "export tiddler" }, "$:/language/Buttons/ExportTiddler/Hint": { "title": "$:/language/Buttons/ExportTiddler/Hint", "text": "Export tiddler" }, "$:/language/Buttons/ExportTiddlers/Caption": { "title": "$:/language/Buttons/ExportTiddlers/Caption", "text": "export tiddlers" }, "$:/language/Buttons/ExportTiddlers/Hint": { "title": "$:/language/Buttons/ExportTiddlers/Hint", "text": "Export tiddlers" }, "$:/language/Buttons/Fold/Caption": { "title": "$:/language/Buttons/Fold/Caption", "text": "fold tiddler" }, "$:/language/Buttons/Fold/Hint": { "title": "$:/language/Buttons/Fold/Hint", "text": "Fold the body of this tiddler" }, "$:/language/Buttons/Fold/FoldBar/Caption": { "title": "$:/language/Buttons/Fold/FoldBar/Caption", "text": "fold-bar" }, "$:/language/Buttons/Fold/FoldBar/Hint": { "title": "$:/language/Buttons/Fold/FoldBar/Hint", "text": "Optional bars to fold and unfold tiddlers" }, "$:/language/Buttons/Unfold/Caption": { "title": "$:/language/Buttons/Unfold/Caption", "text": "unfold tiddler" }, "$:/language/Buttons/Unfold/Hint": { "title": "$:/language/Buttons/Unfold/Hint", "text": "Unfold the body of this tiddler" }, "$:/language/Buttons/FoldOthers/Caption": { "title": "$:/language/Buttons/FoldOthers/Caption", "text": "fold other tiddlers" }, "$:/language/Buttons/FoldOthers/Hint": { "title": "$:/language/Buttons/FoldOthers/Hint", "text": "Fold the bodies of other opened tiddlers" }, "$:/language/Buttons/FoldAll/Caption": { "title": "$:/language/Buttons/FoldAll/Caption", "text": "fold all tiddlers" }, "$:/language/Buttons/FoldAll/Hint": { "title": "$:/language/Buttons/FoldAll/Hint", "text": "Fold the bodies of all opened tiddlers" }, "$:/language/Buttons/UnfoldAll/Caption": { "title": "$:/language/Buttons/UnfoldAll/Caption", "text": "unfold all tiddlers" }, "$:/language/Buttons/UnfoldAll/Hint": { "title": "$:/language/Buttons/UnfoldAll/Hint", "text": "Unfold the bodies of all opened tiddlers" }, "$:/language/Buttons/FullScreen/Caption": { "title": "$:/language/Buttons/FullScreen/Caption", "text": "full-screen" }, "$:/language/Buttons/FullScreen/Hint": { "title": "$:/language/Buttons/FullScreen/Hint", "text": "Enter or leave full-screen mode" }, "$:/language/Buttons/Help/Caption": { "title": "$:/language/Buttons/Help/Caption", "text": "help" }, "$:/language/Buttons/Help/Hint": { "title": "$:/language/Buttons/Help/Hint", "text": "Show help panel" }, "$:/language/Buttons/Import/Caption": { "title": "$:/language/Buttons/Import/Caption", "text": "import" }, "$:/language/Buttons/Import/Hint": { "title": "$:/language/Buttons/Import/Hint", "text": "Import many types of file including text, image, TiddlyWiki or JSON" }, "$:/language/Buttons/Info/Caption": { "title": "$:/language/Buttons/Info/Caption", "text": "info" }, "$:/language/Buttons/Info/Hint": { "title": "$:/language/Buttons/Info/Hint", "text": "Show information for this tiddler" }, "$:/language/Buttons/Home/Caption": { "title": "$:/language/Buttons/Home/Caption", "text": "home" }, "$:/language/Buttons/Home/Hint": { "title": "$:/language/Buttons/Home/Hint", "text": "Open the default tiddlers" }, "$:/language/Buttons/Language/Caption": { "title": "$:/language/Buttons/Language/Caption", "text": "language" }, "$:/language/Buttons/Language/Hint": { "title": "$:/language/Buttons/Language/Hint", "text": "Choose the user interface language" }, "$:/language/Buttons/More/Caption": { "title": "$:/language/Buttons/More/Caption", "text": "more" }, "$:/language/Buttons/More/Hint": { "title": "$:/language/Buttons/More/Hint", "text": "More actions" }, "$:/language/Buttons/NewHere/Caption": { "title": "$:/language/Buttons/NewHere/Caption", "text": "new here" }, "$:/language/Buttons/NewHere/Hint": { "title": "$:/language/Buttons/NewHere/Hint", "text": "Create a new tiddler tagged with this one" }, "$:/language/Buttons/NewJournal/Caption": { "title": "$:/language/Buttons/NewJournal/Caption", "text": "new journal" }, "$:/language/Buttons/NewJournal/Hint": { "title": "$:/language/Buttons/NewJournal/Hint", "text": "Create a new journal tiddler" }, "$:/language/Buttons/NewJournalHere/Caption": { "title": "$:/language/Buttons/NewJournalHere/Caption", "text": "new journal here" }, "$:/language/Buttons/NewJournalHere/Hint": { "title": "$:/language/Buttons/NewJournalHere/Hint", "text": "Create a new journal tiddler tagged with this one" }, "$:/language/Buttons/NewImage/Caption": { "title": "$:/language/Buttons/NewImage/Caption", "text": "new image" }, "$:/language/Buttons/NewImage/Hint": { "title": "$:/language/Buttons/NewImage/Hint", "text": "Create a new image tiddler" }, "$:/language/Buttons/NewMarkdown/Caption": { "title": "$:/language/Buttons/NewMarkdown/Caption", "text": "new Markdown tiddler" }, "$:/language/Buttons/NewMarkdown/Hint": { "title": "$:/language/Buttons/NewMarkdown/Hint", "text": "Create a new Markdown tiddler" }, "$:/language/Buttons/NewTiddler/Caption": { "title": "$:/language/Buttons/NewTiddler/Caption", "text": "new tiddler" }, "$:/language/Buttons/NewTiddler/Hint": { "title": "$:/language/Buttons/NewTiddler/Hint", "text": "Create a new tiddler" }, "$:/language/Buttons/OpenWindow/Caption": { "title": "$:/language/Buttons/OpenWindow/Caption", "text": "open in new window" }, "$:/language/Buttons/OpenWindow/Hint": { "title": "$:/language/Buttons/OpenWindow/Hint", "text": "Open tiddler in new window" }, "$:/language/Buttons/Palette/Caption": { "title": "$:/language/Buttons/Palette/Caption", "text": "palette" }, "$:/language/Buttons/Palette/Hint": { "title": "$:/language/Buttons/Palette/Hint", "text": "Choose the colour palette" }, "$:/language/Buttons/Permalink/Caption": { "title": "$:/language/Buttons/Permalink/Caption", "text": "permalink" }, "$:/language/Buttons/Permalink/Hint": { "title": "$:/language/Buttons/Permalink/Hint", "text": "Set browser address bar to a direct link to this tiddler" }, "$:/language/Buttons/Permaview/Caption": { "title": "$:/language/Buttons/Permaview/Caption", "text": "permaview" }, "$:/language/Buttons/Permaview/Hint": { "title": "$:/language/Buttons/Permaview/Hint", "text": "Set browser address bar to a direct link to all the tiddlers in this story" }, "$:/language/Buttons/Refresh/Caption": { "title": "$:/language/Buttons/Refresh/Caption", "text": "refresh" }, "$:/language/Buttons/Refresh/Hint": { "title": "$:/language/Buttons/Refresh/Hint", "text": "Perform a full refresh of the wiki" }, "$:/language/Buttons/Save/Caption": { "title": "$:/language/Buttons/Save/Caption", "text": "ok" }, "$:/language/Buttons/Save/Hint": { "title": "$:/language/Buttons/Save/Hint", "text": "Confirm changes to this tiddler" }, "$:/language/Buttons/SaveWiki/Caption": { "title": "$:/language/Buttons/SaveWiki/Caption", "text": "save changes" }, "$:/language/Buttons/SaveWiki/Hint": { "title": "$:/language/Buttons/SaveWiki/Hint", "text": "Save changes" }, "$:/language/Buttons/StoryView/Caption": { "title": "$:/language/Buttons/StoryView/Caption", "text": "storyview" }, "$:/language/Buttons/StoryView/Hint": { "title": "$:/language/Buttons/StoryView/Hint", "text": "Choose the story visualisation" }, "$:/language/Buttons/HideSideBar/Caption": { "title": "$:/language/Buttons/HideSideBar/Caption", "text": "hide sidebar" }, "$:/language/Buttons/HideSideBar/Hint": { "title": "$:/language/Buttons/HideSideBar/Hint", "text": "Hide sidebar" }, "$:/language/Buttons/ShowSideBar/Caption": { "title": "$:/language/Buttons/ShowSideBar/Caption", "text": "show sidebar" }, "$:/language/Buttons/ShowSideBar/Hint": { "title": "$:/language/Buttons/ShowSideBar/Hint", "text": "Show sidebar" }, "$:/language/Buttons/TagManager/Caption": { "title": "$:/language/Buttons/TagManager/Caption", "text": "tag manager" }, "$:/language/Buttons/TagManager/Hint": { "title": "$:/language/Buttons/TagManager/Hint", "text": "Open tag manager" }, "$:/language/Buttons/Theme/Caption": { "title": "$:/language/Buttons/Theme/Caption", "text": "theme" }, "$:/language/Buttons/Theme/Hint": { "title": "$:/language/Buttons/Theme/Hint", "text": "Choose the display theme" }, "$:/language/Buttons/Bold/Caption": { "title": "$:/language/Buttons/Bold/Caption", "text": "bold" }, "$:/language/Buttons/Bold/Hint": { "title": "$:/language/Buttons/Bold/Hint", "text": "Apply bold formatting to selection" }, "$:/language/Buttons/Clear/Caption": { "title": "$:/language/Buttons/Clear/Caption", "text": "clear" }, "$:/language/Buttons/Clear/Hint": { "title": "$:/language/Buttons/Clear/Hint", "text": "Clear image to solid colour" }, "$:/language/Buttons/EditorHeight/Caption": { "title": "$:/language/Buttons/EditorHeight/Caption", "text": "editor height" }, "$:/language/Buttons/EditorHeight/Caption/Auto": { "title": "$:/language/Buttons/EditorHeight/Caption/Auto", "text": "Automatically adjust height to fit content" }, "$:/language/Buttons/EditorHeight/Caption/Fixed": { "title": "$:/language/Buttons/EditorHeight/Caption/Fixed", "text": "Fixed height:" }, "$:/language/Buttons/EditorHeight/Hint": { "title": "$:/language/Buttons/EditorHeight/Hint", "text": "Choose the height of the text editor" }, "$:/language/Buttons/Excise/Caption": { "title": "$:/language/Buttons/Excise/Caption", "text": "excise" }, "$:/language/Buttons/Excise/Caption/Excise": { "title": "$:/language/Buttons/Excise/Caption/Excise", "text": "Perform excision" }, "$:/language/Buttons/Excise/Caption/MacroName": { "title": "$:/language/Buttons/Excise/Caption/MacroName", "text": "Macro name:" }, "$:/language/Buttons/Excise/Caption/NewTitle": { "title": "$:/language/Buttons/Excise/Caption/NewTitle", "text": "Title of new tiddler:" }, "$:/language/Buttons/Excise/Caption/Replace": { "title": "$:/language/Buttons/Excise/Caption/Replace", "text": "Replace excised text with:" }, "$:/language/Buttons/Excise/Caption/Replace/Macro": { "title": "$:/language/Buttons/Excise/Caption/Replace/Macro", "text": "macro" }, "$:/language/Buttons/Excise/Caption/Replace/Link": { "title": "$:/language/Buttons/Excise/Caption/Replace/Link", "text": "link" }, "$:/language/Buttons/Excise/Caption/Replace/Transclusion": { "title": "$:/language/Buttons/Excise/Caption/Replace/Transclusion", "text": "transclusion" }, "$:/language/Buttons/Excise/Caption/Tag": { "title": "$:/language/Buttons/Excise/Caption/Tag", "text": "Tag new tiddler with the title of this tiddler" }, "$:/language/Buttons/Excise/Caption/TiddlerExists": { "title": "$:/language/Buttons/Excise/Caption/TiddlerExists", "text": "Warning: tiddler already exists" }, "$:/language/Buttons/Excise/Hint": { "title": "$:/language/Buttons/Excise/Hint", "text": "Excise the selected text into a new tiddler" }, "$:/language/Buttons/Heading1/Caption": { "title": "$:/language/Buttons/Heading1/Caption", "text": "heading 1" }, "$:/language/Buttons/Heading1/Hint": { "title": "$:/language/Buttons/Heading1/Hint", "text": "Apply heading level 1 formatting to lines containing selection" }, "$:/language/Buttons/Heading2/Caption": { "title": "$:/language/Buttons/Heading2/Caption", "text": "heading 2" }, "$:/language/Buttons/Heading2/Hint": { "title": "$:/language/Buttons/Heading2/Hint", "text": "Apply heading level 2 formatting to lines containing selection" }, "$:/language/Buttons/Heading3/Caption": { "title": "$:/language/Buttons/Heading3/Caption", "text": "heading 3" }, "$:/language/Buttons/Heading3/Hint": { "title": "$:/language/Buttons/Heading3/Hint", "text": "Apply heading level 3 formatting to lines containing selection" }, "$:/language/Buttons/Heading4/Caption": { "title": "$:/language/Buttons/Heading4/Caption", "text": "heading 4" }, "$:/language/Buttons/Heading4/Hint": { "title": "$:/language/Buttons/Heading4/Hint", "text": "Apply heading level 4 formatting to lines containing selection" }, "$:/language/Buttons/Heading5/Caption": { "title": "$:/language/Buttons/Heading5/Caption", "text": "heading 5" }, "$:/language/Buttons/Heading5/Hint": { "title": "$:/language/Buttons/Heading5/Hint", "text": "Apply heading level 5 formatting to lines containing selection" }, "$:/language/Buttons/Heading6/Caption": { "title": "$:/language/Buttons/Heading6/Caption", "text": "heading 6" }, "$:/language/Buttons/Heading6/Hint": { "title": "$:/language/Buttons/Heading6/Hint", "text": "Apply heading level 6 formatting to lines containing selection" }, "$:/language/Buttons/Italic/Caption": { "title": "$:/language/Buttons/Italic/Caption", "text": "italic" }, "$:/language/Buttons/Italic/Hint": { "title": "$:/language/Buttons/Italic/Hint", "text": "Apply italic formatting to selection" }, "$:/language/Buttons/LineWidth/Caption": { "title": "$:/language/Buttons/LineWidth/Caption", "text": "line width" }, "$:/language/Buttons/LineWidth/Hint": { "title": "$:/language/Buttons/LineWidth/Hint", "text": "Set line width for painting" }, "$:/language/Buttons/Link/Caption": { "title": "$:/language/Buttons/Link/Caption", "text": "link" }, "$:/language/Buttons/Link/Hint": { "title": "$:/language/Buttons/Link/Hint", "text": "Create wikitext link" }, "$:/language/Buttons/ListBullet/Caption": { "title": "$:/language/Buttons/ListBullet/Caption", "text": "bulleted list" }, "$:/language/Buttons/ListBullet/Hint": { "title": "$:/language/Buttons/ListBullet/Hint", "text": "Apply bulleted list formatting to lines containing selection" }, "$:/language/Buttons/ListNumber/Caption": { "title": "$:/language/Buttons/ListNumber/Caption", "text": "numbered list" }, "$:/language/Buttons/ListNumber/Hint": { "title": "$:/language/Buttons/ListNumber/Hint", "text": "Apply numbered list formatting to lines containing selection" }, "$:/language/Buttons/MonoBlock/Caption": { "title": "$:/language/Buttons/MonoBlock/Caption", "text": "monospaced block" }, "$:/language/Buttons/MonoBlock/Hint": { "title": "$:/language/Buttons/MonoBlock/Hint", "text": "Apply monospaced block formatting to lines containing selection" }, "$:/language/Buttons/MonoLine/Caption": { "title": "$:/language/Buttons/MonoLine/Caption", "text": "monospaced" }, "$:/language/Buttons/MonoLine/Hint": { "title": "$:/language/Buttons/MonoLine/Hint", "text": "Apply monospaced character formatting to selection" }, "$:/language/Buttons/Opacity/Caption": { "title": "$:/language/Buttons/Opacity/Caption", "text": "opacity" }, "$:/language/Buttons/Opacity/Hint": { "title": "$:/language/Buttons/Opacity/Hint", "text": "Set painting opacity" }, "$:/language/Buttons/Paint/Caption": { "title": "$:/language/Buttons/Paint/Caption", "text": "paint colour" }, "$:/language/Buttons/Paint/Hint": { "title": "$:/language/Buttons/Paint/Hint", "text": "Set painting colour" }, "$:/language/Buttons/Picture/Caption": { "title": "$:/language/Buttons/Picture/Caption", "text": "picture" }, "$:/language/Buttons/Picture/Hint": { "title": "$:/language/Buttons/Picture/Hint", "text": "Insert picture" }, "$:/language/Buttons/Preview/Caption": { "title": "$:/language/Buttons/Preview/Caption", "text": "preview" }, "$:/language/Buttons/Preview/Hint": { "title": "$:/language/Buttons/Preview/Hint", "text": "Show preview pane" }, "$:/language/Buttons/PreviewType/Caption": { "title": "$:/language/Buttons/PreviewType/Caption", "text": "preview type" }, "$:/language/Buttons/PreviewType/Hint": { "title": "$:/language/Buttons/PreviewType/Hint", "text": "Choose preview type" }, "$:/language/Buttons/Quote/Caption": { "title": "$:/language/Buttons/Quote/Caption", "text": "quote" }, "$:/language/Buttons/Quote/Hint": { "title": "$:/language/Buttons/Quote/Hint", "text": "Apply quoted text formatting to lines containing selection" }, "$:/language/Buttons/Size/Caption": { "title": "$:/language/Buttons/Size/Caption", "text": "image size" }, "$:/language/Buttons/Size/Caption/Height": { "title": "$:/language/Buttons/Size/Caption/Height", "text": "Height:" }, "$:/language/Buttons/Size/Caption/Resize": { "title": "$:/language/Buttons/Size/Caption/Resize", "text": "Resize image" }, "$:/language/Buttons/Size/Caption/Width": { "title": "$:/language/Buttons/Size/Caption/Width", "text": "Width:" }, "$:/language/Buttons/Size/Hint": { "title": "$:/language/Buttons/Size/Hint", "text": "Set image size" }, "$:/language/Buttons/Stamp/Caption": { "title": "$:/language/Buttons/Stamp/Caption", "text": "stamp" }, "$:/language/Buttons/Stamp/Caption/New": { "title": "$:/language/Buttons/Stamp/Caption/New", "text": "Add your own" }, "$:/language/Buttons/Stamp/Hint": { "title": "$:/language/Buttons/Stamp/Hint", "text": "Insert a preconfigured snippet of text" }, "$:/language/Buttons/Stamp/New/Title": { "title": "$:/language/Buttons/Stamp/New/Title", "text": "Name as shown in menu" }, "$:/language/Buttons/Stamp/New/Text": { "title": "$:/language/Buttons/Stamp/New/Text", "text": "Text of snippet. (Remember to add a descriptive title in the caption field)." }, "$:/language/Buttons/Strikethrough/Caption": { "title": "$:/language/Buttons/Strikethrough/Caption", "text": "strikethrough" }, "$:/language/Buttons/Strikethrough/Hint": { "title": "$:/language/Buttons/Strikethrough/Hint", "text": "Apply strikethrough formatting to selection" }, "$:/language/Buttons/Subscript/Caption": { "title": "$:/language/Buttons/Subscript/Caption", "text": "subscript" }, "$:/language/Buttons/Subscript/Hint": { "title": "$:/language/Buttons/Subscript/Hint", "text": "Apply subscript formatting to selection" }, "$:/language/Buttons/Superscript/Caption": { "title": "$:/language/Buttons/Superscript/Caption", "text": "superscript" }, "$:/language/Buttons/Superscript/Hint": { "title": "$:/language/Buttons/Superscript/Hint", "text": "Apply superscript formatting to selection" }, "$:/language/Buttons/Underline/Caption": { "title": "$:/language/Buttons/Underline/Caption", "text": "underline" }, "$:/language/Buttons/Underline/Hint": { "title": "$:/language/Buttons/Underline/Hint", "text": "Apply underline formatting to selection" }, "$:/language/ControlPanel/Advanced/Caption": { "title": "$:/language/ControlPanel/Advanced/Caption", "text": "Advanced" }, "$:/language/ControlPanel/Advanced/Hint": { "title": "$:/language/ControlPanel/Advanced/Hint", "text": "Internal information about this TiddlyWiki" }, "$:/language/ControlPanel/Appearance/Caption": { "title": "$:/language/ControlPanel/Appearance/Caption", "text": "Appearance" }, "$:/language/ControlPanel/Appearance/Hint": { "title": "$:/language/ControlPanel/Appearance/Hint", "text": "Ways to customise the appearance of your TiddlyWiki." }, "$:/language/ControlPanel/Basics/AnimDuration/Prompt": { "title": "$:/language/ControlPanel/Basics/AnimDuration/Prompt", "text": "Animation duration:" }, "$:/language/ControlPanel/Basics/Caption": { "title": "$:/language/ControlPanel/Basics/Caption", "text": "Basics" }, "$:/language/ControlPanel/Basics/DefaultTiddlers/BottomHint": { "title": "$:/language/ControlPanel/Basics/DefaultTiddlers/BottomHint", "text": "Use [[double square brackets]] for titles with spaces. Or you can choose to <$button set=\"$:/DefaultTiddlers\" setTo=\"[list[$:/StoryList]]\">retain story ordering</$button>" }, "$:/language/ControlPanel/Basics/DefaultTiddlers/Prompt": { "title": "$:/language/ControlPanel/Basics/DefaultTiddlers/Prompt", "text": "Default tiddlers:" }, "$:/language/ControlPanel/Basics/DefaultTiddlers/TopHint": { "title": "$:/language/ControlPanel/Basics/DefaultTiddlers/TopHint", "text": "Choose which tiddlers are displayed at startup:" }, "$:/language/ControlPanel/Basics/Language/Prompt": { "title": "$:/language/ControlPanel/Basics/Language/Prompt", "text": "Hello! Current language:" }, "$:/language/ControlPanel/Basics/NewJournal/Title/Prompt": { "title": "$:/language/ControlPanel/Basics/NewJournal/Title/Prompt", "text": "Title of new journal tiddlers" }, "$:/language/ControlPanel/Basics/NewJournal/Tags/Prompt": { "title": "$:/language/ControlPanel/Basics/NewJournal/Tags/Prompt", "text": "Tags for new journal tiddlers" }, "$:/language/ControlPanel/Basics/OverriddenShadowTiddlers/Prompt": { "title": "$:/language/ControlPanel/Basics/OverriddenShadowTiddlers/Prompt", "text": "Number of overridden shadow tiddlers:" }, "$:/language/ControlPanel/Basics/ShadowTiddlers/Prompt": { "title": "$:/language/ControlPanel/Basics/ShadowTiddlers/Prompt", "text": "Number of shadow tiddlers:" }, "$:/language/ControlPanel/Basics/Subtitle/Prompt": { "title": "$:/language/ControlPanel/Basics/Subtitle/Prompt", "text": "Subtitle:" }, "$:/language/ControlPanel/Basics/SystemTiddlers/Prompt": { "title": "$:/language/ControlPanel/Basics/SystemTiddlers/Prompt", "text": "Number of system tiddlers:" }, "$:/language/ControlPanel/Basics/Tags/Prompt": { "title": "$:/language/ControlPanel/Basics/Tags/Prompt", "text": "Number of tags:" }, "$:/language/ControlPanel/Basics/Tiddlers/Prompt": { "title": "$:/language/ControlPanel/Basics/Tiddlers/Prompt", "text": "Number of tiddlers:" }, "$:/language/ControlPanel/Basics/Title/Prompt": { "title": "$:/language/ControlPanel/Basics/Title/Prompt", "text": "Title of this ~TiddlyWiki:" }, "$:/language/ControlPanel/Basics/Username/Prompt": { "title": "$:/language/ControlPanel/Basics/Username/Prompt", "text": "Username for signing edits:" }, "$:/language/ControlPanel/Basics/Version/Prompt": { "title": "$:/language/ControlPanel/Basics/Version/Prompt", "text": "~TiddlyWiki version:" }, "$:/language/ControlPanel/EditorTypes/Caption": { "title": "$:/language/ControlPanel/EditorTypes/Caption", "text": "Editor Types" }, "$:/language/ControlPanel/EditorTypes/Editor/Caption": { "title": "$:/language/ControlPanel/EditorTypes/Editor/Caption", "text": "Editor" }, "$:/language/ControlPanel/EditorTypes/Hint": { "title": "$:/language/ControlPanel/EditorTypes/Hint", "text": "These tiddlers determine which editor is used to edit specific tiddler types." }, "$:/language/ControlPanel/EditorTypes/Type/Caption": { "title": "$:/language/ControlPanel/EditorTypes/Type/Caption", "text": "Type" }, "$:/language/ControlPanel/Info/Caption": { "title": "$:/language/ControlPanel/Info/Caption", "text": "Info" }, "$:/language/ControlPanel/Info/Hint": { "title": "$:/language/ControlPanel/Info/Hint", "text": "Information about this TiddlyWiki" }, "$:/language/ControlPanel/KeyboardShortcuts/Add/Prompt": { "title": "$:/language/ControlPanel/KeyboardShortcuts/Add/Prompt", "text": "Type shortcut here" }, "$:/language/ControlPanel/KeyboardShortcuts/Add/Caption": { "title": "$:/language/ControlPanel/KeyboardShortcuts/Add/Caption", "text": "add shortcut" }, "$:/language/ControlPanel/KeyboardShortcuts/Caption": { "title": "$:/language/ControlPanel/KeyboardShortcuts/Caption", "text": "Keyboard Shortcuts" }, "$:/language/ControlPanel/KeyboardShortcuts/Hint": { "title": "$:/language/ControlPanel/KeyboardShortcuts/Hint", "text": "Manage keyboard shortcut assignments" }, "$:/language/ControlPanel/KeyboardShortcuts/NoShortcuts/Caption": { "title": "$:/language/ControlPanel/KeyboardShortcuts/NoShortcuts/Caption", "text": "No keyboard shortcuts assigned" }, "$:/language/ControlPanel/KeyboardShortcuts/Remove/Hint": { "title": "$:/language/ControlPanel/KeyboardShortcuts/Remove/Hint", "text": "remove keyboard shortcut" }, "$:/language/ControlPanel/KeyboardShortcuts/Platform/All": { "title": "$:/language/ControlPanel/KeyboardShortcuts/Platform/All", "text": "All platforms" }, "$:/language/ControlPanel/KeyboardShortcuts/Platform/Mac": { "title": "$:/language/ControlPanel/KeyboardShortcuts/Platform/Mac", "text": "Macintosh platform only" }, "$:/language/ControlPanel/KeyboardShortcuts/Platform/NonMac": { "title": "$:/language/ControlPanel/KeyboardShortcuts/Platform/NonMac", "text": "Non-Macintosh platforms only" }, "$:/language/ControlPanel/KeyboardShortcuts/Platform/Linux": { "title": "$:/language/ControlPanel/KeyboardShortcuts/Platform/Linux", "text": "Linux platform only" }, "$:/language/ControlPanel/KeyboardShortcuts/Platform/NonLinux": { "title": "$:/language/ControlPanel/KeyboardShortcuts/Platform/NonLinux", "text": "Non-Linux platforms only" }, "$:/language/ControlPanel/KeyboardShortcuts/Platform/Windows": { "title": "$:/language/ControlPanel/KeyboardShortcuts/Platform/Windows", "text": "Windows platform only" }, "$:/language/ControlPanel/KeyboardShortcuts/Platform/NonWindows": { "title": "$:/language/ControlPanel/KeyboardShortcuts/Platform/NonWindows", "text": "Non-Windows platforms only" }, "$:/language/ControlPanel/LoadedModules/Caption": { "title": "$:/language/ControlPanel/LoadedModules/Caption", "text": "Loaded Modules" }, "$:/language/ControlPanel/LoadedModules/Hint": { "title": "$:/language/ControlPanel/LoadedModules/Hint", "text": "These are the currently loaded tiddler modules linked to their source tiddlers. Any italicised modules lack a source tiddler, typically because they were setup during the boot process." }, "$:/language/ControlPanel/Palette/Caption": { "title": "$:/language/ControlPanel/Palette/Caption", "text": "Palette" }, "$:/language/ControlPanel/Palette/Editor/Clone/Caption": { "title": "$:/language/ControlPanel/Palette/Editor/Clone/Caption", "text": "clone" }, "$:/language/ControlPanel/Palette/Editor/Clone/Prompt": { "title": "$:/language/ControlPanel/Palette/Editor/Clone/Prompt", "text": "It is recommended that you clone this shadow palette before editing it" }, "$:/language/ControlPanel/Palette/Editor/Prompt/Modified": { "title": "$:/language/ControlPanel/Palette/Editor/Prompt/Modified", "text": "This shadow palette has been modified" }, "$:/language/ControlPanel/Palette/Editor/Prompt": { "title": "$:/language/ControlPanel/Palette/Editor/Prompt", "text": "Editing" }, "$:/language/ControlPanel/Palette/Editor/Reset/Caption": { "title": "$:/language/ControlPanel/Palette/Editor/Reset/Caption", "text": "reset" }, "$:/language/ControlPanel/Palette/HideEditor/Caption": { "title": "$:/language/ControlPanel/Palette/HideEditor/Caption", "text": "hide editor" }, "$:/language/ControlPanel/Palette/Prompt": { "title": "$:/language/ControlPanel/Palette/Prompt", "text": "Current palette:" }, "$:/language/ControlPanel/Palette/ShowEditor/Caption": { "title": "$:/language/ControlPanel/Palette/ShowEditor/Caption", "text": "show editor" }, "$:/language/ControlPanel/Parsing/Caption": { "title": "$:/language/ControlPanel/Parsing/Caption", "text": "Parsing" }, "$:/language/ControlPanel/Parsing/Hint": { "title": "$:/language/ControlPanel/Parsing/Hint", "text": "Here you can globally disable individual wiki parser rules. Take care as disabling some parser rules can prevent ~TiddlyWiki functioning correctly (you can restore normal operation with [[safe mode|http://tiddlywiki.com/#SafeMode]] )" }, "$:/language/ControlPanel/Parsing/Block/Caption": { "title": "$:/language/ControlPanel/Parsing/Block/Caption", "text": "Block Parse Rules" }, "$:/language/ControlPanel/Parsing/Inline/Caption": { "title": "$:/language/ControlPanel/Parsing/Inline/Caption", "text": "Inline Parse Rules" }, "$:/language/ControlPanel/Parsing/Pragma/Caption": { "title": "$:/language/ControlPanel/Parsing/Pragma/Caption", "text": "Pragma Parse Rules" }, "$:/language/ControlPanel/Plugins/Add/Caption": { "title": "$:/language/ControlPanel/Plugins/Add/Caption", "text": "Get more plugins" }, "$:/language/ControlPanel/Plugins/Add/Hint": { "title": "$:/language/ControlPanel/Plugins/Add/Hint", "text": "Install plugins from the official library" }, "$:/language/ControlPanel/Plugins/AlreadyInstalled/Hint": { "title": "$:/language/ControlPanel/Plugins/AlreadyInstalled/Hint", "text": "This plugin is already installed at version <$text text=<<installedVersion>>/>" }, "$:/language/ControlPanel/Plugins/Caption": { "title": "$:/language/ControlPanel/Plugins/Caption", "text": "Plugins" }, "$:/language/ControlPanel/Plugins/Disable/Caption": { "title": "$:/language/ControlPanel/Plugins/Disable/Caption", "text": "disable" }, "$:/language/ControlPanel/Plugins/Disable/Hint": { "title": "$:/language/ControlPanel/Plugins/Disable/Hint", "text": "Disable this plugin when reloading page" }, "$:/language/ControlPanel/Plugins/Disabled/Status": { "title": "$:/language/ControlPanel/Plugins/Disabled/Status", "text": "(disabled)" }, "$:/language/ControlPanel/Plugins/Empty/Hint": { "title": "$:/language/ControlPanel/Plugins/Empty/Hint", "text": "None" }, "$:/language/ControlPanel/Plugins/Enable/Caption": { "title": "$:/language/ControlPanel/Plugins/Enable/Caption", "text": "enable" }, "$:/language/ControlPanel/Plugins/Enable/Hint": { "title": "$:/language/ControlPanel/Plugins/Enable/Hint", "text": "Enable this plugin when reloading page" }, "$:/language/ControlPanel/Plugins/Install/Caption": { "title": "$:/language/ControlPanel/Plugins/Install/Caption", "text": "install" }, "$:/language/ControlPanel/Plugins/Installed/Hint": { "title": "$:/language/ControlPanel/Plugins/Installed/Hint", "text": "Currently installed plugins:" }, "$:/language/ControlPanel/Plugins/Languages/Caption": { "title": "$:/language/ControlPanel/Plugins/Languages/Caption", "text": "Languages" }, "$:/language/ControlPanel/Plugins/Languages/Hint": { "title": "$:/language/ControlPanel/Plugins/Languages/Hint", "text": "Language pack plugins" }, "$:/language/ControlPanel/Plugins/NoInfoFound/Hint": { "title": "$:/language/ControlPanel/Plugins/NoInfoFound/Hint", "text": "No ''\"<$text text=<<currentTab>>/>\"'' found" }, "$:/language/ControlPanel/Plugins/NoInformation/Hint": { "title": "$:/language/ControlPanel/Plugins/NoInformation/Hint", "text": "No information provided" }, "$:/language/ControlPanel/Plugins/NotInstalled/Hint": { "title": "$:/language/ControlPanel/Plugins/NotInstalled/Hint", "text": "This plugin is not currently installed" }, "$:/language/ControlPanel/Plugins/OpenPluginLibrary": { "title": "$:/language/ControlPanel/Plugins/OpenPluginLibrary", "text": "open plugin library" }, "$:/language/ControlPanel/Plugins/Plugins/Caption": { "title": "$:/language/ControlPanel/Plugins/Plugins/Caption", "text": "Plugins" }, "$:/language/ControlPanel/Plugins/Plugins/Hint": { "title": "$:/language/ControlPanel/Plugins/Plugins/Hint", "text": "Plugins" }, "$:/language/ControlPanel/Plugins/Reinstall/Caption": { "title": "$:/language/ControlPanel/Plugins/Reinstall/Caption", "text": "reinstall" }, "$:/language/ControlPanel/Plugins/Themes/Caption": { "title": "$:/language/ControlPanel/Plugins/Themes/Caption", "text": "Themes" }, "$:/language/ControlPanel/Plugins/Themes/Hint": { "title": "$:/language/ControlPanel/Plugins/Themes/Hint", "text": "Theme plugins" }, "$:/language/ControlPanel/Saving/Caption": { "title": "$:/language/ControlPanel/Saving/Caption", "text": "Saving" }, "$:/language/ControlPanel/Saving/Heading": { "title": "$:/language/ControlPanel/Saving/Heading", "text": "Saving" }, "$:/language/ControlPanel/Saving/TiddlySpot/Advanced/Heading": { "title": "$:/language/ControlPanel/Saving/TiddlySpot/Advanced/Heading", "text": "Advanced Settings" }, "$:/language/ControlPanel/Saving/TiddlySpot/BackupDir": { "title": "$:/language/ControlPanel/Saving/TiddlySpot/BackupDir", "text": "Backup Directory" }, "$:/language/ControlPanel/Saving/TiddlySpot/Backups": { "title": "$:/language/ControlPanel/Saving/TiddlySpot/Backups", "text": "Backups" }, "$:/language/ControlPanel/Saving/TiddlySpot/Description": { "title": "$:/language/ControlPanel/Saving/TiddlySpot/Description", "text": "These settings are only used when saving to http://tiddlyspot.com or a compatible remote server" }, "$:/language/ControlPanel/Saving/TiddlySpot/Filename": { "title": "$:/language/ControlPanel/Saving/TiddlySpot/Filename", "text": "Upload Filename" }, "$:/language/ControlPanel/Saving/TiddlySpot/Heading": { "title": "$:/language/ControlPanel/Saving/TiddlySpot/Heading", "text": "~TiddlySpot" }, "$:/language/ControlPanel/Saving/TiddlySpot/Hint": { "title": "$:/language/ControlPanel/Saving/TiddlySpot/Hint", "text": "//The server URL defaults to `http://<wikiname>.tiddlyspot.com/store.cgi` and can be changed to use a custom server address, e.g. `http://example.com/store.php`.//" }, "$:/language/ControlPanel/Saving/TiddlySpot/Password": { "title": "$:/language/ControlPanel/Saving/TiddlySpot/Password", "text": "Password" }, "$:/language/ControlPanel/Saving/TiddlySpot/ServerURL": { "title": "$:/language/ControlPanel/Saving/TiddlySpot/ServerURL", "text": "Server URL" }, "$:/language/ControlPanel/Saving/TiddlySpot/UploadDir": { "title": "$:/language/ControlPanel/Saving/TiddlySpot/UploadDir", "text": "Upload Directory" }, "$:/language/ControlPanel/Saving/TiddlySpot/UserName": { "title": "$:/language/ControlPanel/Saving/TiddlySpot/UserName", "text": "Wiki Name" }, "$:/language/ControlPanel/Settings/AutoSave/Caption": { "title": "$:/language/ControlPanel/Settings/AutoSave/Caption", "text": "Autosave" }, "$:/language/ControlPanel/Settings/AutoSave/Disabled/Description": { "title": "$:/language/ControlPanel/Settings/AutoSave/Disabled/Description", "text": "Do not save changes automatically" }, "$:/language/ControlPanel/Settings/AutoSave/Enabled/Description": { "title": "$:/language/ControlPanel/Settings/AutoSave/Enabled/Description", "text": "Save changes automatically" }, "$:/language/ControlPanel/Settings/AutoSave/Hint": { "title": "$:/language/ControlPanel/Settings/AutoSave/Hint", "text": "Automatically save changes during editing" }, "$:/language/ControlPanel/Settings/CamelCase/Caption": { "title": "$:/language/ControlPanel/Settings/CamelCase/Caption", "text": "Camel Case Wiki Links" }, "$:/language/ControlPanel/Settings/CamelCase/Hint": { "title": "$:/language/ControlPanel/Settings/CamelCase/Hint", "text": "You can globally disable automatic linking of ~CamelCase phrases. Requires reload to take effect" }, "$:/language/ControlPanel/Settings/CamelCase/Description": { "title": "$:/language/ControlPanel/Settings/CamelCase/Description", "text": "Enable automatic ~CamelCase linking" }, "$:/language/ControlPanel/Settings/Caption": { "title": "$:/language/ControlPanel/Settings/Caption", "text": "Settings" }, "$:/language/ControlPanel/Settings/EditorToolbar/Caption": { "title": "$:/language/ControlPanel/Settings/EditorToolbar/Caption", "text": "Editor Toolbar" }, "$:/language/ControlPanel/Settings/EditorToolbar/Hint": { "title": "$:/language/ControlPanel/Settings/EditorToolbar/Hint", "text": "Enable or disable the editor toolbar:" }, "$:/language/ControlPanel/Settings/EditorToolbar/Description": { "title": "$:/language/ControlPanel/Settings/EditorToolbar/Description", "text": "Show editor toolbar" }, "$:/language/ControlPanel/Settings/Hint": { "title": "$:/language/ControlPanel/Settings/Hint", "text": "These settings let you customise the behaviour of TiddlyWiki." }, "$:/language/ControlPanel/Settings/NavigationAddressBar/Caption": { "title": "$:/language/ControlPanel/Settings/NavigationAddressBar/Caption", "text": "Navigation Address Bar" }, "$:/language/ControlPanel/Settings/NavigationAddressBar/Hint": { "title": "$:/language/ControlPanel/Settings/NavigationAddressBar/Hint", "text": "Behaviour of the browser address bar when navigating to a tiddler:" }, "$:/language/ControlPanel/Settings/NavigationAddressBar/No/Description": { "title": "$:/language/ControlPanel/Settings/NavigationAddressBar/No/Description", "text": "Do not update the address bar" }, "$:/language/ControlPanel/Settings/NavigationAddressBar/Permalink/Description": { "title": "$:/language/ControlPanel/Settings/NavigationAddressBar/Permalink/Description", "text": "Include the target tiddler" }, "$:/language/ControlPanel/Settings/NavigationAddressBar/Permaview/Description": { "title": "$:/language/ControlPanel/Settings/NavigationAddressBar/Permaview/Description", "text": "Include the target tiddler and the current story sequence" }, "$:/language/ControlPanel/Settings/NavigationHistory/Caption": { "title": "$:/language/ControlPanel/Settings/NavigationHistory/Caption", "text": "Navigation History" }, "$:/language/ControlPanel/Settings/NavigationHistory/Hint": { "title": "$:/language/ControlPanel/Settings/NavigationHistory/Hint", "text": "Update browser history when navigating to a tiddler:" }, "$:/language/ControlPanel/Settings/NavigationHistory/No/Description": { "title": "$:/language/ControlPanel/Settings/NavigationHistory/No/Description", "text": "Do not update history" }, "$:/language/ControlPanel/Settings/NavigationHistory/Yes/Description": { "title": "$:/language/ControlPanel/Settings/NavigationHistory/Yes/Description", "text": "Update history" }, "$:/language/ControlPanel/Settings/PerformanceInstrumentation/Caption": { "title": "$:/language/ControlPanel/Settings/PerformanceInstrumentation/Caption", "text": "Performance Instrumentation" }, "$:/language/ControlPanel/Settings/PerformanceInstrumentation/Hint": { "title": "$:/language/ControlPanel/Settings/PerformanceInstrumentation/Hint", "text": "Displays performance statistics in the browser developer console. Requires reload to take effect" }, "$:/language/ControlPanel/Settings/PerformanceInstrumentation/Description": { "title": "$:/language/ControlPanel/Settings/PerformanceInstrumentation/Description", "text": "Enable performance instrumentation" }, "$:/language/ControlPanel/Settings/ToolbarButtonStyle/Caption": { "title": "$:/language/ControlPanel/Settings/ToolbarButtonStyle/Caption", "text": "Toolbar Button Style" }, "$:/language/ControlPanel/Settings/ToolbarButtonStyle/Hint": { "title": "$:/language/ControlPanel/Settings/ToolbarButtonStyle/Hint", "text": "Choose the style for toolbar buttons:" }, "$:/language/ControlPanel/Settings/ToolbarButtonStyle/Styles/Borderless": { "title": "$:/language/ControlPanel/Settings/ToolbarButtonStyle/Styles/Borderless", "text": "Borderless" }, "$:/language/ControlPanel/Settings/ToolbarButtonStyle/Styles/Boxed": { "title": "$:/language/ControlPanel/Settings/ToolbarButtonStyle/Styles/Boxed", "text": "Boxed" }, "$:/language/ControlPanel/Settings/ToolbarButtonStyle/Styles/Rounded": { "title": "$:/language/ControlPanel/Settings/ToolbarButtonStyle/Styles/Rounded", "text": "Rounded" }, "$:/language/ControlPanel/Settings/ToolbarButtons/Caption": { "title": "$:/language/ControlPanel/Settings/ToolbarButtons/Caption", "text": "Toolbar Buttons" }, "$:/language/ControlPanel/Settings/ToolbarButtons/Hint": { "title": "$:/language/ControlPanel/Settings/ToolbarButtons/Hint", "text": "Default toolbar button appearance:" }, "$:/language/ControlPanel/Settings/ToolbarButtons/Icons/Description": { "title": "$:/language/ControlPanel/Settings/ToolbarButtons/Icons/Description", "text": "Include icon" }, "$:/language/ControlPanel/Settings/ToolbarButtons/Text/Description": { "title": "$:/language/ControlPanel/Settings/ToolbarButtons/Text/Description", "text": "Include text" }, "$:/language/ControlPanel/Settings/DefaultSidebarTab/Caption": { "title": "$:/language/ControlPanel/Settings/DefaultSidebarTab/Caption", "text": "Default Sidebar Tab" }, "$:/language/ControlPanel/Settings/DefaultSidebarTab/Hint": { "title": "$:/language/ControlPanel/Settings/DefaultSidebarTab/Hint", "text": "Specify which sidebar tab is displayed by default" }, "$:/language/ControlPanel/Settings/LinkToBehaviour/Caption": { "title": "$:/language/ControlPanel/Settings/LinkToBehaviour/Caption", "text": "Tiddler Opening Behaviour" }, "$:/language/ControlPanel/Settings/LinkToBehaviour/InsideRiver/Hint": { "title": "$:/language/ControlPanel/Settings/LinkToBehaviour/InsideRiver/Hint", "text": "Navigation from //within// the story river" }, "$:/language/ControlPanel/Settings/LinkToBehaviour/OutsideRiver/Hint": { "title": "$:/language/ControlPanel/Settings/LinkToBehaviour/OutsideRiver/Hint", "text": "Navigation from //outside// the story river" }, "$:/language/ControlPanel/Settings/LinkToBehaviour/OpenAbove": { "title": "$:/language/ControlPanel/Settings/LinkToBehaviour/OpenAbove", "text": "Open above the current tiddler" }, "$:/language/ControlPanel/Settings/LinkToBehaviour/OpenBelow": { "title": "$:/language/ControlPanel/Settings/LinkToBehaviour/OpenBelow", "text": "Open below the current tiddler" }, "$:/language/ControlPanel/Settings/LinkToBehaviour/OpenAtTop": { "title": "$:/language/ControlPanel/Settings/LinkToBehaviour/OpenAtTop", "text": "Open at the top of the story river" }, "$:/language/ControlPanel/Settings/LinkToBehaviour/OpenAtBottom": { "title": "$:/language/ControlPanel/Settings/LinkToBehaviour/OpenAtBottom", "text": "Open at the bottom of the story river" }, "$:/language/ControlPanel/Settings/TitleLinks/Caption": { "title": "$:/language/ControlPanel/Settings/TitleLinks/Caption", "text": "Tiddler Titles" }, "$:/language/ControlPanel/Settings/TitleLinks/Hint": { "title": "$:/language/ControlPanel/Settings/TitleLinks/Hint", "text": "Optionally display tiddler titles as links" }, "$:/language/ControlPanel/Settings/TitleLinks/No/Description": { "title": "$:/language/ControlPanel/Settings/TitleLinks/No/Description", "text": "Do not display tiddler titles as links" }, "$:/language/ControlPanel/Settings/TitleLinks/Yes/Description": { "title": "$:/language/ControlPanel/Settings/TitleLinks/Yes/Description", "text": "Display tiddler titles as links" }, "$:/language/ControlPanel/Settings/MissingLinks/Caption": { "title": "$:/language/ControlPanel/Settings/MissingLinks/Caption", "text": "Wiki Links" }, "$:/language/ControlPanel/Settings/MissingLinks/Hint": { "title": "$:/language/ControlPanel/Settings/MissingLinks/Hint", "text": "Choose whether to link to tiddlers that do not exist yet" }, "$:/language/ControlPanel/Settings/MissingLinks/Description": { "title": "$:/language/ControlPanel/Settings/MissingLinks/Description", "text": "Enable links to missing tiddlers" }, "$:/language/ControlPanel/StoryView/Caption": { "title": "$:/language/ControlPanel/StoryView/Caption", "text": "Story View" }, "$:/language/ControlPanel/StoryView/Prompt": { "title": "$:/language/ControlPanel/StoryView/Prompt", "text": "Current view:" }, "$:/language/ControlPanel/Theme/Caption": { "title": "$:/language/ControlPanel/Theme/Caption", "text": "Theme" }, "$:/language/ControlPanel/Theme/Prompt": { "title": "$:/language/ControlPanel/Theme/Prompt", "text": "Current theme:" }, "$:/language/ControlPanel/TiddlerFields/Caption": { "title": "$:/language/ControlPanel/TiddlerFields/Caption", "text": "Tiddler Fields" }, "$:/language/ControlPanel/TiddlerFields/Hint": { "title": "$:/language/ControlPanel/TiddlerFields/Hint", "text": "This is the full set of TiddlerFields in use in this wiki (including system tiddlers but excluding shadow tiddlers)." }, "$:/language/ControlPanel/Toolbars/Caption": { "title": "$:/language/ControlPanel/Toolbars/Caption", "text": "Toolbars" }, "$:/language/ControlPanel/Toolbars/EditToolbar/Caption": { "title": "$:/language/ControlPanel/Toolbars/EditToolbar/Caption", "text": "Edit Toolbar" }, "$:/language/ControlPanel/Toolbars/EditToolbar/Hint": { "title": "$:/language/ControlPanel/Toolbars/EditToolbar/Hint", "text": "Choose which buttons are displayed for tiddlers in edit mode" }, "$:/language/ControlPanel/Toolbars/Hint": { "title": "$:/language/ControlPanel/Toolbars/Hint", "text": "Select which toolbar buttons are displayed" }, "$:/language/ControlPanel/Toolbars/PageControls/Caption": { "title": "$:/language/ControlPanel/Toolbars/PageControls/Caption", "text": "Page Toolbar" }, "$:/language/ControlPanel/Toolbars/PageControls/Hint": { "title": "$:/language/ControlPanel/Toolbars/PageControls/Hint", "text": "Choose which buttons are displayed on the main page toolbar" }, "$:/language/ControlPanel/Toolbars/EditorToolbar/Caption": { "title": "$:/language/ControlPanel/Toolbars/EditorToolbar/Caption", "text": "Editor Toolbar" }, "$:/language/ControlPanel/Toolbars/EditorToolbar/Hint": { "title": "$:/language/ControlPanel/Toolbars/EditorToolbar/Hint", "text": "Choose which buttons are displayed in the editor toolbar. Note that some buttons will only appear when editing tiddlers of a certain type" }, "$:/language/ControlPanel/Toolbars/ViewToolbar/Caption": { "title": "$:/language/ControlPanel/Toolbars/ViewToolbar/Caption", "text": "View Toolbar" }, "$:/language/ControlPanel/Toolbars/ViewToolbar/Hint": { "title": "$:/language/ControlPanel/Toolbars/ViewToolbar/Hint", "text": "Choose which buttons are displayed for tiddlers in view mode" }, "$:/language/ControlPanel/Tools/Download/Full/Caption": { "title": "$:/language/ControlPanel/Tools/Download/Full/Caption", "text": "Download full wiki" }, "$:/language/Date/DaySuffix/1": { "title": "$:/language/Date/DaySuffix/1", "text": "st" }, "$:/language/Date/DaySuffix/2": { "title": "$:/language/Date/DaySuffix/2", "text": "nd" }, "$:/language/Date/DaySuffix/3": { "title": "$:/language/Date/DaySuffix/3", "text": "rd" }, "$:/language/Date/DaySuffix/4": { "title": "$:/language/Date/DaySuffix/4", "text": "th" }, "$:/language/Date/DaySuffix/5": { "title": "$:/language/Date/DaySuffix/5", "text": "th" }, "$:/language/Date/DaySuffix/6": { "title": "$:/language/Date/DaySuffix/6", "text": "th" }, "$:/language/Date/DaySuffix/7": { "title": "$:/language/Date/DaySuffix/7", "text": "th" }, "$:/language/Date/DaySuffix/8": { "title": "$:/language/Date/DaySuffix/8", "text": "th" }, "$:/language/Date/DaySuffix/9": { "title": "$:/language/Date/DaySuffix/9", "text": "th" }, "$:/language/Date/DaySuffix/10": { "title": "$:/language/Date/DaySuffix/10", "text": "th" }, "$:/language/Date/DaySuffix/11": { "title": "$:/language/Date/DaySuffix/11", "text": "th" }, "$:/language/Date/DaySuffix/12": { "title": "$:/language/Date/DaySuffix/12", "text": "th" }, "$:/language/Date/DaySuffix/13": { "title": "$:/language/Date/DaySuffix/13", "text": "th" }, "$:/language/Date/DaySuffix/14": { "title": "$:/language/Date/DaySuffix/14", "text": "th" }, "$:/language/Date/DaySuffix/15": { "title": "$:/language/Date/DaySuffix/15", "text": "th" }, "$:/language/Date/DaySuffix/16": { "title": "$:/language/Date/DaySuffix/16", "text": "th" }, "$:/language/Date/DaySuffix/17": { "title": "$:/language/Date/DaySuffix/17", "text": "th" }, "$:/language/Date/DaySuffix/18": { "title": "$:/language/Date/DaySuffix/18", "text": "th" }, "$:/language/Date/DaySuffix/19": { "title": "$:/language/Date/DaySuffix/19", "text": "th" }, "$:/language/Date/DaySuffix/20": { "title": "$:/language/Date/DaySuffix/20", "text": "th" }, "$:/language/Date/DaySuffix/21": { "title": "$:/language/Date/DaySuffix/21", "text": "st" }, "$:/language/Date/DaySuffix/22": { "title": "$:/language/Date/DaySuffix/22", "text": "nd" }, "$:/language/Date/DaySuffix/23": { "title": "$:/language/Date/DaySuffix/23", "text": "rd" }, "$:/language/Date/DaySuffix/24": { "title": "$:/language/Date/DaySuffix/24", "text": "th" }, "$:/language/Date/DaySuffix/25": { "title": "$:/language/Date/DaySuffix/25", "text": "th" }, "$:/language/Date/DaySuffix/26": { "title": "$:/language/Date/DaySuffix/26", "text": "th" }, "$:/language/Date/DaySuffix/27": { "title": "$:/language/Date/DaySuffix/27", "text": "th" }, "$:/language/Date/DaySuffix/28": { "title": "$:/language/Date/DaySuffix/28", "text": "th" }, "$:/language/Date/DaySuffix/29": { "title": "$:/language/Date/DaySuffix/29", "text": "th" }, "$:/language/Date/DaySuffix/30": { "title": "$:/language/Date/DaySuffix/30", "text": "th" }, "$:/language/Date/DaySuffix/31": { "title": "$:/language/Date/DaySuffix/31", "text": "st" }, "$:/language/Date/Long/Day/0": { "title": "$:/language/Date/Long/Day/0", "text": "Sunday" }, "$:/language/Date/Long/Day/1": { "title": "$:/language/Date/Long/Day/1", "text": "Monday" }, "$:/language/Date/Long/Day/2": { "title": "$:/language/Date/Long/Day/2", "text": "Tuesday" }, "$:/language/Date/Long/Day/3": { "title": "$:/language/Date/Long/Day/3", "text": "Wednesday" }, "$:/language/Date/Long/Day/4": { "title": "$:/language/Date/Long/Day/4", "text": "Thursday" }, "$:/language/Date/Long/Day/5": { "title": "$:/language/Date/Long/Day/5", "text": "Friday" }, "$:/language/Date/Long/Day/6": { "title": "$:/language/Date/Long/Day/6", "text": "Saturday" }, "$:/language/Date/Long/Month/1": { "title": "$:/language/Date/Long/Month/1", "text": "January" }, "$:/language/Date/Long/Month/2": { "title": "$:/language/Date/Long/Month/2", "text": "February" }, "$:/language/Date/Long/Month/3": { "title": "$:/language/Date/Long/Month/3", "text": "March" }, "$:/language/Date/Long/Month/4": { "title": "$:/language/Date/Long/Month/4", "text": "April" }, "$:/language/Date/Long/Month/5": { "title": "$:/language/Date/Long/Month/5", "text": "May" }, "$:/language/Date/Long/Month/6": { "title": "$:/language/Date/Long/Month/6", "text": "June" }, "$:/language/Date/Long/Month/7": { "title": "$:/language/Date/Long/Month/7", "text": "July" }, "$:/language/Date/Long/Month/8": { "title": "$:/language/Date/Long/Month/8", "text": "August" }, "$:/language/Date/Long/Month/9": { "title": "$:/language/Date/Long/Month/9", "text": "September" }, "$:/language/Date/Long/Month/10": { "title": "$:/language/Date/Long/Month/10", "text": "October" }, "$:/language/Date/Long/Month/11": { "title": "$:/language/Date/Long/Month/11", "text": "November" }, "$:/language/Date/Long/Month/12": { "title": "$:/language/Date/Long/Month/12", "text": "December" }, "$:/language/Date/Period/am": { "title": "$:/language/Date/Period/am", "text": "am" }, "$:/language/Date/Period/pm": { "title": "$:/language/Date/Period/pm", "text": "pm" }, "$:/language/Date/Short/Day/0": { "title": "$:/language/Date/Short/Day/0", "text": "Sun" }, "$:/language/Date/Short/Day/1": { "title": "$:/language/Date/Short/Day/1", "text": "Mon" }, "$:/language/Date/Short/Day/2": { "title": "$:/language/Date/Short/Day/2", "text": "Tue" }, "$:/language/Date/Short/Day/3": { "title": "$:/language/Date/Short/Day/3", "text": "Wed" }, "$:/language/Date/Short/Day/4": { "title": "$:/language/Date/Short/Day/4", "text": "Thu" }, "$:/language/Date/Short/Day/5": { "title": "$:/language/Date/Short/Day/5", "text": "Fri" }, "$:/language/Date/Short/Day/6": { "title": "$:/language/Date/Short/Day/6", "text": "Sat" }, "$:/language/Date/Short/Month/1": { "title": "$:/language/Date/Short/Month/1", "text": "Jan" }, "$:/language/Date/Short/Month/2": { "title": "$:/language/Date/Short/Month/2", "text": "Feb" }, "$:/language/Date/Short/Month/3": { "title": "$:/language/Date/Short/Month/3", "text": "Mar" }, "$:/language/Date/Short/Month/4": { "title": "$:/language/Date/Short/Month/4", "text": "Apr" }, "$:/language/Date/Short/Month/5": { "title": "$:/language/Date/Short/Month/5", "text": "May" }, "$:/language/Date/Short/Month/6": { "title": "$:/language/Date/Short/Month/6", "text": "Jun" }, "$:/language/Date/Short/Month/7": { "title": "$:/language/Date/Short/Month/7", "text": "Jul" }, "$:/language/Date/Short/Month/8": { "title": "$:/language/Date/Short/Month/8", "text": "Aug" }, "$:/language/Date/Short/Month/9": { "title": "$:/language/Date/Short/Month/9", "text": "Sep" }, "$:/language/Date/Short/Month/10": { "title": "$:/language/Date/Short/Month/10", "text": "Oct" }, "$:/language/Date/Short/Month/11": { "title": "$:/language/Date/Short/Month/11", "text": "Nov" }, "$:/language/Date/Short/Month/12": { "title": "$:/language/Date/Short/Month/12", "text": "Dec" }, "$:/language/RelativeDate/Future/Days": { "title": "$:/language/RelativeDate/Future/Days", "text": "<<period>> days from now" }, "$:/language/RelativeDate/Future/Hours": { "title": "$:/language/RelativeDate/Future/Hours", "text": "<<period>> hours from now" }, "$:/language/RelativeDate/Future/Minutes": { "title": "$:/language/RelativeDate/Future/Minutes", "text": "<<period>> minutes from now" }, "$:/language/RelativeDate/Future/Months": { "title": "$:/language/RelativeDate/Future/Months", "text": "<<period>> months from now" }, "$:/language/RelativeDate/Future/Second": { "title": "$:/language/RelativeDate/Future/Second", "text": "1 second from now" }, "$:/language/RelativeDate/Future/Seconds": { "title": "$:/language/RelativeDate/Future/Seconds", "text": "<<period>> seconds from now" }, "$:/language/RelativeDate/Future/Years": { "title": "$:/language/RelativeDate/Future/Years", "text": "<<period>> years from now" }, "$:/language/RelativeDate/Past/Days": { "title": "$:/language/RelativeDate/Past/Days", "text": "<<period>> days ago" }, "$:/language/RelativeDate/Past/Hours": { "title": "$:/language/RelativeDate/Past/Hours", "text": "<<period>> hours ago" }, "$:/language/RelativeDate/Past/Minutes": { "title": "$:/language/RelativeDate/Past/Minutes", "text": "<<period>> minutes ago" }, "$:/language/RelativeDate/Past/Months": { "title": "$:/language/RelativeDate/Past/Months", "text": "<<period>> months ago" }, "$:/language/RelativeDate/Past/Second": { "title": "$:/language/RelativeDate/Past/Second", "text": "1 second ago" }, "$:/language/RelativeDate/Past/Seconds": { "title": "$:/language/RelativeDate/Past/Seconds", "text": "<<period>> seconds ago" }, "$:/language/RelativeDate/Past/Years": { "title": "$:/language/RelativeDate/Past/Years", "text": "<<period>> years ago" }, "$:/language/Docs/ModuleTypes/animation": { "title": "$:/language/Docs/ModuleTypes/animation", "text": "Animations that may be used with the RevealWidget." }, "$:/language/Docs/ModuleTypes/command": { "title": "$:/language/Docs/ModuleTypes/command", "text": "Commands that can be executed under Node.js." }, "$:/language/Docs/ModuleTypes/config": { "title": "$:/language/Docs/ModuleTypes/config", "text": "Data to be inserted into `$tw.config`." }, "$:/language/Docs/ModuleTypes/filteroperator": { "title": "$:/language/Docs/ModuleTypes/filteroperator", "text": "Individual filter operator methods." }, "$:/language/Docs/ModuleTypes/global": { "title": "$:/language/Docs/ModuleTypes/global", "text": "Global data to be inserted into `$tw`." }, "$:/language/Docs/ModuleTypes/isfilteroperator": { "title": "$:/language/Docs/ModuleTypes/isfilteroperator", "text": "Operands for the ''is'' filter operator." }, "$:/language/Docs/ModuleTypes/macro": { "title": "$:/language/Docs/ModuleTypes/macro", "text": "JavaScript macro definitions." }, "$:/language/Docs/ModuleTypes/parser": { "title": "$:/language/Docs/ModuleTypes/parser", "text": "Parsers for different content types." }, "$:/language/Docs/ModuleTypes/saver": { "title": "$:/language/Docs/ModuleTypes/saver", "text": "Savers handle different methods for saving files from the browser." }, "$:/language/Docs/ModuleTypes/startup": { "title": "$:/language/Docs/ModuleTypes/startup", "text": "Startup functions." }, "$:/language/Docs/ModuleTypes/storyview": { "title": "$:/language/Docs/ModuleTypes/storyview", "text": "Story views customise the animation and behaviour of list widgets." }, "$:/language/Docs/ModuleTypes/tiddlerdeserializer": { "title": "$:/language/Docs/ModuleTypes/tiddlerdeserializer", "text": "Converts different content types into tiddlers." }, "$:/language/Docs/ModuleTypes/tiddlerfield": { "title": "$:/language/Docs/ModuleTypes/tiddlerfield", "text": "Defines the behaviour of an individual tiddler field." }, "$:/language/Docs/ModuleTypes/tiddlermethod": { "title": "$:/language/Docs/ModuleTypes/tiddlermethod", "text": "Adds methods to the `$tw.Tiddler` prototype." }, "$:/language/Docs/ModuleTypes/upgrader": { "title": "$:/language/Docs/ModuleTypes/upgrader", "text": "Applies upgrade processing to tiddlers during an upgrade/import." }, "$:/language/Docs/ModuleTypes/utils": { "title": "$:/language/Docs/ModuleTypes/utils", "text": "Adds methods to `$tw.utils`." }, "$:/language/Docs/ModuleTypes/utils-node": { "title": "$:/language/Docs/ModuleTypes/utils-node", "text": "Adds Node.js-specific methods to `$tw.utils`." }, "$:/language/Docs/ModuleTypes/widget": { "title": "$:/language/Docs/ModuleTypes/widget", "text": "Widgets encapsulate DOM rendering and refreshing." }, "$:/language/Docs/ModuleTypes/wikimethod": { "title": "$:/language/Docs/ModuleTypes/wikimethod", "text": "Adds methods to `$tw.Wiki`." }, "$:/language/Docs/ModuleTypes/wikirule": { "title": "$:/language/Docs/ModuleTypes/wikirule", "text": "Individual parser rules for the main WikiText parser." }, "$:/language/Docs/PaletteColours/alert-background": { "title": "$:/language/Docs/PaletteColours/alert-background", "text": "Alert background" }, "$:/language/Docs/PaletteColours/alert-border": { "title": "$:/language/Docs/PaletteColours/alert-border", "text": "Alert border" }, "$:/language/Docs/PaletteColours/alert-highlight": { "title": "$:/language/Docs/PaletteColours/alert-highlight", "text": "Alert highlight" }, "$:/language/Docs/PaletteColours/alert-muted-foreground": { "title": "$:/language/Docs/PaletteColours/alert-muted-foreground", "text": "Alert muted foreground" }, "$:/language/Docs/PaletteColours/background": { "title": "$:/language/Docs/PaletteColours/background", "text": "General background" }, "$:/language/Docs/PaletteColours/blockquote-bar": { "title": "$:/language/Docs/PaletteColours/blockquote-bar", "text": "Blockquote bar" }, "$:/language/Docs/PaletteColours/button-background": { "title": "$:/language/Docs/PaletteColours/button-background", "text": "Default button background" }, "$:/language/Docs/PaletteColours/button-border": { "title": "$:/language/Docs/PaletteColours/button-border", "text": "Default button border" }, "$:/language/Docs/PaletteColours/button-foreground": { "title": "$:/language/Docs/PaletteColours/button-foreground", "text": "Default button foreground" }, "$:/language/Docs/PaletteColours/dirty-indicator": { "title": "$:/language/Docs/PaletteColours/dirty-indicator", "text": "Unsaved changes indicator" }, "$:/language/Docs/PaletteColours/code-background": { "title": "$:/language/Docs/PaletteColours/code-background", "text": "Code background" }, "$:/language/Docs/PaletteColours/code-border": { "title": "$:/language/Docs/PaletteColours/code-border", "text": "Code border" }, "$:/language/Docs/PaletteColours/code-foreground": { "title": "$:/language/Docs/PaletteColours/code-foreground", "text": "Code foreground" }, "$:/language/Docs/PaletteColours/download-background": { "title": "$:/language/Docs/PaletteColours/download-background", "text": "Download button background" }, "$:/language/Docs/PaletteColours/download-foreground": { "title": "$:/language/Docs/PaletteColours/download-foreground", "text": "Download button foreground" }, "$:/language/Docs/PaletteColours/dragger-background": { "title": "$:/language/Docs/PaletteColours/dragger-background", "text": "Dragger background" }, "$:/language/Docs/PaletteColours/dragger-foreground": { "title": "$:/language/Docs/PaletteColours/dragger-foreground", "text": "Dragger foreground" }, "$:/language/Docs/PaletteColours/dropdown-background": { "title": "$:/language/Docs/PaletteColours/dropdown-background", "text": "Dropdown background" }, "$:/language/Docs/PaletteColours/dropdown-border": { "title": "$:/language/Docs/PaletteColours/dropdown-border", "text": "Dropdown border" }, "$:/language/Docs/PaletteColours/dropdown-tab-background-selected": { "title": "$:/language/Docs/PaletteColours/dropdown-tab-background-selected", "text": "Dropdown tab background for selected tabs" }, "$:/language/Docs/PaletteColours/dropdown-tab-background": { "title": "$:/language/Docs/PaletteColours/dropdown-tab-background", "text": "Dropdown tab background" }, "$:/language/Docs/PaletteColours/dropzone-background": { "title": "$:/language/Docs/PaletteColours/dropzone-background", "text": "Dropzone background" }, "$:/language/Docs/PaletteColours/external-link-background-hover": { "title": "$:/language/Docs/PaletteColours/external-link-background-hover", "text": "External link background hover" }, "$:/language/Docs/PaletteColours/external-link-background-visited": { "title": "$:/language/Docs/PaletteColours/external-link-background-visited", "text": "External link background visited" }, "$:/language/Docs/PaletteColours/external-link-background": { "title": "$:/language/Docs/PaletteColours/external-link-background", "text": "External link background" }, "$:/language/Docs/PaletteColours/external-link-foreground-hover": { "title": "$:/language/Docs/PaletteColours/external-link-foreground-hover", "text": "External link foreground hover" }, "$:/language/Docs/PaletteColours/external-link-foreground-visited": { "title": "$:/language/Docs/PaletteColours/external-link-foreground-visited", "text": "External link foreground visited" }, "$:/language/Docs/PaletteColours/external-link-foreground": { "title": "$:/language/Docs/PaletteColours/external-link-foreground", "text": "External link foreground" }, "$:/language/Docs/PaletteColours/foreground": { "title": "$:/language/Docs/PaletteColours/foreground", "text": "General foreground" }, "$:/language/Docs/PaletteColours/message-background": { "title": "$:/language/Docs/PaletteColours/message-background", "text": "Message box background" }, "$:/language/Docs/PaletteColours/message-border": { "title": "$:/language/Docs/PaletteColours/message-border", "text": "Message box border" }, "$:/language/Docs/PaletteColours/message-foreground": { "title": "$:/language/Docs/PaletteColours/message-foreground", "text": "Message box foreground" }, "$:/language/Docs/PaletteColours/modal-backdrop": { "title": "$:/language/Docs/PaletteColours/modal-backdrop", "text": "Modal backdrop" }, "$:/language/Docs/PaletteColours/modal-background": { "title": "$:/language/Docs/PaletteColours/modal-background", "text": "Modal background" }, "$:/language/Docs/PaletteColours/modal-border": { "title": "$:/language/Docs/PaletteColours/modal-border", "text": "Modal border" }, "$:/language/Docs/PaletteColours/modal-footer-background": { "title": "$:/language/Docs/PaletteColours/modal-footer-background", "text": "Modal footer background" }, "$:/language/Docs/PaletteColours/modal-footer-border": { "title": "$:/language/Docs/PaletteColours/modal-footer-border", "text": "Modal footer border" }, "$:/language/Docs/PaletteColours/modal-header-border": { "title": "$:/language/Docs/PaletteColours/modal-header-border", "text": "Modal header border" }, "$:/language/Docs/PaletteColours/muted-foreground": { "title": "$:/language/Docs/PaletteColours/muted-foreground", "text": "General muted foreground" }, "$:/language/Docs/PaletteColours/notification-background": { "title": "$:/language/Docs/PaletteColours/notification-background", "text": "Notification background" }, "$:/language/Docs/PaletteColours/notification-border": { "title": "$:/language/Docs/PaletteColours/notification-border", "text": "Notification border" }, "$:/language/Docs/PaletteColours/page-background": { "title": "$:/language/Docs/PaletteColours/page-background", "text": "Page background" }, "$:/language/Docs/PaletteColours/pre-background": { "title": "$:/language/Docs/PaletteColours/pre-background", "text": "Preformatted code background" }, "$:/language/Docs/PaletteColours/pre-border": { "title": "$:/language/Docs/PaletteColours/pre-border", "text": "Preformatted code border" }, "$:/language/Docs/PaletteColours/primary": { "title": "$:/language/Docs/PaletteColours/primary", "text": "General primary" }, "$:/language/Docs/PaletteColours/sidebar-button-foreground": { "title": "$:/language/Docs/PaletteColours/sidebar-button-foreground", "text": "Sidebar button foreground" }, "$:/language/Docs/PaletteColours/sidebar-controls-foreground-hover": { "title": "$:/language/Docs/PaletteColours/sidebar-controls-foreground-hover", "text": "Sidebar controls foreground hover" }, "$:/language/Docs/PaletteColours/sidebar-controls-foreground": { "title": "$:/language/Docs/PaletteColours/sidebar-controls-foreground", "text": "Sidebar controls foreground" }, "$:/language/Docs/PaletteColours/sidebar-foreground-shadow": { "title": "$:/language/Docs/PaletteColours/sidebar-foreground-shadow", "text": "Sidebar foreground shadow" }, "$:/language/Docs/PaletteColours/sidebar-foreground": { "title": "$:/language/Docs/PaletteColours/sidebar-foreground", "text": "Sidebar foreground" }, "$:/language/Docs/PaletteColours/sidebar-muted-foreground-hover": { "title": "$:/language/Docs/PaletteColours/sidebar-muted-foreground-hover", "text": "Sidebar muted foreground hover" }, "$:/language/Docs/PaletteColours/sidebar-muted-foreground": { "title": "$:/language/Docs/PaletteColours/sidebar-muted-foreground", "text": "Sidebar muted foreground" }, "$:/language/Docs/PaletteColours/sidebar-tab-background-selected": { "title": "$:/language/Docs/PaletteColours/sidebar-tab-background-selected", "text": "Sidebar tab background for selected tabs" }, "$:/language/Docs/PaletteColours/sidebar-tab-background": { "title": "$:/language/Docs/PaletteColours/sidebar-tab-background", "text": "Sidebar tab background" }, "$:/language/Docs/PaletteColours/sidebar-tab-border-selected": { "title": "$:/language/Docs/PaletteColours/sidebar-tab-border-selected", "text": "Sidebar tab border for selected tabs" }, "$:/language/Docs/PaletteColours/sidebar-tab-border": { "title": "$:/language/Docs/PaletteColours/sidebar-tab-border", "text": "Sidebar tab border" }, "$:/language/Docs/PaletteColours/sidebar-tab-divider": { "title": "$:/language/Docs/PaletteColours/sidebar-tab-divider", "text": "Sidebar tab divider" }, "$:/language/Docs/PaletteColours/sidebar-tab-foreground-selected": { "title": "$:/language/Docs/PaletteColours/sidebar-tab-foreground-selected", "text": "Sidebar tab foreground for selected tabs" }, "$:/language/Docs/PaletteColours/sidebar-tab-foreground": { "title": "$:/language/Docs/PaletteColours/sidebar-tab-foreground", "text": "Sidebar tab foreground" }, "$:/language/Docs/PaletteColours/sidebar-tiddler-link-foreground-hover": { "title": "$:/language/Docs/PaletteColours/sidebar-tiddler-link-foreground-hover", "text": "Sidebar tiddler link foreground hover" }, "$:/language/Docs/PaletteColours/sidebar-tiddler-link-foreground": { "title": "$:/language/Docs/PaletteColours/sidebar-tiddler-link-foreground", "text": "Sidebar tiddler link foreground" }, "$:/language/Docs/PaletteColours/site-title-foreground": { "title": "$:/language/Docs/PaletteColours/site-title-foreground", "text": "Site title foreground" }, "$:/language/Docs/PaletteColours/static-alert-foreground": { "title": "$:/language/Docs/PaletteColours/static-alert-foreground", "text": "Static alert foreground" }, "$:/language/Docs/PaletteColours/tab-background-selected": { "title": "$:/language/Docs/PaletteColours/tab-background-selected", "text": "Tab background for selected tabs" }, "$:/language/Docs/PaletteColours/tab-background": { "title": "$:/language/Docs/PaletteColours/tab-background", "text": "Tab background" }, "$:/language/Docs/PaletteColours/tab-border-selected": { "title": "$:/language/Docs/PaletteColours/tab-border-selected", "text": "Tab border for selected tabs" }, "$:/language/Docs/PaletteColours/tab-border": { "title": "$:/language/Docs/PaletteColours/tab-border", "text": "Tab border" }, "$:/language/Docs/PaletteColours/tab-divider": { "title": "$:/language/Docs/PaletteColours/tab-divider", "text": "Tab divider" }, "$:/language/Docs/PaletteColours/tab-foreground-selected": { "title": "$:/language/Docs/PaletteColours/tab-foreground-selected", "text": "Tab foreground for selected tabs" }, "$:/language/Docs/PaletteColours/tab-foreground": { "title": "$:/language/Docs/PaletteColours/tab-foreground", "text": "Tab foreground" }, "$:/language/Docs/PaletteColours/table-border": { "title": "$:/language/Docs/PaletteColours/table-border", "text": "Table border" }, "$:/language/Docs/PaletteColours/table-footer-background": { "title": "$:/language/Docs/PaletteColours/table-footer-background", "text": "Table footer background" }, "$:/language/Docs/PaletteColours/table-header-background": { "title": "$:/language/Docs/PaletteColours/table-header-background", "text": "Table header background" }, "$:/language/Docs/PaletteColours/tag-background": { "title": "$:/language/Docs/PaletteColours/tag-background", "text": "Tag background" }, "$:/language/Docs/PaletteColours/tag-foreground": { "title": "$:/language/Docs/PaletteColours/tag-foreground", "text": "Tag foreground" }, "$:/language/Docs/PaletteColours/tiddler-background": { "title": "$:/language/Docs/PaletteColours/tiddler-background", "text": "Tiddler background" }, "$:/language/Docs/PaletteColours/tiddler-border": { "title": "$:/language/Docs/PaletteColours/tiddler-border", "text": "Tiddler border" }, "$:/language/Docs/PaletteColours/tiddler-controls-foreground-hover": { "title": "$:/language/Docs/PaletteColours/tiddler-controls-foreground-hover", "text": "Tiddler controls foreground hover" }, "$:/language/Docs/PaletteColours/tiddler-controls-foreground-selected": { "title": "$:/language/Docs/PaletteColours/tiddler-controls-foreground-selected", "text": "Tiddler controls foreground for selected controls" }, "$:/language/Docs/PaletteColours/tiddler-controls-foreground": { "title": "$:/language/Docs/PaletteColours/tiddler-controls-foreground", "text": "Tiddler controls foreground" }, "$:/language/Docs/PaletteColours/tiddler-editor-background": { "title": "$:/language/Docs/PaletteColours/tiddler-editor-background", "text": "Tiddler editor background" }, "$:/language/Docs/PaletteColours/tiddler-editor-border-image": { "title": "$:/language/Docs/PaletteColours/tiddler-editor-border-image", "text": "Tiddler editor border image" }, "$:/language/Docs/PaletteColours/tiddler-editor-border": { "title": "$:/language/Docs/PaletteColours/tiddler-editor-border", "text": "Tiddler editor border" }, "$:/language/Docs/PaletteColours/tiddler-editor-fields-even": { "title": "$:/language/Docs/PaletteColours/tiddler-editor-fields-even", "text": "Tiddler editor background for even fields" }, "$:/language/Docs/PaletteColours/tiddler-editor-fields-odd": { "title": "$:/language/Docs/PaletteColours/tiddler-editor-fields-odd", "text": "Tiddler editor background for odd fields" }, "$:/language/Docs/PaletteColours/tiddler-info-background": { "title": "$:/language/Docs/PaletteColours/tiddler-info-background", "text": "Tiddler info panel background" }, "$:/language/Docs/PaletteColours/tiddler-info-border": { "title": "$:/language/Docs/PaletteColours/tiddler-info-border", "text": "Tiddler info panel border" }, "$:/language/Docs/PaletteColours/tiddler-info-tab-background": { "title": "$:/language/Docs/PaletteColours/tiddler-info-tab-background", "text": "Tiddler info panel tab background" }, "$:/language/Docs/PaletteColours/tiddler-link-background": { "title": "$:/language/Docs/PaletteColours/tiddler-link-background", "text": "Tiddler link background" }, "$:/language/Docs/PaletteColours/tiddler-link-foreground": { "title": "$:/language/Docs/PaletteColours/tiddler-link-foreground", "text": "Tiddler link foreground" }, "$:/language/Docs/PaletteColours/tiddler-subtitle-foreground": { "title": "$:/language/Docs/PaletteColours/tiddler-subtitle-foreground", "text": "Tiddler subtitle foreground" }, "$:/language/Docs/PaletteColours/tiddler-title-foreground": { "title": "$:/language/Docs/PaletteColours/tiddler-title-foreground", "text": "Tiddler title foreground" }, "$:/language/Docs/PaletteColours/toolbar-new-button": { "title": "$:/language/Docs/PaletteColours/toolbar-new-button", "text": "Toolbar 'new tiddler' button foreground" }, "$:/language/Docs/PaletteColours/toolbar-options-button": { "title": "$:/language/Docs/PaletteColours/toolbar-options-button", "text": "Toolbar 'options' button foreground" }, "$:/language/Docs/PaletteColours/toolbar-save-button": { "title": "$:/language/Docs/PaletteColours/toolbar-save-button", "text": "Toolbar 'save' button foreground" }, "$:/language/Docs/PaletteColours/toolbar-info-button": { "title": "$:/language/Docs/PaletteColours/toolbar-info-button", "text": "Toolbar 'info' button foreground" }, "$:/language/Docs/PaletteColours/toolbar-edit-button": { "title": "$:/language/Docs/PaletteColours/toolbar-edit-button", "text": "Toolbar 'edit' button foreground" }, "$:/language/Docs/PaletteColours/toolbar-close-button": { "title": "$:/language/Docs/PaletteColours/toolbar-close-button", "text": "Toolbar 'close' button foreground" }, "$:/language/Docs/PaletteColours/toolbar-delete-button": { "title": "$:/language/Docs/PaletteColours/toolbar-delete-button", "text": "Toolbar 'delete' button foreground" }, "$:/language/Docs/PaletteColours/toolbar-cancel-button": { "title": "$:/language/Docs/PaletteColours/toolbar-cancel-button", "text": "Toolbar 'cancel' button foreground" }, "$:/language/Docs/PaletteColours/toolbar-done-button": { "title": "$:/language/Docs/PaletteColours/toolbar-done-button", "text": "Toolbar 'done' button foreground" }, "$:/language/Docs/PaletteColours/untagged-background": { "title": "$:/language/Docs/PaletteColours/untagged-background", "text": "Untagged pill background" }, "$:/language/Docs/PaletteColours/very-muted-foreground": { "title": "$:/language/Docs/PaletteColours/very-muted-foreground", "text": "Very muted foreground" }, "$:/language/EditTemplate/Body/External/Hint": { "title": "$:/language/EditTemplate/Body/External/Hint", "text": "This is an external tiddler stored outside of the main TiddlyWiki file. You can edit the tags and fields but cannot directly edit the content itself" }, "$:/language/EditTemplate/Body/Placeholder": { "title": "$:/language/EditTemplate/Body/Placeholder", "text": "Type the text for this tiddler" }, "$:/language/EditTemplate/Body/Preview/Type/Output": { "title": "$:/language/EditTemplate/Body/Preview/Type/Output", "text": "output" }, "$:/language/EditTemplate/Field/Remove/Caption": { "title": "$:/language/EditTemplate/Field/Remove/Caption", "text": "remove field" }, "$:/language/EditTemplate/Field/Remove/Hint": { "title": "$:/language/EditTemplate/Field/Remove/Hint", "text": "Remove field" }, "$:/language/EditTemplate/Fields/Add/Button": { "title": "$:/language/EditTemplate/Fields/Add/Button", "text": "add" }, "$:/language/EditTemplate/Fields/Add/Name/Placeholder": { "title": "$:/language/EditTemplate/Fields/Add/Name/Placeholder", "text": "field name" }, "$:/language/EditTemplate/Fields/Add/Prompt": { "title": "$:/language/EditTemplate/Fields/Add/Prompt", "text": "Add a new field:" }, "$:/language/EditTemplate/Fields/Add/Value/Placeholder": { "title": "$:/language/EditTemplate/Fields/Add/Value/Placeholder", "text": "field value" }, "$:/language/EditTemplate/Fields/Add/Dropdown/System": { "title": "$:/language/EditTemplate/Fields/Add/Dropdown/System", "text": "System fields" }, "$:/language/EditTemplate/Fields/Add/Dropdown/User": { "title": "$:/language/EditTemplate/Fields/Add/Dropdown/User", "text": "User fields" }, "$:/language/EditTemplate/Shadow/Warning": { "title": "$:/language/EditTemplate/Shadow/Warning", "text": "This is a shadow tiddler. Any changes you make will override the default version from the plugin <<pluginLink>>" }, "$:/language/EditTemplate/Shadow/OverriddenWarning": { "title": "$:/language/EditTemplate/Shadow/OverriddenWarning", "text": "This is a modified shadow tiddler. You can revert to the default version in the plugin <<pluginLink>> by deleting this tiddler" }, "$:/language/EditTemplate/Tags/Add/Button": { "title": "$:/language/EditTemplate/Tags/Add/Button", "text": "add" }, "$:/language/EditTemplate/Tags/Add/Placeholder": { "title": "$:/language/EditTemplate/Tags/Add/Placeholder", "text": "tag name" }, "$:/language/EditTemplate/Tags/Dropdown/Caption": { "title": "$:/language/EditTemplate/Tags/Dropdown/Caption", "text": "tag list" }, "$:/language/EditTemplate/Tags/Dropdown/Hint": { "title": "$:/language/EditTemplate/Tags/Dropdown/Hint", "text": "Show tag list" }, "$:/language/EditTemplate/Title/BadCharacterWarning": { "title": "$:/language/EditTemplate/Title/BadCharacterWarning", "text": "Warning: avoid using any of the characters <<bad-chars>> in tiddler titles" }, "$:/language/EditTemplate/Type/Dropdown/Caption": { "title": "$:/language/EditTemplate/Type/Dropdown/Caption", "text": "content type list" }, "$:/language/EditTemplate/Type/Dropdown/Hint": { "title": "$:/language/EditTemplate/Type/Dropdown/Hint", "text": "Show content type list" }, "$:/language/EditTemplate/Type/Delete/Caption": { "title": "$:/language/EditTemplate/Type/Delete/Caption", "text": "delete content type" }, "$:/language/EditTemplate/Type/Delete/Hint": { "title": "$:/language/EditTemplate/Type/Delete/Hint", "text": "Delete content type" }, "$:/language/EditTemplate/Type/Placeholder": { "title": "$:/language/EditTemplate/Type/Placeholder", "text": "content type" }, "$:/language/EditTemplate/Type/Prompt": { "title": "$:/language/EditTemplate/Type/Prompt", "text": "Type:" }, "$:/language/Exporters/StaticRiver": { "title": "$:/language/Exporters/StaticRiver", "text": "Static HTML" }, "$:/language/Exporters/JsonFile": { "title": "$:/language/Exporters/JsonFile", "text": "JSON file" }, "$:/language/Exporters/CsvFile": { "title": "$:/language/Exporters/CsvFile", "text": "CSV file" }, "$:/language/Exporters/TidFile": { "title": "$:/language/Exporters/TidFile", "text": "\".tid\" file" }, "$:/language/Docs/Fields/_canonical_uri": { "title": "$:/language/Docs/Fields/_canonical_uri", "text": "The full URI of an external image tiddler" }, "$:/language/Docs/Fields/bag": { "title": "$:/language/Docs/Fields/bag", "text": "The name of the bag from which a tiddler came" }, "$:/language/Docs/Fields/caption": { "title": "$:/language/Docs/Fields/caption", "text": "The text to be displayed on a tab or button" }, "$:/language/Docs/Fields/color": { "title": "$:/language/Docs/Fields/color", "text": "The CSS color value associated with a tiddler" }, "$:/language/Docs/Fields/component": { "title": "$:/language/Docs/Fields/component", "text": "The name of the component responsible for an [[alert tiddler|AlertMechanism]]" }, "$:/language/Docs/Fields/current-tiddler": { "title": "$:/language/Docs/Fields/current-tiddler", "text": "Used to cache the top tiddler in a [[history list|HistoryMechanism]]" }, "$:/language/Docs/Fields/created": { "title": "$:/language/Docs/Fields/created", "text": "The date a tiddler was created" }, "$:/language/Docs/Fields/creator": { "title": "$:/language/Docs/Fields/creator", "text": "The name of the person who created a tiddler" }, "$:/language/Docs/Fields/dependents": { "title": "$:/language/Docs/Fields/dependents", "text": "For a plugin, lists the dependent plugin titles" }, "$:/language/Docs/Fields/description": { "title": "$:/language/Docs/Fields/description", "text": "The descriptive text for a plugin, or a modal dialogue" }, "$:/language/Docs/Fields/draft.of": { "title": "$:/language/Docs/Fields/draft.of", "text": "For draft tiddlers, contains the title of the tiddler of which this is a draft" }, "$:/language/Docs/Fields/draft.title": { "title": "$:/language/Docs/Fields/draft.title", "text": "For draft tiddlers, contains the proposed new title of the tiddler" }, "$:/language/Docs/Fields/footer": { "title": "$:/language/Docs/Fields/footer", "text": "The footer text for a wizard" }, "$:/language/Docs/Fields/hack-to-give-us-something-to-compare-against": { "title": "$:/language/Docs/Fields/hack-to-give-us-something-to-compare-against", "text": "A temporary storage field used in [[$:/core/templates/static.content]]" }, "$:/language/Docs/Fields/icon": { "title": "$:/language/Docs/Fields/icon", "text": "The title of the tiddler containing the icon associated with a tiddler" }, "$:/language/Docs/Fields/library": { "title": "$:/language/Docs/Fields/library", "text": "If set to \"yes\" indicates that a tiddler should be saved as a JavaScript library" }, "$:/language/Docs/Fields/list": { "title": "$:/language/Docs/Fields/list", "text": "An ordered list of tiddler titles associated with a tiddler" }, "$:/language/Docs/Fields/list-before": { "title": "$:/language/Docs/Fields/list-before", "text": "If set, the title of a tiddler before which this tiddler should be added to the ordered list of tiddler titles, or at the start of the list if this field is present but empty" }, "$:/language/Docs/Fields/list-after": { "title": "$:/language/Docs/Fields/list-after", "text": "If set, the title of the tiddler after which this tiddler should be added to the ordered list of tiddler titles" }, "$:/language/Docs/Fields/modified": { "title": "$:/language/Docs/Fields/modified", "text": "The date and time at which a tiddler was last modified" }, "$:/language/Docs/Fields/modifier": { "title": "$:/language/Docs/Fields/modifier", "text": "The tiddler title associated with the person who last modified a tiddler" }, "$:/language/Docs/Fields/name": { "title": "$:/language/Docs/Fields/name", "text": "The human readable name associated with a plugin tiddler" }, "$:/language/Docs/Fields/plugin-priority": { "title": "$:/language/Docs/Fields/plugin-priority", "text": "A numerical value indicating the priority of a plugin tiddler" }, "$:/language/Docs/Fields/plugin-type": { "title": "$:/language/Docs/Fields/plugin-type", "text": "The type of plugin in a plugin tiddler" }, "$:/language/Docs/Fields/revision": { "title": "$:/language/Docs/Fields/revision", "text": "The revision of the tiddler held at the server" }, "$:/language/Docs/Fields/released": { "title": "$:/language/Docs/Fields/released", "text": "Date of a TiddlyWiki release" }, "$:/language/Docs/Fields/source": { "title": "$:/language/Docs/Fields/source", "text": "The source URL associated with a tiddler" }, "$:/language/Docs/Fields/subtitle": { "title": "$:/language/Docs/Fields/subtitle", "text": "The subtitle text for a wizard" }, "$:/language/Docs/Fields/tags": { "title": "$:/language/Docs/Fields/tags", "text": "A list of tags associated with a tiddler" }, "$:/language/Docs/Fields/text": { "title": "$:/language/Docs/Fields/text", "text": "The body text of a tiddler" }, "$:/language/Docs/Fields/title": { "title": "$:/language/Docs/Fields/title", "text": "The unique name of a tiddler" }, "$:/language/Docs/Fields/type": { "title": "$:/language/Docs/Fields/type", "text": "The content type of a tiddler" }, "$:/language/Docs/Fields/version": { "title": "$:/language/Docs/Fields/version", "text": "Version information for a plugin" }, "$:/language/Filters/AllTiddlers": { "title": "$:/language/Filters/AllTiddlers", "text": "All tiddlers except system tiddlers" }, "$:/language/Filters/RecentSystemTiddlers": { "title": "$:/language/Filters/RecentSystemTiddlers", "text": "Recently modified tiddlers, including system tiddlers" }, "$:/language/Filters/RecentTiddlers": { "title": "$:/language/Filters/RecentTiddlers", "text": "Recently modified tiddlers" }, "$:/language/Filters/AllTags": { "title": "$:/language/Filters/AllTags", "text": "All tags except system tags" }, "$:/language/Filters/Missing": { "title": "$:/language/Filters/Missing", "text": "Missing tiddlers" }, "$:/language/Filters/Drafts": { "title": "$:/language/Filters/Drafts", "text": "Draft tiddlers" }, "$:/language/Filters/Orphans": { "title": "$:/language/Filters/Orphans", "text": "Orphan tiddlers" }, "$:/language/Filters/SystemTiddlers": { "title": "$:/language/Filters/SystemTiddlers", "text": "System tiddlers" }, "$:/language/Filters/ShadowTiddlers": { "title": "$:/language/Filters/ShadowTiddlers", "text": "Shadow tiddlers" }, "$:/language/Filters/OverriddenShadowTiddlers": { "title": "$:/language/Filters/OverriddenShadowTiddlers", "text": "Overridden shadow tiddlers" }, "$:/language/Filters/SystemTags": { "title": "$:/language/Filters/SystemTags", "text": "System tags" }, "$:/language/Filters/TypedTiddlers": { "title": "$:/language/Filters/TypedTiddlers", "text": "Non wiki-text tiddlers" }, "GettingStarted": { "title": "GettingStarted", "text": "\\define lingo-base() $:/language/ControlPanel/Basics/\nWelcome to ~TiddlyWiki and the ~TiddlyWiki community\n\nBefore you start storing important information in ~TiddlyWiki it is important to make sure that you can reliably save changes. See http://tiddlywiki.com/#GettingStarted for details\n\n!! Set up this ~TiddlyWiki\n\n<div class=\"tc-control-panel\">\n\n|<$link to=\"$:/SiteTitle\"><<lingo Title/Prompt>></$link> |<$edit-text tiddler=\"$:/SiteTitle\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/SiteSubtitle\"><<lingo Subtitle/Prompt>></$link> |<$edit-text tiddler=\"$:/SiteSubtitle\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/DefaultTiddlers\"><<lingo DefaultTiddlers/Prompt>></$link> |<<lingo DefaultTiddlers/TopHint>><br> <$edit tag=\"textarea\" tiddler=\"$:/DefaultTiddlers\"/><br>//<<lingo DefaultTiddlers/BottomHint>>// |\n</div>\n\nSee the [[control panel|$:/ControlPanel]] for more options.\n" }, "$:/language/Help/build": { "title": "$:/language/Help/build", "description": "Automatically run configured commands", "text": "Build the specified build targets for the current wiki. If no build targets are specified then all available targets will be built.\n\n```\n--build <target> [<target> ...]\n```\n\nBuild targets are defined in the `tiddlywiki.info` file of a wiki folder.\n\n" }, "$:/language/Help/clearpassword": { "title": "$:/language/Help/clearpassword", "description": "Clear a password for subsequent crypto operations", "text": "Clear the password for subsequent crypto operations\n\n```\n--clearpassword\n```\n" }, "$:/language/Help/default": { "title": "$:/language/Help/default", "text": "\\define commandTitle()\n$:/language/Help/$(command)$\n\\end\n```\nusage: tiddlywiki [<wikifolder>] [--<command> [<args>...]...]\n```\n\nAvailable commands:\n\n<ul>\n<$list filter=\"[commands[]sort[title]]\" variable=\"command\">\n<li><$link to=<<commandTitle>>><$macrocall $name=\"command\" $type=\"text/plain\" $output=\"text/plain\"/></$link>: <$transclude tiddler=<<commandTitle>> field=\"description\"/></li>\n</$list>\n</ul>\n\nTo get detailed help on a command:\n\n```\ntiddlywiki --help <command>\n```\n" }, "$:/language/Help/editions": { "title": "$:/language/Help/editions", "description": "Lists the available editions of TiddlyWiki", "text": "Lists the names and descriptions of the available editions. You can create a new wiki of a specified edition with the `--init` command.\n\n```\n--editions\n```\n" }, "$:/language/Help/help": { "title": "$:/language/Help/help", "description": "Display help for TiddlyWiki commands", "text": "Displays help text for a command:\n\n```\n--help [<command>]\n```\n\nIf the command name is omitted then a list of available commands is displayed.\n" }, "$:/language/Help/init": { "title": "$:/language/Help/init", "description": "Initialise a new wiki folder", "text": "Initialise an empty [[WikiFolder|WikiFolders]] with a copy of the specified edition.\n\n```\n--init <edition> [<edition> ...]\n```\n\nFor example:\n\n```\ntiddlywiki ./MyWikiFolder --init empty\n```\n\nNote:\n\n* The wiki folder directory will be created if necessary\n* The \"edition\" defaults to ''empty''\n* The init command will fail if the wiki folder is not empty\n* The init command removes any `includeWikis` definitions in the edition's `tiddlywiki.info` file\n* When multiple editions are specified, editions initialised later will overwrite any files shared with earlier editions (so, the final `tiddlywiki.info` file will be copied from the last edition)\n* `--editions` returns a list of available editions\n" }, "$:/language/Help/load": { "title": "$:/language/Help/load", "description": "Load tiddlers from a file", "text": "Load tiddlers from 2.x.x TiddlyWiki files (`.html`), `.tiddler`, `.tid`, `.json` or other files\n\n```\n--load <filepath>\n```\n\nTo load tiddlers from an encrypted TiddlyWiki file you should first specify the password with the PasswordCommand. For example:\n\n```\ntiddlywiki ./MyWiki --password pa55w0rd --load my_encrypted_wiki.html\n```\n\nNote that TiddlyWiki will not load an older version of an already loaded plugin.\n" }, "$:/language/Help/makelibrary": { "title": "$:/language/Help/makelibrary", "description": "Construct library plugin required by upgrade process", "text": "Constructs the `$:/UpgradeLibrary` tiddler for the upgrade process.\n\nThe upgrade library is formatted as an ordinary plugin tiddler with the plugin type `library`. It contains a copy of each of the plugins, themes and language packs available within the TiddlyWiki5 repository.\n\nThis command is intended for internal use; it is only relevant to users constructing a custom upgrade procedure.\n\n```\n--makelibrary <title>\n```\n\nThe title argument defaults to `$:/UpgradeLibrary`.\n" }, "$:/language/Help/notfound": { "title": "$:/language/Help/notfound", "text": "No such help item" }, "$:/language/Help/output": { "title": "$:/language/Help/output", "description": "Set the base output directory for subsequent commands", "text": "Sets the base output directory for subsequent commands. The default output directory is the `output` subdirectory of the edition directory.\n\n```\n--output <pathname>\n```\n\nIf the specified pathname is relative then it is resolved relative to the current working directory. For example `--output .` sets the output directory to the current working directory.\n\n" }, "$:/language/Help/password": { "title": "$:/language/Help/password", "description": "Set a password for subsequent crypto operations", "text": "Set a password for subsequent crypto operations\n\n```\n--password <password>\n```\n\n''Note'': This should not be used for serving TiddlyWiki with password protection. Instead, see the password option under the [[ServerCommand]].\n" }, "$:/language/Help/rendertiddler": { "title": "$:/language/Help/rendertiddler", "description": "Render an individual tiddler as a specified ContentType", "text": "Render an individual tiddler as a specified ContentType, defaulting to `text/html` and save it to the specified filename. Optionally a template can be specified, in which case the template tiddler is rendered with the \"currentTiddler\" variable set to the tiddler that is being rendered (the first parameter value).\n\n```\n--rendertiddler <title> <filename> [<type>] [<template>]\n```\n\nBy default, the filename is resolved relative to the `output` subdirectory of the edition directory. The `--output` command can be used to direct output to a different directory.\n\nAny missing directories in the path to the filename are automatically created.\n" }, "$:/language/Help/rendertiddlers": { "title": "$:/language/Help/rendertiddlers", "description": "Render tiddlers matching a filter to a specified ContentType", "text": "Render a set of tiddlers matching a filter to separate files of a specified ContentType (defaults to `text/html`) and extension (defaults to `.html`).\n\n```\n--rendertiddlers <filter> <template> <pathname> [<type>] [<extension>] [\"noclean\"]\n```\n\nFor example:\n\n```\n--rendertiddlers [!is[system]] $:/core/templates/static.tiddler.html ./static text/plain\n```\n\nBy default, the pathname is resolved relative to the `output` subdirectory of the edition directory. The `--output` command can be used to direct output to a different directory.\n\nAny files in the target directory are deleted unless the ''noclean'' flag is specified. The target directory is recursively created if it is missing.\n" }, "$:/language/Help/savetiddler": { "title": "$:/language/Help/savetiddler", "description": "Saves a raw tiddler to a file", "text": "Saves an individual tiddler in its raw text or binary format to the specified filename.\n\n```\n--savetiddler <title> <filename>\n```\n\nBy default, the filename is resolved relative to the `output` subdirectory of the edition directory. The `--output` command can be used to direct output to a different directory.\n\nAny missing directories in the path to the filename are automatically created.\n" }, "$:/language/Help/savetiddlers": { "title": "$:/language/Help/savetiddlers", "description": "Saves a group of raw tiddlers to a directory", "text": "Saves a group of tiddlers in their raw text or binary format to the specified directory.\n\n```\n--savetiddlers <filter> <pathname> [\"noclean\"]\n```\n\nBy default, the pathname is resolved relative to the `output` subdirectory of the edition directory. The `--output` command can be used to direct output to a different directory.\n\nThe output directory is cleared of existing files before saving the specified files. The deletion can be disabled by specifying the ''noclean'' flag.\n\nAny missing directories in the pathname are automatically created.\n" }, "$:/language/Help/server": { "title": "$:/language/Help/server", "description": "Provides an HTTP server interface to TiddlyWiki", "text": "The server built in to TiddlyWiki5 is very simple. Although compatible with TiddlyWeb it doesn't support many of the features needed for robust Internet-facing usage.\n\nAt the root, it serves a rendering of a specified tiddler. Away from the root, it serves individual tiddlers encoded in JSON, and supports the basic HTTP operations for `GET`, `PUT` and `DELETE`.\n\n```\n--server <port> <roottiddler> <rendertype> <servetype> <username> <password> <host> <pathprefix>\n```\n\nThe parameters are:\n\n* ''port'' - port number to serve from (defaults to \"8080\")\n* ''roottiddler'' - the tiddler to serve at the root (defaults to \"$:/core/save/all\")\n* ''rendertype'' - the content type to which the root tiddler should be rendered (defaults to \"text/plain\")\n* ''servetype'' - the content type with which the root tiddler should be served (defaults to \"text/html\")\n* ''username'' - the default username for signing edits\n* ''password'' - optional password for basic authentication\n* ''host'' - optional hostname to serve from (defaults to \"127.0.0.1\" aka \"localhost\")\n* ''pathprefix'' - optional prefix for paths\n\nIf the password parameter is specified then the browser will prompt the user for the username and password. Note that the password is transmitted in plain text so this implementation isn't suitable for general use.\n\nFor example:\n\n```\n--server 8080 $:/core/save/all text/plain text/html MyUserName passw0rd\n```\n\nThe username and password can be specified as empty strings if you need to set the hostname or pathprefix and don't want to require a password:\n\n```\n--server 8080 $:/core/save/all text/plain text/html \"\" \"\" 192.168.0.245\n```\n\nTo run multiple TiddlyWiki servers at the same time you'll need to put each one on a different port.\n" }, "$:/language/Help/setfield": { "title": "$:/language/Help/setfield", "description": "Prepares external tiddlers for use", "text": "//Note that this command is experimental and may change or be replaced before being finalised//\n\nSets the specified field of a group of tiddlers to the result of wikifying a template tiddler with the `currentTiddler` variable set to the tiddler.\n\n```\n--setfield <filter> <fieldname> <templatetitle> <rendertype>\n```\n\nThe parameters are:\n\n* ''filter'' - filter identifying the tiddlers to be affected\n* ''fieldname'' - the field to modify (defaults to \"text\")\n* ''templatetitle'' - the tiddler to wikify into the specified field. If blank or missing then the specified field is deleted\n* ''rendertype'' - the text type to render (defaults to \"text/plain\"; \"text/html\" can be used to include HTML tags)\n" }, "$:/language/Help/unpackplugin": { "title": "$:/language/Help/unpackplugin", "description": "Unpack the payload tiddlers from a plugin", "text": "Extract the payload tiddlers from a plugin, creating them as ordinary tiddlers:\n\n```\n--unpackplugin <title>\n```\n" }, "$:/language/Help/verbose": { "title": "$:/language/Help/verbose", "description": "Triggers verbose output mode", "text": "Triggers verbose output, useful for debugging\n\n```\n--verbose\n```\n" }, "$:/language/Help/version": { "title": "$:/language/Help/version", "description": "Displays the version number of TiddlyWiki", "text": "Displays the version number of TiddlyWiki.\n\n```\n--version\n```\n" }, "$:/language/Import/Imported/Hint": { "title": "$:/language/Import/Imported/Hint", "text": "The following tiddlers were imported:" }, "$:/language/Import/Listing/Cancel/Caption": { "title": "$:/language/Import/Listing/Cancel/Caption", "text": "Cancel" }, "$:/language/Import/Listing/Hint": { "title": "$:/language/Import/Listing/Hint", "text": "These tiddlers are ready to import:" }, "$:/language/Import/Listing/Import/Caption": { "title": "$:/language/Import/Listing/Import/Caption", "text": "Import" }, "$:/language/Import/Listing/Select/Caption": { "title": "$:/language/Import/Listing/Select/Caption", "text": "Select" }, "$:/language/Import/Listing/Status/Caption": { "title": "$:/language/Import/Listing/Status/Caption", "text": "Status" }, "$:/language/Import/Listing/Title/Caption": { "title": "$:/language/Import/Listing/Title/Caption", "text": "Title" }, "$:/language/Import/Upgrader/Plugins/Suppressed/Incompatible": { "title": "$:/language/Import/Upgrader/Plugins/Suppressed/Incompatible", "text": "Blocked incompatible or obsolete plugin" }, "$:/language/Import/Upgrader/Plugins/Suppressed/Version": { "title": "$:/language/Import/Upgrader/Plugins/Suppressed/Version", "text": "Blocked plugin (due to incoming <<incoming>> being older than existing <<existing>>)" }, "$:/language/Import/Upgrader/Plugins/Upgraded": { "title": "$:/language/Import/Upgrader/Plugins/Upgraded", "text": "Upgraded plugin from <<incoming>> to <<upgraded>>" }, "$:/language/Import/Upgrader/State/Suppressed": { "title": "$:/language/Import/Upgrader/State/Suppressed", "text": "Blocked temporary state tiddler" }, "$:/language/Import/Upgrader/System/Suppressed": { "title": "$:/language/Import/Upgrader/System/Suppressed", "text": "Blocked system tiddler" }, "$:/language/Import/Upgrader/ThemeTweaks/Created": { "title": "$:/language/Import/Upgrader/ThemeTweaks/Created", "text": "Migrated theme tweak from <$text text=<<from>>/>" }, "$:/language/AboveStory/ClassicPlugin/Warning": { "title": "$:/language/AboveStory/ClassicPlugin/Warning", "text": "It looks like you are trying to load a plugin designed for ~TiddlyWiki Classic. Please note that [[these plugins do not work with TiddlyWiki version 5.x.x|http://tiddlywiki.com/#TiddlyWikiClassic]]. ~TiddlyWiki Classic plugins detected:" }, "$:/language/BinaryWarning/Prompt": { "title": "$:/language/BinaryWarning/Prompt", "text": "This tiddler contains binary data" }, "$:/language/ClassicWarning/Hint": { "title": "$:/language/ClassicWarning/Hint", "text": "This tiddler is written in TiddlyWiki Classic wiki text format, which is not fully compatible with TiddlyWiki version 5. See http://tiddlywiki.com/static/Upgrading.html for more details." }, "$:/language/ClassicWarning/Upgrade/Caption": { "title": "$:/language/ClassicWarning/Upgrade/Caption", "text": "upgrade" }, "$:/language/CloseAll/Button": { "title": "$:/language/CloseAll/Button", "text": "close all" }, "$:/language/ColourPicker/Recent": { "title": "$:/language/ColourPicker/Recent", "text": "Recent:" }, "$:/language/ConfirmCancelTiddler": { "title": "$:/language/ConfirmCancelTiddler", "text": "Do you wish to discard changes to the tiddler \"<$text text=<<title>>/>\"?" }, "$:/language/ConfirmDeleteTiddler": { "title": "$:/language/ConfirmDeleteTiddler", "text": "Do you wish to delete the tiddler \"<$text text=<<title>>/>\"?" }, "$:/language/ConfirmOverwriteTiddler": { "title": "$:/language/ConfirmOverwriteTiddler", "text": "Do you wish to overwrite the tiddler \"<$text text=<<title>>/>\"?" }, "$:/language/ConfirmEditShadowTiddler": { "title": "$:/language/ConfirmEditShadowTiddler", "text": "You are about to edit a ShadowTiddler. Any changes will override the default system making future upgrades non-trivial. Are you sure you want to edit \"<$text text=<<title>>/>\"?" }, "$:/language/Count": { "title": "$:/language/Count", "text": "count" }, "$:/language/DefaultNewTiddlerTitle": { "title": "$:/language/DefaultNewTiddlerTitle", "text": "New Tiddler" }, "$:/language/DropMessage": { "title": "$:/language/DropMessage", "text": "Drop here (or use the 'Escape' key to cancel)" }, "$:/language/Encryption/Cancel": { "title": "$:/language/Encryption/Cancel", "text": "Cancel" }, "$:/language/Encryption/ConfirmClearPassword": { "title": "$:/language/Encryption/ConfirmClearPassword", "text": "Do you wish to clear the password? This will remove the encryption applied when saving this wiki" }, "$:/language/Encryption/PromptSetPassword": { "title": "$:/language/Encryption/PromptSetPassword", "text": "Set a new password for this TiddlyWiki" }, "$:/language/Encryption/Username": { "title": "$:/language/Encryption/Username", "text": "Username" }, "$:/language/Encryption/Password": { "title": "$:/language/Encryption/Password", "text": "Password" }, "$:/language/Encryption/RepeatPassword": { "title": "$:/language/Encryption/RepeatPassword", "text": "Repeat password" }, "$:/language/Encryption/PasswordNoMatch": { "title": "$:/language/Encryption/PasswordNoMatch", "text": "Passwords do not match" }, "$:/language/Encryption/SetPassword": { "title": "$:/language/Encryption/SetPassword", "text": "Set password" }, "$:/language/Error/Caption": { "title": "$:/language/Error/Caption", "text": "Error" }, "$:/language/Error/Filter": { "title": "$:/language/Error/Filter", "text": "Filter error" }, "$:/language/Error/FilterSyntax": { "title": "$:/language/Error/FilterSyntax", "text": "Syntax error in filter expression" }, "$:/language/Error/IsFilterOperator": { "title": "$:/language/Error/IsFilterOperator", "text": "Filter Error: Unknown operand for the 'is' filter operator" }, "$:/language/Error/LoadingPluginLibrary": { "title": "$:/language/Error/LoadingPluginLibrary", "text": "Error loading plugin library" }, "$:/language/Error/RecursiveTransclusion": { "title": "$:/language/Error/RecursiveTransclusion", "text": "Recursive transclusion error in transclude widget" }, "$:/language/Error/RetrievingSkinny": { "title": "$:/language/Error/RetrievingSkinny", "text": "Error retrieving skinny tiddler list" }, "$:/language/Error/SavingToTWEdit": { "title": "$:/language/Error/SavingToTWEdit", "text": "Error saving to TWEdit" }, "$:/language/Error/WhileSaving": { "title": "$:/language/Error/WhileSaving", "text": "Error while saving" }, "$:/language/Error/XMLHttpRequest": { "title": "$:/language/Error/XMLHttpRequest", "text": "XMLHttpRequest error code" }, "$:/language/InternalJavaScriptError/Title": { "title": "$:/language/InternalJavaScriptError/Title", "text": "Internal JavaScript Error" }, "$:/language/InternalJavaScriptError/Hint": { "title": "$:/language/InternalJavaScriptError/Hint", "text": "Well, this is embarrassing. It is recommended that you restart TiddlyWiki by refreshing your browser" }, "$:/language/InvalidFieldName": { "title": "$:/language/InvalidFieldName", "text": "Illegal characters in field name \"<$text text=<<fieldName>>/>\". Fields can only contain lowercase letters, digits and the characters underscore (`_`), hyphen (`-`) and period (`.`)" }, "$:/language/LazyLoadingWarning": { "title": "$:/language/LazyLoadingWarning", "text": "<p>Loading external text from ''<$text text={{!!_canonical_uri}}/>''</p><p>If this message doesn't disappear you may be using a browser that doesn't support external text in this configuration. See http://tiddlywiki.com/#ExternalText</p>" }, "$:/language/LoginToTiddlySpace": { "title": "$:/language/LoginToTiddlySpace", "text": "Login to TiddlySpace" }, "$:/language/MissingTiddler/Hint": { "title": "$:/language/MissingTiddler/Hint", "text": "Missing tiddler \"<$text text=<<currentTiddler>>/>\" - click {{$:/core/images/edit-button}} to create" }, "$:/language/No": { "title": "$:/language/No", "text": "No" }, "$:/language/OfficialPluginLibrary": { "title": "$:/language/OfficialPluginLibrary", "text": "Official ~TiddlyWiki Plugin Library" }, "$:/language/OfficialPluginLibrary/Hint": { "title": "$:/language/OfficialPluginLibrary/Hint", "text": "The official ~TiddlyWiki plugin library at tiddlywiki.com. Plugins, themes and language packs are maintained by the core team." }, "$:/language/PluginReloadWarning": { "title": "$:/language/PluginReloadWarning", "text": "Please save {{$:/core/ui/Buttons/save-wiki}} and reload {{$:/core/ui/Buttons/refresh}} to allow changes to plugins to take effect" }, "$:/language/RecentChanges/DateFormat": { "title": "$:/language/RecentChanges/DateFormat", "text": "DDth MMM YYYY" }, "$:/language/SystemTiddler/Tooltip": { "title": "$:/language/SystemTiddler/Tooltip", "text": "This is a system tiddler" }, "$:/language/TagManager/Colour/Heading": { "title": "$:/language/TagManager/Colour/Heading", "text": "Colour" }, "$:/language/TagManager/Count/Heading": { "title": "$:/language/TagManager/Count/Heading", "text": "Count" }, "$:/language/TagManager/Icon/Heading": { "title": "$:/language/TagManager/Icon/Heading", "text": "Icon" }, "$:/language/TagManager/Info/Heading": { "title": "$:/language/TagManager/Info/Heading", "text": "Info" }, "$:/language/TagManager/Tag/Heading": { "title": "$:/language/TagManager/Tag/Heading", "text": "Tag" }, "$:/language/Tiddler/DateFormat": { "title": "$:/language/Tiddler/DateFormat", "text": "DDth MMM YYYY at hh12:0mmam" }, "$:/language/UnsavedChangesWarning": { "title": "$:/language/UnsavedChangesWarning", "text": "You have unsaved changes in TiddlyWiki" }, "$:/language/Yes": { "title": "$:/language/Yes", "text": "Yes" }, "$:/language/Modals/Download": { "title": "$:/language/Modals/Download", "type": "text/vnd.tiddlywiki", "subtitle": "Download changes", "footer": "<$button message=\"tm-close-tiddler\">Close</$button>", "help": "http://tiddlywiki.com/static/DownloadingChanges.html", "text": "Your browser only supports manual saving.\n\nTo save your modified wiki, right click on the download link below and select \"Download file\" or \"Save file\", and then choose the folder and filename.\n\n//You can marginally speed things up by clicking the link with the control key (Windows) or the options/alt key (Mac OS X). You will not be prompted for the folder or filename, but your browser is likely to give it an unrecognisable name -- you may need to rename the file to include an `.html` extension before you can do anything useful with it.//\n\nOn smartphones that do not allow files to be downloaded you can instead bookmark the link, and then sync your bookmarks to a desktop computer from where the wiki can be saved normally.\n" }, "$:/language/Modals/SaveInstructions": { "title": "$:/language/Modals/SaveInstructions", "type": "text/vnd.tiddlywiki", "subtitle": "Save your work", "footer": "<$button message=\"tm-close-tiddler\">Close</$button>", "help": "http://tiddlywiki.com/static/SavingChanges.html", "text": "Your changes to this wiki need to be saved as a ~TiddlyWiki HTML file.\n\n!!! Desktop browsers\n\n# Select ''Save As'' from the ''File'' menu\n# Choose a filename and location\n#* Some browsers also require you to explicitly specify the file saving format as ''Webpage, HTML only'' or similar\n# Close this tab\n\n!!! Smartphone browsers\n\n# Create a bookmark to this page\n#* If you've got iCloud or Google Sync set up then the bookmark will automatically sync to your desktop where you can open it and save it as above\n# Close this tab\n\n//If you open the bookmark again in Mobile Safari you will see this message again. If you want to go ahead and use the file, just click the ''close'' button below//\n" }, "$:/config/NewJournal/Title": { "title": "$:/config/NewJournal/Title", "text": "DDth MMM YYYY" }, "$:/config/NewJournal/Tags": { "title": "$:/config/NewJournal/Tags", "text": "Journal" }, "$:/language/Notifications/Save/Done": { "title": "$:/language/Notifications/Save/Done", "text": "Saved wiki" }, "$:/language/Notifications/Save/Starting": { "title": "$:/language/Notifications/Save/Starting", "text": "Starting to save wiki" }, "$:/language/Search/DefaultResults/Caption": { "title": "$:/language/Search/DefaultResults/Caption", "text": "List" }, "$:/language/Search/Filter/Caption": { "title": "$:/language/Search/Filter/Caption", "text": "Filter" }, "$:/language/Search/Filter/Hint": { "title": "$:/language/Search/Filter/Hint", "text": "Search via a [[filter expression|http://tiddlywiki.com/static/Filters.html]]" }, "$:/language/Search/Filter/Matches": { "title": "$:/language/Search/Filter/Matches", "text": "//<small><<resultCount>> matches</small>//" }, "$:/language/Search/Matches": { "title": "$:/language/Search/Matches", "text": "//<small><<resultCount>> matches</small>//" }, "$:/language/Search/Matches/All": { "title": "$:/language/Search/Matches/All", "text": "All matches:" }, "$:/language/Search/Matches/Title": { "title": "$:/language/Search/Matches/Title", "text": "Title matches:" }, "$:/language/Search/Search": { "title": "$:/language/Search/Search", "text": "Search" }, "$:/language/Search/Shadows/Caption": { "title": "$:/language/Search/Shadows/Caption", "text": "Shadows" }, "$:/language/Search/Shadows/Hint": { "title": "$:/language/Search/Shadows/Hint", "text": "Search for shadow tiddlers" }, "$:/language/Search/Shadows/Matches": { "title": "$:/language/Search/Shadows/Matches", "text": "//<small><<resultCount>> matches</small>//" }, "$:/language/Search/Standard/Caption": { "title": "$:/language/Search/Standard/Caption", "text": "Standard" }, "$:/language/Search/Standard/Hint": { "title": "$:/language/Search/Standard/Hint", "text": "Search for standard tiddlers" }, "$:/language/Search/Standard/Matches": { "title": "$:/language/Search/Standard/Matches", "text": "//<small><<resultCount>> matches</small>//" }, "$:/language/Search/System/Caption": { "title": "$:/language/Search/System/Caption", "text": "System" }, "$:/language/Search/System/Hint": { "title": "$:/language/Search/System/Hint", "text": "Search for system tiddlers" }, "$:/language/Search/System/Matches": { "title": "$:/language/Search/System/Matches", "text": "//<small><<resultCount>> matches</small>//" }, "$:/language/SideBar/All/Caption": { "title": "$:/language/SideBar/All/Caption", "text": "All" }, "$:/language/SideBar/Contents/Caption": { "title": "$:/language/SideBar/Contents/Caption", "text": "Contents" }, "$:/language/SideBar/Drafts/Caption": { "title": "$:/language/SideBar/Drafts/Caption", "text": "Drafts" }, "$:/language/SideBar/Missing/Caption": { "title": "$:/language/SideBar/Missing/Caption", "text": "Missing" }, "$:/language/SideBar/More/Caption": { "title": "$:/language/SideBar/More/Caption", "text": "More" }, "$:/language/SideBar/Open/Caption": { "title": "$:/language/SideBar/Open/Caption", "text": "Open" }, "$:/language/SideBar/Orphans/Caption": { "title": "$:/language/SideBar/Orphans/Caption", "text": "Orphans" }, "$:/language/SideBar/Recent/Caption": { "title": "$:/language/SideBar/Recent/Caption", "text": "Recent" }, "$:/language/SideBar/Shadows/Caption": { "title": "$:/language/SideBar/Shadows/Caption", "text": "Shadows" }, "$:/language/SideBar/System/Caption": { "title": "$:/language/SideBar/System/Caption", "text": "System" }, "$:/language/SideBar/Tags/Caption": { "title": "$:/language/SideBar/Tags/Caption", "text": "Tags" }, "$:/language/SideBar/Tags/Untagged/Caption": { "title": "$:/language/SideBar/Tags/Untagged/Caption", "text": "untagged" }, "$:/language/SideBar/Tools/Caption": { "title": "$:/language/SideBar/Tools/Caption", "text": "Tools" }, "$:/language/SideBar/Types/Caption": { "title": "$:/language/SideBar/Types/Caption", "text": "Types" }, "$:/SiteSubtitle": { "title": "$:/SiteSubtitle", "text": "a non-linear personal web notebook" }, "$:/SiteTitle": { "title": "$:/SiteTitle", "text": "My ~TiddlyWiki" }, "$:/language/Snippets/ListByTag": { "title": "$:/language/Snippets/ListByTag", "tags": "$:/tags/TextEditor/Snippet", "caption": "List of tiddlers by tag", "text": "<<list-links \"[tag[task]sort[title]]\">>\n" }, "$:/language/Snippets/MacroDefinition": { "title": "$:/language/Snippets/MacroDefinition", "tags": "$:/tags/TextEditor/Snippet", "caption": "Macro definition", "text": "\\define macroName(param1:\"default value\",param2)\nText of the macro\n\\end\n" }, "$:/language/Snippets/Table4x3": { "title": "$:/language/Snippets/Table4x3", "tags": "$:/tags/TextEditor/Snippet", "caption": "Table with 4 columns by 3 rows", "text": "|! |!Alpha |!Beta |!Gamma |!Delta |\n|!One | | | | |\n|!Two | | | | |\n|!Three | | | | |\n" }, "$:/language/Snippets/TableOfContents": { "title": "$:/language/Snippets/TableOfContents", "tags": "$:/tags/TextEditor/Snippet", "caption": "Table of Contents", "text": "<div class=\"tc-table-of-contents\">\n\n<<toc-selective-expandable 'TableOfContents'>>\n\n</div>" }, "$:/language/ThemeTweaks/ThemeTweaks": { "title": "$:/language/ThemeTweaks/ThemeTweaks", "text": "Theme Tweaks" }, "$:/language/ThemeTweaks/ThemeTweaks/Hint": { "title": "$:/language/ThemeTweaks/ThemeTweaks/Hint", "text": "You can tweak certain aspects of the ''Vanilla'' theme." }, "$:/language/ThemeTweaks/Options": { "title": "$:/language/ThemeTweaks/Options", "text": "Options" }, "$:/language/ThemeTweaks/Options/SidebarLayout": { "title": "$:/language/ThemeTweaks/Options/SidebarLayout", "text": "Sidebar layout" }, "$:/language/ThemeTweaks/Options/SidebarLayout/Fixed-Fluid": { "title": "$:/language/ThemeTweaks/Options/SidebarLayout/Fixed-Fluid", "text": "Fixed story, fluid sidebar" }, "$:/language/ThemeTweaks/Options/SidebarLayout/Fluid-Fixed": { "title": "$:/language/ThemeTweaks/Options/SidebarLayout/Fluid-Fixed", "text": "Fluid story, fixed sidebar" }, "$:/language/ThemeTweaks/Options/StickyTitles": { "title": "$:/language/ThemeTweaks/Options/StickyTitles", "text": "Sticky titles" }, "$:/language/ThemeTweaks/Options/StickyTitles/Hint": { "title": "$:/language/ThemeTweaks/Options/StickyTitles/Hint", "text": "Causes tiddler titles to \"stick\" to the top of the browser window. Caution: Does not work at all with Chrome, and causes some layout issues in Firefox" }, "$:/language/ThemeTweaks/Options/CodeWrapping": { "title": "$:/language/ThemeTweaks/Options/CodeWrapping", "text": "Wrap long lines in code blocks" }, "$:/language/ThemeTweaks/Settings": { "title": "$:/language/ThemeTweaks/Settings", "text": "Settings" }, "$:/language/ThemeTweaks/Settings/FontFamily": { "title": "$:/language/ThemeTweaks/Settings/FontFamily", "text": "Font family" }, "$:/language/ThemeTweaks/Settings/CodeFontFamily": { "title": "$:/language/ThemeTweaks/Settings/CodeFontFamily", "text": "Code font family" }, "$:/language/ThemeTweaks/Settings/BackgroundImage": { "title": "$:/language/ThemeTweaks/Settings/BackgroundImage", "text": "Page background image" }, "$:/language/ThemeTweaks/Settings/BackgroundImageAttachment": { "title": "$:/language/ThemeTweaks/Settings/BackgroundImageAttachment", "text": "Page background image attachment" }, "$:/language/ThemeTweaks/Settings/BackgroundImageAttachment/Scroll": { "title": "$:/language/ThemeTweaks/Settings/BackgroundImageAttachment/Scroll", "text": "Scroll with tiddlers" }, "$:/language/ThemeTweaks/Settings/BackgroundImageAttachment/Fixed": { "title": "$:/language/ThemeTweaks/Settings/BackgroundImageAttachment/Fixed", "text": "Fixed to window" }, "$:/language/ThemeTweaks/Settings/BackgroundImageSize": { "title": "$:/language/ThemeTweaks/Settings/BackgroundImageSize", "text": "Page background image size" }, "$:/language/ThemeTweaks/Settings/BackgroundImageSize/Auto": { "title": "$:/language/ThemeTweaks/Settings/BackgroundImageSize/Auto", "text": "Auto" }, "$:/language/ThemeTweaks/Settings/BackgroundImageSize/Cover": { "title": "$:/language/ThemeTweaks/Settings/BackgroundImageSize/Cover", "text": "Cover" }, "$:/language/ThemeTweaks/Settings/BackgroundImageSize/Contain": { "title": "$:/language/ThemeTweaks/Settings/BackgroundImageSize/Contain", "text": "Contain" }, "$:/language/ThemeTweaks/Metrics": { "title": "$:/language/ThemeTweaks/Metrics", "text": "Sizes" }, "$:/language/ThemeTweaks/Metrics/FontSize": { "title": "$:/language/ThemeTweaks/Metrics/FontSize", "text": "Font size" }, "$:/language/ThemeTweaks/Metrics/LineHeight": { "title": "$:/language/ThemeTweaks/Metrics/LineHeight", "text": "Line height" }, "$:/language/ThemeTweaks/Metrics/BodyFontSize": { "title": "$:/language/ThemeTweaks/Metrics/BodyFontSize", "text": "Font size for tiddler body" }, "$:/language/ThemeTweaks/Metrics/BodyLineHeight": { "title": "$:/language/ThemeTweaks/Metrics/BodyLineHeight", "text": "Line height for tiddler body" }, "$:/language/ThemeTweaks/Metrics/StoryLeft": { "title": "$:/language/ThemeTweaks/Metrics/StoryLeft", "text": "Story left position" }, "$:/language/ThemeTweaks/Metrics/StoryLeft/Hint": { "title": "$:/language/ThemeTweaks/Metrics/StoryLeft/Hint", "text": "how far the left margin of the story river<br>(tiddler area) is from the left of the page" }, "$:/language/ThemeTweaks/Metrics/StoryTop": { "title": "$:/language/ThemeTweaks/Metrics/StoryTop", "text": "Story top position" }, "$:/language/ThemeTweaks/Metrics/StoryTop/Hint": { "title": "$:/language/ThemeTweaks/Metrics/StoryTop/Hint", "text": "how far the top margin of the story river<br>is from the top of the page" }, "$:/language/ThemeTweaks/Metrics/StoryRight": { "title": "$:/language/ThemeTweaks/Metrics/StoryRight", "text": "Story right" }, "$:/language/ThemeTweaks/Metrics/StoryRight/Hint": { "title": "$:/language/ThemeTweaks/Metrics/StoryRight/Hint", "text": "how far the left margin of the sidebar <br>is from the left of the page" }, "$:/language/ThemeTweaks/Metrics/StoryWidth": { "title": "$:/language/ThemeTweaks/Metrics/StoryWidth", "text": "Story width" }, "$:/language/ThemeTweaks/Metrics/StoryWidth/Hint": { "title": "$:/language/ThemeTweaks/Metrics/StoryWidth/Hint", "text": "the overall width of the story river" }, "$:/language/ThemeTweaks/Metrics/TiddlerWidth": { "title": "$:/language/ThemeTweaks/Metrics/TiddlerWidth", "text": "Tiddler width" }, "$:/language/ThemeTweaks/Metrics/TiddlerWidth/Hint": { "title": "$:/language/ThemeTweaks/Metrics/TiddlerWidth/Hint", "text": "within the story river" }, "$:/language/ThemeTweaks/Metrics/SidebarBreakpoint": { "title": "$:/language/ThemeTweaks/Metrics/SidebarBreakpoint", "text": "Sidebar breakpoint" }, "$:/language/ThemeTweaks/Metrics/SidebarBreakpoint/Hint": { "title": "$:/language/ThemeTweaks/Metrics/SidebarBreakpoint/Hint", "text": "the minimum page width at which the story<br>river and sidebar will appear side by side" }, "$:/language/ThemeTweaks/Metrics/SidebarWidth": { "title": "$:/language/ThemeTweaks/Metrics/SidebarWidth", "text": "Sidebar width" }, "$:/language/ThemeTweaks/Metrics/SidebarWidth/Hint": { "title": "$:/language/ThemeTweaks/Metrics/SidebarWidth/Hint", "text": "the width of the sidebar in fluid-fixed layout" }, "$:/language/TiddlerInfo/Advanced/Caption": { "title": "$:/language/TiddlerInfo/Advanced/Caption", "text": "Advanced" }, "$:/language/TiddlerInfo/Advanced/PluginInfo/Empty/Hint": { "title": "$:/language/TiddlerInfo/Advanced/PluginInfo/Empty/Hint", "text": "none" }, "$:/language/TiddlerInfo/Advanced/PluginInfo/Heading": { "title": "$:/language/TiddlerInfo/Advanced/PluginInfo/Heading", "text": "Plugin Details" }, "$:/language/TiddlerInfo/Advanced/PluginInfo/Hint": { "title": "$:/language/TiddlerInfo/Advanced/PluginInfo/Hint", "text": "This plugin contains the following shadow tiddlers:" }, "$:/language/TiddlerInfo/Advanced/ShadowInfo/Heading": { "title": "$:/language/TiddlerInfo/Advanced/ShadowInfo/Heading", "text": "Shadow Status" }, "$:/language/TiddlerInfo/Advanced/ShadowInfo/NotShadow/Hint": { "title": "$:/language/TiddlerInfo/Advanced/ShadowInfo/NotShadow/Hint", "text": "The tiddler <$link to=<<infoTiddler>>><$text text=<<infoTiddler>>/></$link> is not a shadow tiddler" }, "$:/language/TiddlerInfo/Advanced/ShadowInfo/Shadow/Hint": { "title": "$:/language/TiddlerInfo/Advanced/ShadowInfo/Shadow/Hint", "text": "The tiddler <$link to=<<infoTiddler>>><$text text=<<infoTiddler>>/></$link> is a shadow tiddler" }, "$:/language/TiddlerInfo/Advanced/ShadowInfo/Shadow/Source": { "title": "$:/language/TiddlerInfo/Advanced/ShadowInfo/Shadow/Source", "text": "It is defined in the plugin <$link to=<<pluginTiddler>>><$text text=<<pluginTiddler>>/></$link>" }, "$:/language/TiddlerInfo/Advanced/ShadowInfo/OverriddenShadow/Hint": { "title": "$:/language/TiddlerInfo/Advanced/ShadowInfo/OverriddenShadow/Hint", "text": "It is overridden by an ordinary tiddler" }, "$:/language/TiddlerInfo/Fields/Caption": { "title": "$:/language/TiddlerInfo/Fields/Caption", "text": "Fields" }, "$:/language/TiddlerInfo/List/Caption": { "title": "$:/language/TiddlerInfo/List/Caption", "text": "List" }, "$:/language/TiddlerInfo/List/Empty": { "title": "$:/language/TiddlerInfo/List/Empty", "text": "This tiddler does not have a list" }, "$:/language/TiddlerInfo/Listed/Caption": { "title": "$:/language/TiddlerInfo/Listed/Caption", "text": "Listed" }, "$:/language/TiddlerInfo/Listed/Empty": { "title": "$:/language/TiddlerInfo/Listed/Empty", "text": "This tiddler is not listed by any others" }, "$:/language/TiddlerInfo/References/Caption": { "title": "$:/language/TiddlerInfo/References/Caption", "text": "References" }, "$:/language/TiddlerInfo/References/Empty": { "title": "$:/language/TiddlerInfo/References/Empty", "text": "No tiddlers link to this one" }, "$:/language/TiddlerInfo/Tagging/Caption": { "title": "$:/language/TiddlerInfo/Tagging/Caption", "text": "Tagging" }, "$:/language/TiddlerInfo/Tagging/Empty": { "title": "$:/language/TiddlerInfo/Tagging/Empty", "text": "No tiddlers are tagged with this one" }, "$:/language/TiddlerInfo/Tools/Caption": { "title": "$:/language/TiddlerInfo/Tools/Caption", "text": "Tools" }, "$:/language/Docs/Types/application/javascript": { "title": "$:/language/Docs/Types/application/javascript", "description": "JavaScript code", "name": "application/javascript", "group": "Developer" }, "$:/language/Docs/Types/application/json": { "title": "$:/language/Docs/Types/application/json", "description": "JSON data", "name": "application/json", "group": "Developer" }, "$:/language/Docs/Types/application/x-tiddler-dictionary": { "title": "$:/language/Docs/Types/application/x-tiddler-dictionary", "description": "Data dictionary", "name": "application/x-tiddler-dictionary", "group": "Developer" }, "$:/language/Docs/Types/image/gif": { "title": "$:/language/Docs/Types/image/gif", "description": "GIF image", "name": "image/gif", "group": "Image" }, "$:/language/Docs/Types/image/jpeg": { "title": "$:/language/Docs/Types/image/jpeg", "description": "JPEG image", "name": "image/jpeg", "group": "Image" }, "$:/language/Docs/Types/image/png": { "title": "$:/language/Docs/Types/image/png", "description": "PNG image", "name": "image/png", "group": "Image" }, "$:/language/Docs/Types/image/svg+xml": { "title": "$:/language/Docs/Types/image/svg+xml", "description": "Structured Vector Graphics image", "name": "image/svg+xml", "group": "Image" }, "$:/language/Docs/Types/image/x-icon": { "title": "$:/language/Docs/Types/image/x-icon", "description": "ICO format icon file", "name": "image/x-icon", "group": "Image" }, "$:/language/Docs/Types/text/css": { "title": "$:/language/Docs/Types/text/css", "description": "Static stylesheet", "name": "text/css", "group": "Developer" }, "$:/language/Docs/Types/text/html": { "title": "$:/language/Docs/Types/text/html", "description": "HTML markup", "name": "text/html", "group": "Text" }, "$:/language/Docs/Types/text/plain": { "title": "$:/language/Docs/Types/text/plain", "description": "Plain text", "name": "text/plain", "group": "Text" }, "$:/language/Docs/Types/text/vnd.tiddlywiki": { "title": "$:/language/Docs/Types/text/vnd.tiddlywiki", "description": "TiddlyWiki 5", "name": "text/vnd.tiddlywiki", "group": "Text" }, "$:/language/Docs/Types/text/x-tiddlywiki": { "title": "$:/language/Docs/Types/text/x-tiddlywiki", "description": "TiddlyWiki Classic", "name": "text/x-tiddlywiki", "group": "Text" }, "$:/languages/en-GB/icon": { "title": "$:/languages/en-GB/icon", "type": "image/svg+xml", "text": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 60 30\" width=\"1200\" height=\"600\">\n<clipPath id=\"t\">\n\t<path d=\"M30,15 h30 v15 z v15 h-30 z h-30 v-15 z v-15 h30 z\"/>\n</clipPath>\n<path d=\"M0,0 v30 h60 v-30 z\" fill=\"#00247d\"/>\n<path d=\"M0,0 L60,30 M60,0 L0,30\" stroke=\"#fff\" stroke-width=\"6\"/>\n<path d=\"M0,0 L60,30 M60,0 L0,30\" clip-path=\"url(#t)\" stroke=\"#cf142b\" stroke-width=\"4\"/>\n<path d=\"M30,0 v30 M0,15 h60\" stroke=\"#fff\" stroke-width=\"10\"/>\n<path d=\"M30,0 v30 M0,15 h60\" stroke=\"#cf142b\" stroke-width=\"6\"/>\n</svg>\n" }, "$:/languages/en-GB": { "title": "$:/languages/en-GB", "name": "en-GB", "description": "English (British)", "author": "JeremyRuston", "core-version": ">=5.0.0\"", "text": "Stub pseudo-plugin for the default language" }, "$:/core/modules/commander.js": { "text": "/*\\\ntitle: $:/core/modules/commander.js\ntype: application/javascript\nmodule-type: global\n\nThe $tw.Commander class is a command interpreter\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nParse a sequence of commands\n\tcommandTokens: an array of command string tokens\n\twiki: reference to the wiki store object\n\tstreams: {output:, error:}, each of which has a write(string) method\n\tcallback: a callback invoked as callback(err) where err is null if there was no error\n*/\nvar Commander = function(commandTokens,callback,wiki,streams) {\n\tvar path = require(\"path\");\n\tthis.commandTokens = commandTokens;\n\tthis.nextToken = 0;\n\tthis.callback = callback;\n\tthis.wiki = wiki;\n\tthis.streams = streams;\n\tthis.outputPath = path.resolve($tw.boot.wikiPath,$tw.config.wikiOutputSubDir);\n};\n\n/*\nAdd a string of tokens to the command queue\n*/\nCommander.prototype.addCommandTokens = function(commandTokens) {\n\tvar params = commandTokens.slice(0);\n\tparams.unshift(0);\n\tparams.unshift(this.nextToken);\n\tArray.prototype.splice.apply(this.commandTokens,params);\n};\n\n/*\nExecute the sequence of commands and invoke a callback on completion\n*/\nCommander.prototype.execute = function() {\n\tthis.executeNextCommand();\n};\n\n/*\nExecute the next command in the sequence\n*/\nCommander.prototype.executeNextCommand = function() {\n\tvar self = this;\n\t// Invoke the callback if there are no more commands\n\tif(this.nextToken >= this.commandTokens.length) {\n\t\tthis.callback(null);\n\t} else {\n\t\t// Get and check the command token\n\t\tvar commandName = this.commandTokens[this.nextToken++];\n\t\tif(commandName.substr(0,2) !== \"--\") {\n\t\t\tthis.callback(\"Missing command: \" + commandName);\n\t\t} else {\n\t\t\tcommandName = commandName.substr(2); // Trim off the --\n\t\t\t// Accumulate the parameters to the command\n\t\t\tvar params = [];\n\t\t\twhile(this.nextToken < this.commandTokens.length && \n\t\t\t\tthis.commandTokens[this.nextToken].substr(0,2) !== \"--\") {\n\t\t\t\tparams.push(this.commandTokens[this.nextToken++]);\n\t\t\t}\n\t\t\t// Get the command info\n\t\t\tvar command = $tw.commands[commandName],\n\t\t\t\tc,err;\n\t\t\tif(!command) {\n\t\t\t\tthis.callback(\"Unknown command: \" + commandName);\n\t\t\t} else {\n\t\t\t\tif(this.verbose) {\n\t\t\t\t\tthis.streams.output.write(\"Executing command: \" + commandName + \" \" + params.join(\" \") + \"\\n\");\n\t\t\t\t}\n\t\t\t\tif(command.info.synchronous) {\n\t\t\t\t\t// Synchronous command\n\t\t\t\t\tc = new command.Command(params,this);\n\t\t\t\t\terr = c.execute();\n\t\t\t\t\tif(err) {\n\t\t\t\t\t\tthis.callback(err);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.executeNextCommand();\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\t// Asynchronous command\n\t\t\t\t\tc = new command.Command(params,this,function(err) {\n\t\t\t\t\t\tif(err) {\n\t\t\t\t\t\t\tself.callback(err);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tself.executeNextCommand();\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t\terr = c.execute();\n\t\t\t\t\tif(err) {\n\t\t\t\t\t\tthis.callback(err);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n};\n\nCommander.initCommands = function(moduleType) {\n\tmoduleType = moduleType || \"command\";\n\t$tw.commands = {};\n\t$tw.modules.forEachModuleOfType(moduleType,function(title,module) {\n\t\tvar c = $tw.commands[module.info.name] = {};\n\t\t// Add the methods defined by the module\n\t\tfor(var f in module) {\n\t\t\tif($tw.utils.hop(module,f)) {\n\t\t\t\tc[f] = module[f];\n\t\t\t}\n\t\t}\n\t});\n};\n\nexports.Commander = Commander;\n\n})();\n", "title": "$:/core/modules/commander.js", "type": "application/javascript", "module-type": "global" }, "$:/core/modules/commands/build.js": { "text": "/*\\\ntitle: $:/core/modules/commands/build.js\ntype: application/javascript\nmodule-type: command\n\nCommand to build a build target\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"build\",\n\tsynchronous: true\n};\n\nvar Command = function(params,commander) {\n\tthis.params = params;\n\tthis.commander = commander;\n};\n\nCommand.prototype.execute = function() {\n\t// Get the build targets defined in the wiki\n\tvar buildTargets = $tw.boot.wikiInfo.build;\n\tif(!buildTargets) {\n\t\treturn \"No build targets defined\";\n\t}\n\t// Loop through each of the specified targets\n\tvar targets;\n\tif(this.params.length > 0) {\n\t\ttargets = this.params;\n\t} else {\n\t\ttargets = Object.keys(buildTargets);\n\t}\n\tfor(var targetIndex=0; targetIndex<targets.length; targetIndex++) {\n\t\tvar target = targets[targetIndex],\n\t\t\tcommands = buildTargets[target];\n\t\tif(!commands) {\n\t\t\treturn \"Build target '\" + target + \"' not found\";\n\t\t}\n\t\t// Add the commands to the queue\n\t\tthis.commander.addCommandTokens(commands);\n\t}\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n", "title": "$:/core/modules/commands/build.js", "type": "application/javascript", "module-type": "command" }, "$:/core/modules/commands/clearpassword.js": { "text": "/*\\\ntitle: $:/core/modules/commands/clearpassword.js\ntype: application/javascript\nmodule-type: command\n\nClear password for crypto operations\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"clearpassword\",\n\tsynchronous: true\n};\n\nvar Command = function(params,commander,callback) {\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n};\n\nCommand.prototype.execute = function() {\n\t$tw.crypto.setPassword(null);\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n", "title": "$:/core/modules/commands/clearpassword.js", "type": "application/javascript", "module-type": "command" }, "$:/core/modules/commands/editions.js": { "text": "/*\\\ntitle: $:/core/modules/commands/editions.js\ntype: application/javascript\nmodule-type: command\n\nCommand to list the available editions\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"editions\",\n\tsynchronous: true\n};\n\nvar Command = function(params,commander) {\n\tthis.params = params;\n\tthis.commander = commander;\n};\n\nCommand.prototype.execute = function() {\n\tvar self = this;\n\t// Output the list\n\tthis.commander.streams.output.write(\"Available editions:\\n\\n\");\n\tvar editionInfo = $tw.utils.getEditionInfo();\n\t$tw.utils.each(editionInfo,function(info,name) {\n\t\tself.commander.streams.output.write(\" \" + name + \": \" + info.description + \"\\n\");\n\t});\n\tthis.commander.streams.output.write(\"\\n\");\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n", "title": "$:/core/modules/commands/editions.js", "type": "application/javascript", "module-type": "command" }, "$:/core/modules/commands/help.js": { "text": "/*\\\ntitle: $:/core/modules/commands/help.js\ntype: application/javascript\nmodule-type: command\n\nHelp command\n\n\\*/\n(function(){\n\n/*jshint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"help\",\n\tsynchronous: true\n};\n\nvar Command = function(params,commander) {\n\tthis.params = params;\n\tthis.commander = commander;\n};\n\nCommand.prototype.execute = function() {\n\tvar subhelp = this.params[0] || \"default\",\n\t\thelpBase = \"$:/language/Help/\",\n\t\ttext;\n\tif(!this.commander.wiki.getTiddler(helpBase + subhelp)) {\n\t\tsubhelp = \"notfound\";\n\t}\n\t// Wikify the help as formatted text (ie block elements generate newlines)\n\ttext = this.commander.wiki.renderTiddler(\"text/plain-formatted\",helpBase + subhelp);\n\t// Remove any leading linebreaks\n\ttext = text.replace(/^(\\r?\\n)*/g,\"\");\n\tthis.commander.streams.output.write(text);\n};\n\nexports.Command = Command;\n\n})();\n", "title": "$:/core/modules/commands/help.js", "type": "application/javascript", "module-type": "command" }, "$:/core/modules/commands/init.js": { "text": "/*\\\ntitle: $:/core/modules/commands/init.js\ntype: application/javascript\nmodule-type: command\n\nCommand to initialise an empty wiki folder\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"init\",\n\tsynchronous: true\n};\n\nvar Command = function(params,commander) {\n\tthis.params = params;\n\tthis.commander = commander;\n};\n\nCommand.prototype.execute = function() {\n\tvar fs = require(\"fs\"),\n\t\tpath = require(\"path\");\n\t// Check that we don't already have a valid wiki folder\n\tif($tw.boot.wikiTiddlersPath || ($tw.utils.isDirectory($tw.boot.wikiPath) && !$tw.utils.isDirectoryEmpty($tw.boot.wikiPath))) {\n\t\treturn \"Wiki folder is not empty\";\n\t}\n\t// Loop through each of the specified editions\n\tvar editions = this.params.length > 0 ? this.params : [\"empty\"];\n\tfor(var editionIndex=0; editionIndex<editions.length; editionIndex++) {\n\t\tvar editionName = editions[editionIndex];\n\t\t// Check the edition exists\n\t\tvar editionPath = $tw.findLibraryItem(editionName,$tw.getLibraryItemSearchPaths($tw.config.editionsPath,$tw.config.editionsEnvVar));\n\t\tif(!$tw.utils.isDirectory(editionPath)) {\n\t\t\treturn \"Edition '\" + editionName + \"' not found\";\n\t\t}\n\t\t// Copy the edition content\n\t\tvar err = $tw.utils.copyDirectory(editionPath,$tw.boot.wikiPath);\n\t\tif(!err) {\n\t\t\tthis.commander.streams.output.write(\"Copied edition '\" + editionName + \"' to \" + $tw.boot.wikiPath + \"\\n\");\n\t\t} else {\n\t\t\treturn err;\n\t\t}\n\t}\n\t// Tweak the tiddlywiki.info to remove any included wikis\n\tvar packagePath = $tw.boot.wikiPath + \"/tiddlywiki.info\",\n\t\tpackageJson = JSON.parse(fs.readFileSync(packagePath));\n\tdelete packageJson.includeWikis;\n\tfs.writeFileSync(packagePath,JSON.stringify(packageJson,null,$tw.config.preferences.jsonSpaces));\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n", "title": "$:/core/modules/commands/init.js", "type": "application/javascript", "module-type": "command" }, "$:/core/modules/commands/load.js": { "text": "/*\\\ntitle: $:/core/modules/commands/load.js\ntype: application/javascript\nmodule-type: command\n\nCommand to load tiddlers from a file\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"load\",\n\tsynchronous: false\n};\n\nvar Command = function(params,commander,callback) {\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n};\n\nCommand.prototype.execute = function() {\n\tvar self = this,\n\t\tfs = require(\"fs\"),\n\t\tpath = require(\"path\");\n\tif(this.params.length < 1) {\n\t\treturn \"Missing filename\";\n\t}\n\tvar ext = path.extname(self.params[0]);\n\tfs.readFile(this.params[0],$tw.utils.getTypeEncoding(ext),function(err,data) {\n\t\tif (err) {\n\t\t\tself.callback(err);\n\t\t} else {\n\t\t\tvar fields = {title: self.params[0]},\n\t\t\t\ttype = path.extname(self.params[0]);\n\t\t\tvar tiddlers = self.commander.wiki.deserializeTiddlers(type,data,fields);\n\t\t\tif(!tiddlers) {\n\t\t\t\tself.callback(\"No tiddlers found in file \\\"\" + self.params[0] + \"\\\"\");\n\t\t\t} else {\n\t\t\t\tfor(var t=0; t<tiddlers.length; t++) {\n\t\t\t\t\tself.commander.wiki.importTiddler(new $tw.Tiddler(tiddlers[t]));\n\t\t\t\t}\n\t\t\t\tself.callback(null);\t\n\t\t\t}\n\t\t}\n\t});\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n", "title": "$:/core/modules/commands/load.js", "type": "application/javascript", "module-type": "command" }, "$:/core/modules/commands/makelibrary.js": { "text": "/*\\\ntitle: $:/core/modules/commands/makelibrary.js\ntype: application/javascript\nmodule-type: command\n\nCommand to pack all of the plugins in the library into a plugin tiddler of type \"library\"\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"makelibrary\",\n\tsynchronous: true\n};\n\nvar UPGRADE_LIBRARY_TITLE = \"$:/UpgradeLibrary\";\n\nvar Command = function(params,commander,callback) {\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n};\n\nCommand.prototype.execute = function() {\n\tvar wiki = this.commander.wiki,\n\t\tfs = require(\"fs\"),\n\t\tpath = require(\"path\"),\n\t\tupgradeLibraryTitle = this.params[0] || UPGRADE_LIBRARY_TITLE,\n\t\ttiddlers = {};\n\t// Collect up the library plugins\n\tvar collectPlugins = function(folder) {\n\t\t\tvar pluginFolders = fs.readdirSync(folder);\n\t\t\tfor(var p=0; p<pluginFolders.length; p++) {\n\t\t\t\tif(!$tw.boot.excludeRegExp.test(pluginFolders[p])) {\n\t\t\t\t\tpluginFields = $tw.loadPluginFolder(path.resolve(folder,\"./\" + pluginFolders[p]));\n\t\t\t\t\tif(pluginFields && pluginFields.title) {\n\t\t\t\t\t\ttiddlers[pluginFields.title] = pluginFields;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\tcollectPublisherPlugins = function(folder) {\n\t\t\tvar publisherFolders = fs.readdirSync(folder);\n\t\t\tfor(var t=0; t<publisherFolders.length; t++) {\n\t\t\t\tif(!$tw.boot.excludeRegExp.test(publisherFolders[t])) {\n\t\t\t\t\tcollectPlugins(path.resolve(folder,\"./\" + publisherFolders[t]));\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\tcollectPublisherPlugins(path.resolve($tw.boot.corePath,$tw.config.pluginsPath));\n\tcollectPublisherPlugins(path.resolve($tw.boot.corePath,$tw.config.themesPath));\n\tcollectPlugins(path.resolve($tw.boot.corePath,$tw.config.languagesPath));\n\t// Save the upgrade library tiddler\n\tvar pluginFields = {\n\t\ttitle: upgradeLibraryTitle,\n\t\ttype: \"application/json\",\n\t\t\"plugin-type\": \"library\",\n\t\t\"text\": JSON.stringify({tiddlers: tiddlers},null,$tw.config.preferences.jsonSpaces)\n\t};\n\twiki.addTiddler(new $tw.Tiddler(pluginFields));\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n", "title": "$:/core/modules/commands/makelibrary.js", "type": "application/javascript", "module-type": "command" }, "$:/core/modules/commands/output.js": { "text": "/*\\\ntitle: $:/core/modules/commands/output.js\ntype: application/javascript\nmodule-type: command\n\nCommand to set the default output location (defaults to current working directory)\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"output\",\n\tsynchronous: true\n};\n\nvar Command = function(params,commander,callback) {\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n};\n\nCommand.prototype.execute = function() {\n\tvar fs = require(\"fs\"),\n\t\tpath = require(\"path\");\n\tif(this.params.length < 1) {\n\t\treturn \"Missing output path\";\n\t}\n\tthis.commander.outputPath = path.resolve(process.cwd(),this.params[0]);\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n", "title": "$:/core/modules/commands/output.js", "type": "application/javascript", "module-type": "command" }, "$:/core/modules/commands/password.js": { "text": "/*\\\ntitle: $:/core/modules/commands/password.js\ntype: application/javascript\nmodule-type: command\n\nSave password for crypto operations\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"password\",\n\tsynchronous: true\n};\n\nvar Command = function(params,commander,callback) {\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n};\n\nCommand.prototype.execute = function() {\n\tif(this.params.length < 1) {\n\t\treturn \"Missing password\";\n\t}\n\t$tw.crypto.setPassword(this.params[0]);\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n", "title": "$:/core/modules/commands/password.js", "type": "application/javascript", "module-type": "command" }, "$:/core/modules/commands/rendertiddler.js": { "text": "/*\\\ntitle: $:/core/modules/commands/rendertiddler.js\ntype: application/javascript\nmodule-type: command\n\nCommand to render a tiddler and save it to a file\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"rendertiddler\",\n\tsynchronous: false\n};\n\nvar Command = function(params,commander,callback) {\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n};\n\nCommand.prototype.execute = function() {\n\tif(this.params.length < 2) {\n\t\treturn \"Missing filename\";\n\t}\n\tvar self = this,\n\t\tfs = require(\"fs\"),\n\t\tpath = require(\"path\"),\n\t\ttitle = this.params[0],\n\t\tfilename = path.resolve(this.commander.outputPath,this.params[1]),\n\t\ttype = this.params[2] || \"text/html\",\n\t\ttemplate = this.params[3],\n\t\tvariables = {};\n\t$tw.utils.createFileDirectories(filename);\n\tif(template) {\n\t\tvariables.currentTiddler = title;\n\t\ttitle = template;\n\t}\n\tfs.writeFile(filename,this.commander.wiki.renderTiddler(type,title,{variables: variables}),\"utf8\",function(err) {\n\t\tself.callback(err);\n\t});\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n", "title": "$:/core/modules/commands/rendertiddler.js", "type": "application/javascript", "module-type": "command" }, "$:/core/modules/commands/rendertiddlers.js": { "text": "/*\\\ntitle: $:/core/modules/commands/rendertiddlers.js\ntype: application/javascript\nmodule-type: command\n\nCommand to render several tiddlers to a folder of files\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar widget = require(\"$:/core/modules/widgets/widget.js\");\n\nexports.info = {\n\tname: \"rendertiddlers\",\n\tsynchronous: true\n};\n\nvar Command = function(params,commander,callback) {\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n};\n\nCommand.prototype.execute = function() {\n\tif(this.params.length < 2) {\n\t\treturn \"Missing filename\";\n\t}\n\tvar self = this,\n\t\tfs = require(\"fs\"),\n\t\tpath = require(\"path\"),\n\t\twiki = this.commander.wiki,\n\t\tfilter = this.params[0],\n\t\ttemplate = this.params[1],\n\t\toutputPath = this.commander.outputPath,\n\t\tpathname = path.resolve(outputPath,this.params[2]),\t\t\n\t\ttype = this.params[3] || \"text/html\",\n\t\textension = this.params[4] || \".html\",\n\t\tdeleteDirectory = (this.params[5] || \"\").toLowerCase() !== \"noclean\",\n\t\ttiddlers = wiki.filterTiddlers(filter);\n\tif(deleteDirectory) {\n\t\t$tw.utils.deleteDirectory(pathname);\n\t}\n\t$tw.utils.each(tiddlers,function(title) {\n\t\tvar parser = wiki.parseTiddler(template),\n\t\t\twidgetNode = wiki.makeWidget(parser,{variables: {currentTiddler: title}}),\n\t\t\tcontainer = $tw.fakeDocument.createElement(\"div\");\n\t\twidgetNode.render(container,null);\n\t\tvar text = type === \"text/html\" ? container.innerHTML : container.textContent,\n\t\t\texportPath = null;\n\t\tif($tw.utils.hop($tw.macros,\"tv-get-export-path\")) {\n\t\t\tvar macroPath = $tw.macros[\"tv-get-export-path\"].run.apply(self,[title]);\n\t\t\tif(macroPath) {\n\t\t\t\texportPath = path.resolve(outputPath,macroPath + extension);\n\t\t\t}\n\t\t}\n\t\tvar finalPath = exportPath || path.resolve(pathname,encodeURIComponent(title) + extension);\n\t\t$tw.utils.createFileDirectories(finalPath);\n\t\tfs.writeFileSync(finalPath,text,\"utf8\");\n\t});\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n", "title": "$:/core/modules/commands/rendertiddlers.js", "type": "application/javascript", "module-type": "command" }, "$:/core/modules/commands/savelibrarytiddlers.js": { "text": "/*\\\ntitle: $:/core/modules/commands/savelibrarytiddlers.js\ntype: application/javascript\nmodule-type: command\n\nCommand to save the subtiddlers of a bundle tiddler as a series of JSON files\n\n--savelibrarytiddlers <tiddler> <pathname> <skinnylisting>\n\nThe tiddler identifies the bundle tiddler that contains the subtiddlers.\n\nThe pathname specifies the pathname to the folder in which the JSON files should be saved. The filename is the URL encoded title of the subtiddler.\n\nThe skinnylisting specifies the title of the tiddler to which a JSON catalogue of the subtiddlers will be saved. The JSON file contains the same data as the bundle tiddler but with the `text` field removed.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"savelibrarytiddlers\",\n\tsynchronous: true\n};\n\nvar Command = function(params,commander,callback) {\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n};\n\nCommand.prototype.execute = function() {\n\tif(this.params.length < 2) {\n\t\treturn \"Missing filename\";\n\t}\n\tvar self = this,\n\t\tfs = require(\"fs\"),\n\t\tpath = require(\"path\"),\n\t\tcontainerTitle = this.params[0],\n\t\tfilter = this.params[1],\n\t\tbasepath = this.params[2],\n\t\tskinnyListTitle = this.params[3];\n\t// Get the container tiddler as data\n\tvar containerData = self.commander.wiki.getTiddlerDataCached(containerTitle,undefined);\n\tif(!containerData) {\n\t\treturn \"'\" + containerTitle + \"' is not a tiddler bundle\";\n\t}\n\t// Filter the list of plugins\n\tvar pluginList = [];\n\t$tw.utils.each(containerData.tiddlers,function(tiddler,title) {\n\t\tpluginList.push(title);\n\t});\n\tvar filteredPluginList;\n\tif(filter) {\n\t\tfilteredPluginList = self.commander.wiki.filterTiddlers(filter,null,self.commander.wiki.makeTiddlerIterator(pluginList));\n\t} else {\n\t\tfilteredPluginList = pluginList;\n\t}\n\t// Iterate through the plugins\n\tvar skinnyList = [];\n\t$tw.utils.each(filteredPluginList,function(title) {\n\t\tvar tiddler = containerData.tiddlers[title];\n\t\t// Save each JSON file and collect the skinny data\n\t\tvar pathname = path.resolve(self.commander.outputPath,basepath + encodeURIComponent(title) + \".json\");\n\t\t$tw.utils.createFileDirectories(pathname);\n\t\tfs.writeFileSync(pathname,JSON.stringify(tiddler,null,$tw.config.preferences.jsonSpaces),\"utf8\");\n\t\t// Collect the skinny list data\n\t\tvar pluginTiddlers = JSON.parse(tiddler.text),\n\t\t\treadmeContent = (pluginTiddlers.tiddlers[title + \"/readme\"] || {}).text,\n\t\t\ticonTiddler = pluginTiddlers.tiddlers[title + \"/icon\"] || {},\n\t\t\ticonType = iconTiddler.type,\n\t\t\ticonText = iconTiddler.text,\n\t\t\ticonContent;\n\t\tif(iconType && iconText) {\n\t\t\ticonContent = $tw.utils.makeDataUri(iconText,iconType);\n\t\t}\n\t\tskinnyList.push($tw.utils.extend({},tiddler,{text: undefined, readme: readmeContent, icon: iconContent}));\n\t});\n\t// Save the catalogue tiddler\n\tif(skinnyListTitle) {\n\t\tself.commander.wiki.setTiddlerData(skinnyListTitle,skinnyList);\n\t}\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n", "title": "$:/core/modules/commands/savelibrarytiddlers.js", "type": "application/javascript", "module-type": "command" }, "$:/core/modules/commands/savetiddler.js": { "text": "/*\\\ntitle: $:/core/modules/commands/savetiddler.js\ntype: application/javascript\nmodule-type: command\n\nCommand to save the content of a tiddler to a file\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"savetiddler\",\n\tsynchronous: false\n};\n\nvar Command = function(params,commander,callback) {\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n};\n\nCommand.prototype.execute = function() {\n\tif(this.params.length < 2) {\n\t\treturn \"Missing filename\";\n\t}\n\tvar self = this,\n\t\tfs = require(\"fs\"),\n\t\tpath = require(\"path\"),\n\t\ttitle = this.params[0],\n\t\tfilename = path.resolve(this.commander.outputPath,this.params[1]),\n\t\ttiddler = this.commander.wiki.getTiddler(title);\n\tif(tiddler) {\n\t\tvar type = tiddler.fields.type || \"text/vnd.tiddlywiki\",\n\t\t\tcontentTypeInfo = $tw.config.contentTypeInfo[type] || {encoding: \"utf8\"};\n\t\t$tw.utils.createFileDirectories(filename);\n\t\tfs.writeFile(filename,tiddler.fields.text,contentTypeInfo.encoding,function(err) {\n\t\t\tself.callback(err);\n\t\t});\n\t} else {\n\t\treturn \"Missing tiddler: \" + title;\n\t}\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n", "title": "$:/core/modules/commands/savetiddler.js", "type": "application/javascript", "module-type": "command" }, "$:/core/modules/commands/savetiddlers.js": { "text": "/*\\\ntitle: $:/core/modules/commands/savetiddlers.js\ntype: application/javascript\nmodule-type: command\n\nCommand to save several tiddlers to a folder of files\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar widget = require(\"$:/core/modules/widgets/widget.js\");\n\nexports.info = {\n\tname: \"savetiddlers\",\n\tsynchronous: true\n};\n\nvar Command = function(params,commander,callback) {\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n};\n\nCommand.prototype.execute = function() {\n\tif(this.params.length < 1) {\n\t\treturn \"Missing filename\";\n\t}\n\tvar self = this,\n\t\tfs = require(\"fs\"),\n\t\tpath = require(\"path\"),\n\t\twiki = this.commander.wiki,\n\t\tfilter = this.params[0],\n\t\tpathname = path.resolve(this.commander.outputPath,this.params[1]),\n\t\tdeleteDirectory = (this.params[2] || \"\").toLowerCase() !== \"noclean\",\n\t\ttiddlers = wiki.filterTiddlers(filter);\n\tif(deleteDirectory) {\n\t\t$tw.utils.deleteDirectory(pathname);\n\t}\n\t$tw.utils.createDirectory(pathname);\n\t$tw.utils.each(tiddlers,function(title) {\n\t\tvar tiddler = self.commander.wiki.getTiddler(title),\n\t\t\ttype = tiddler.fields.type || \"text/vnd.tiddlywiki\",\n\t\t\tcontentTypeInfo = $tw.config.contentTypeInfo[type] || {encoding: \"utf8\"},\n\t\t\tfilename = path.resolve(pathname,encodeURIComponent(title));\n\t\tfs.writeFileSync(filename,tiddler.fields.text,contentTypeInfo.encoding);\n\t});\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n", "title": "$:/core/modules/commands/savetiddlers.js", "type": "application/javascript", "module-type": "command" }, "$:/core/modules/commands/server.js": { "text": "/*\\\ntitle: $:/core/modules/commands/server.js\ntype: application/javascript\nmodule-type: command\n\nServe tiddlers over http\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nif($tw.node) {\n\tvar util = require(\"util\"),\n\t\tfs = require(\"fs\"),\n\t\turl = require(\"url\"),\n\t\tpath = require(\"path\"),\n\t\thttp = require(\"http\");\n}\n\nexports.info = {\n\tname: \"server\",\n\tsynchronous: true\n};\n\n/*\nA simple HTTP server with regexp-based routes\n*/\nfunction SimpleServer(options) {\n\tthis.routes = options.routes || [];\n\tthis.wiki = options.wiki;\n\tthis.variables = options.variables || {};\n}\n\nSimpleServer.prototype.set = function(obj) {\n\tvar self = this;\n\t$tw.utils.each(obj,function(value,name) {\n\t\tself.variables[name] = value;\n\t});\n};\n\nSimpleServer.prototype.get = function(name) {\n\treturn this.variables[name];\n};\n\nSimpleServer.prototype.addRoute = function(route) {\n\tthis.routes.push(route);\n};\n\nSimpleServer.prototype.findMatchingRoute = function(request,state) {\n\tvar pathprefix = this.get(\"pathprefix\") || \"\";\n\tfor(var t=0; t<this.routes.length; t++) {\n\t\tvar potentialRoute = this.routes[t],\n\t\t\tpathRegExp = potentialRoute.path,\n\t\t\tpathname = state.urlInfo.pathname,\n\t\t\tmatch;\n\t\tif(pathprefix) {\n\t\t\tif(pathname.substr(0,pathprefix.length) === pathprefix) {\n\t\t\t\tpathname = pathname.substr(pathprefix.length);\n\t\t\t\tmatch = potentialRoute.path.exec(pathname);\n\t\t\t} else {\n\t\t\t\tmatch = false;\n\t\t\t}\n\t\t} else {\n\t\t\tmatch = potentialRoute.path.exec(pathname);\n\t\t}\n\t\tif(match && request.method === potentialRoute.method) {\n\t\t\tstate.params = [];\n\t\t\tfor(var p=1; p<match.length; p++) {\n\t\t\t\tstate.params.push(match[p]);\n\t\t\t}\n\t\t\treturn potentialRoute;\n\t\t}\n\t}\n\treturn null;\n};\n\nSimpleServer.prototype.checkCredentials = function(request,incomingUsername,incomingPassword) {\n\tvar header = request.headers.authorization || \"\",\n\t\ttoken = header.split(/\\s+/).pop() || \"\",\n\t\tauth = $tw.utils.base64Decode(token),\n\t\tparts = auth.split(/:/),\n\t\tusername = parts[0],\n\t\tpassword = parts[1];\n\tif(incomingUsername === username && incomingPassword === password) {\n\t\treturn \"ALLOWED\";\n\t} else {\n\t\treturn \"DENIED\";\n\t}\n};\n\nSimpleServer.prototype.listen = function(port,host) {\n\tvar self = this;\n\thttp.createServer(function(request,response) {\n\t\t// Compose the state object\n\t\tvar state = {};\n\t\tstate.wiki = self.wiki;\n\t\tstate.server = self;\n\t\tstate.urlInfo = url.parse(request.url);\n\t\t// Find the route that matches this path\n\t\tvar route = self.findMatchingRoute(request,state);\n\t\t// Check for the username and password if we've got one\n\t\tvar username = self.get(\"username\"),\n\t\t\tpassword = self.get(\"password\");\n\t\tif(username && password) {\n\t\t\t// Check they match\n\t\t\tif(self.checkCredentials(request,username,password) !== \"ALLOWED\") {\n\t\t\t\tvar servername = state.wiki.getTiddlerText(\"$:/SiteTitle\") || \"TiddlyWiki5\";\n\t\t\t\tresponse.writeHead(401,\"Authentication required\",{\n\t\t\t\t\t\"WWW-Authenticate\": 'Basic realm=\"Please provide your username and password to login to ' + servername + '\"'\n\t\t\t\t});\n\t\t\t\tresponse.end();\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t\t// Return a 404 if we didn't find a route\n\t\tif(!route) {\n\t\t\tresponse.writeHead(404);\n\t\t\tresponse.end();\n\t\t\treturn;\n\t\t}\n\t\t// Set the encoding for the incoming request\n\t\t// TODO: Presumably this would need tweaking if we supported PUTting binary tiddlers\n\t\trequest.setEncoding(\"utf8\");\n\t\t// Dispatch the appropriate method\n\t\tswitch(request.method) {\n\t\t\tcase \"GET\": // Intentional fall-through\n\t\t\tcase \"DELETE\":\n\t\t\t\troute.handler(request,response,state);\n\t\t\t\tbreak;\n\t\t\tcase \"PUT\":\n\t\t\t\tvar data = \"\";\n\t\t\t\trequest.on(\"data\",function(chunk) {\n\t\t\t\t\tdata += chunk.toString();\n\t\t\t\t});\n\t\t\t\trequest.on(\"end\",function() {\n\t\t\t\t\tstate.data = data;\n\t\t\t\t\troute.handler(request,response,state);\n\t\t\t\t});\n\t\t\t\tbreak;\n\t\t}\n\t}).listen(port,host);\n};\n\nvar Command = function(params,commander,callback) {\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n\t// Set up server\n\tthis.server = new SimpleServer({\n\t\twiki: this.commander.wiki\n\t});\n\t// Add route handlers\n\tthis.server.addRoute({\n\t\tmethod: \"PUT\",\n\t\tpath: /^\\/recipes\\/default\\/tiddlers\\/(.+)$/,\n\t\thandler: function(request,response,state) {\n\t\t\tvar title = decodeURIComponent(state.params[0]),\n\t\t\t\tfields = JSON.parse(state.data);\n\t\t\t// Pull up any subfields in the `fields` object\n\t\t\tif(fields.fields) {\n\t\t\t\t$tw.utils.each(fields.fields,function(field,name) {\n\t\t\t\t\tfields[name] = field;\n\t\t\t\t});\n\t\t\t\tdelete fields.fields;\n\t\t\t}\n\t\t\t// Remove any revision field\n\t\t\tif(fields.revision) {\n\t\t\t\tdelete fields.revision;\n\t\t\t}\n\t\t\tstate.wiki.addTiddler(new $tw.Tiddler(state.wiki.getCreationFields(),fields,{title: title},state.wiki.getModificationFields()));\n\t\t\tvar changeCount = state.wiki.getChangeCount(title).toString();\n\t\t\tresponse.writeHead(204, \"OK\",{\n\t\t\t\tEtag: \"\\\"default/\" + encodeURIComponent(title) + \"/\" + changeCount + \":\\\"\",\n\t\t\t\t\"Content-Type\": \"text/plain\"\n\t\t\t});\n\t\t\tresponse.end();\n\t\t}\n\t});\n\tthis.server.addRoute({\n\t\tmethod: \"DELETE\",\n\t\tpath: /^\\/bags\\/default\\/tiddlers\\/(.+)$/,\n\t\thandler: function(request,response,state) {\n\t\t\tvar title = decodeURIComponent(state.params[0]);\n\t\t\tstate.wiki.deleteTiddler(title);\n\t\t\tresponse.writeHead(204, \"OK\", {\n\t\t\t\t\"Content-Type\": \"text/plain\"\n\t\t\t});\n\t\t\tresponse.end();\n\t\t}\n\t});\n\tthis.server.addRoute({\n\t\tmethod: \"GET\",\n\t\tpath: /^\\/$/,\n\t\thandler: function(request,response,state) {\n\t\t\tresponse.writeHead(200, {\"Content-Type\": state.server.get(\"serveType\")});\n\t\t\tvar text = state.wiki.renderTiddler(state.server.get(\"renderType\"),state.server.get(\"rootTiddler\"));\n\t\t\tresponse.end(text,\"utf8\");\n\t\t}\n\t});\n\tthis.server.addRoute({\n\t\tmethod: \"GET\",\n\t\tpath: /^\\/status$/,\n\t\thandler: function(request,response,state) {\n\t\t\tresponse.writeHead(200, {\"Content-Type\": \"application/json\"});\n\t\t\tvar text = JSON.stringify({\n\t\t\t\tusername: state.server.get(\"username\"),\n\t\t\t\tspace: {\n\t\t\t\t\trecipe: \"default\"\n\t\t\t\t},\n\t\t\t\ttiddlywiki_version: $tw.version\n\t\t\t});\n\t\t\tresponse.end(text,\"utf8\");\n\t\t}\n\t});\n\tthis.server.addRoute({\n\t\tmethod: \"GET\",\n\t\tpath: /^\\/favicon.ico$/,\n\t\thandler: function(request,response,state) {\n\t\t\tresponse.writeHead(200, {\"Content-Type\": \"image/x-icon\"});\n\t\t\tvar buffer = state.wiki.getTiddlerText(\"$:/favicon.ico\",\"\");\n\t\t\tresponse.end(buffer,\"base64\");\n\t\t}\n\t});\n\tthis.server.addRoute({\n\t\tmethod: \"GET\",\n\t\tpath: /^\\/recipes\\/default\\/tiddlers.json$/,\n\t\thandler: function(request,response,state) {\n\t\t\tresponse.writeHead(200, {\"Content-Type\": \"application/json\"});\n\t\t\tvar tiddlers = [];\n\t\t\tstate.wiki.forEachTiddler({sortField: \"title\"},function(title,tiddler) {\n\t\t\t\tvar tiddlerFields = {};\n\t\t\t\t$tw.utils.each(tiddler.fields,function(field,name) {\n\t\t\t\t\tif(name !== \"text\") {\n\t\t\t\t\t\ttiddlerFields[name] = tiddler.getFieldString(name);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\ttiddlerFields.revision = state.wiki.getChangeCount(title);\n\t\t\t\ttiddlerFields.type = tiddlerFields.type || \"text/vnd.tiddlywiki\";\n\t\t\t\ttiddlers.push(tiddlerFields);\n\t\t\t});\n\t\t\tvar text = JSON.stringify(tiddlers);\n\t\t\tresponse.end(text,\"utf8\");\n\t\t}\n\t});\n\tthis.server.addRoute({\n\t\tmethod: \"GET\",\n\t\tpath: /^\\/recipes\\/default\\/tiddlers\\/(.+)$/,\n\t\thandler: function(request,response,state) {\n\t\t\tvar title = decodeURIComponent(state.params[0]),\n\t\t\t\ttiddler = state.wiki.getTiddler(title),\n\t\t\t\ttiddlerFields = {},\n\t\t\t\tknownFields = [\n\t\t\t\t\t\"bag\", \"created\", \"creator\", \"modified\", \"modifier\", \"permissions\", \"recipe\", \"revision\", \"tags\", \"text\", \"title\", \"type\", \"uri\"\n\t\t\t\t];\n\t\t\tif(tiddler) {\n\t\t\t\t$tw.utils.each(tiddler.fields,function(field,name) {\n\t\t\t\t\tvar value = tiddler.getFieldString(name);\n\t\t\t\t\tif(knownFields.indexOf(name) !== -1) {\n\t\t\t\t\t\ttiddlerFields[name] = value;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ttiddlerFields.fields = tiddlerFields.fields || {};\n\t\t\t\t\t\ttiddlerFields.fields[name] = value;\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\ttiddlerFields.revision = state.wiki.getChangeCount(title);\n\t\t\t\ttiddlerFields.type = tiddlerFields.type || \"text/vnd.tiddlywiki\";\n\t\t\t\tresponse.writeHead(200, {\"Content-Type\": \"application/json\"});\n\t\t\t\tresponse.end(JSON.stringify(tiddlerFields),\"utf8\");\n\t\t\t} else {\n\t\t\t\tresponse.writeHead(404);\n\t\t\t\tresponse.end();\n\t\t\t}\n\t\t}\n\t});\n};\n\nCommand.prototype.execute = function() {\n\tif(!$tw.boot.wikiTiddlersPath) {\n\t\t$tw.utils.warning(\"Warning: Wiki folder '\" + $tw.boot.wikiPath + \"' does not exist or is missing a tiddlywiki.info file\");\n\t}\n\tvar port = this.params[0] || \"8080\",\n\t\trootTiddler = this.params[1] || \"$:/core/save/all\",\n\t\trenderType = this.params[2] || \"text/plain\",\n\t\tserveType = this.params[3] || \"text/html\",\n\t\tusername = this.params[4],\n\t\tpassword = this.params[5],\n\t\thost = this.params[6] || \"127.0.0.1\",\n\t\tpathprefix = this.params[7];\n\tthis.server.set({\n\t\trootTiddler: rootTiddler,\n\t\trenderType: renderType,\n\t\tserveType: serveType,\n\t\tusername: username,\n\t\tpassword: password,\n\t\tpathprefix: pathprefix\n\t});\n\tthis.server.listen(port,host);\n\tconsole.log(\"Serving on \" + host + \":\" + port);\n\tconsole.log(\"(press ctrl-C to exit)\");\n\t// Warn if required plugins are missing\n\tif(!$tw.wiki.getTiddler(\"$:/plugins/tiddlywiki/tiddlyweb\") || !$tw.wiki.getTiddler(\"$:/plugins/tiddlywiki/filesystem\")) {\n\t\t$tw.utils.warning(\"Warning: Plugins required for client-server operation (\\\"tiddlywiki/filesystem\\\" and \\\"tiddlywiki/tiddlyweb\\\") are missing from tiddlywiki.info file\");\n\t}\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n", "title": "$:/core/modules/commands/server.js", "type": "application/javascript", "module-type": "command" }, "$:/core/modules/commands/setfield.js": { "text": "/*\\\ntitle: $:/core/modules/commands/setfield.js\ntype: application/javascript\nmodule-type: command\n\nCommand to modify selected tiddlers to set a field to the text of a template tiddler that has been wikified with the selected tiddler as the current tiddler.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar widget = require(\"$:/core/modules/widgets/widget.js\");\n\nexports.info = {\n\tname: \"setfield\",\n\tsynchronous: true\n};\n\nvar Command = function(params,commander,callback) {\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n};\n\nCommand.prototype.execute = function() {\n\tif(this.params.length < 4) {\n\t\treturn \"Missing parameters\";\n\t}\n\tvar self = this,\n\t\twiki = this.commander.wiki,\n\t\tfilter = this.params[0],\n\t\tfieldname = this.params[1] || \"text\",\n\t\ttemplatetitle = this.params[2],\n\t\trendertype = this.params[3] || \"text/plain\",\n\t\ttiddlers = wiki.filterTiddlers(filter);\n\t$tw.utils.each(tiddlers,function(title) {\n\t\tvar parser = wiki.parseTiddler(templatetitle),\n\t\t\tnewFields = {},\n\t\t\ttiddler = wiki.getTiddler(title);\n\t\tif(parser) {\n\t\t\tvar widgetNode = wiki.makeWidget(parser,{variables: {currentTiddler: title}});\n\t\t\tvar container = $tw.fakeDocument.createElement(\"div\");\n\t\t\twidgetNode.render(container,null);\n\t\t\tnewFields[fieldname] = rendertype === \"text/html\" ? container.innerHTML : container.textContent;\n\t\t} else {\n\t\t\tnewFields[fieldname] = undefined;\n\t\t}\n\t\twiki.addTiddler(new $tw.Tiddler(tiddler,newFields));\n\t});\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n", "title": "$:/core/modules/commands/setfield.js", "type": "application/javascript", "module-type": "command" }, "$:/core/modules/commands/unpackplugin.js": { "text": "/*\\\ntitle: $:/core/modules/commands/unpackplugin.js\ntype: application/javascript\nmodule-type: command\n\nCommand to extract the shadow tiddlers from within a plugin\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"unpackplugin\",\n\tsynchronous: true\n};\n\nvar Command = function(params,commander,callback) {\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n};\n\nCommand.prototype.execute = function() {\n\tif(this.params.length < 1) {\n\t\treturn \"Missing plugin name\";\n\t}\n\tvar self = this,\n\t\ttitle = this.params[0],\n\t\tpluginData = this.commander.wiki.getTiddlerDataCached(title);\n\tif(!pluginData) {\n\t\treturn \"Plugin '\" + title + \"' not found\";\n\t}\n\t$tw.utils.each(pluginData.tiddlers,function(tiddler) {\n\t\tself.commander.wiki.addTiddler(new $tw.Tiddler(tiddler));\n\t});\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n", "title": "$:/core/modules/commands/unpackplugin.js", "type": "application/javascript", "module-type": "command" }, "$:/core/modules/commands/verbose.js": { "text": "/*\\\ntitle: $:/core/modules/commands/verbose.js\ntype: application/javascript\nmodule-type: command\n\nVerbose command\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"verbose\",\n\tsynchronous: true\n};\n\nvar Command = function(params,commander) {\n\tthis.params = params;\n\tthis.commander = commander;\n};\n\nCommand.prototype.execute = function() {\n\tthis.commander.verbose = true;\n\t// Output the boot message log\n\tthis.commander.streams.output.write(\"Boot log:\\n \" + $tw.boot.logMessages.join(\"\\n \") + \"\\n\");\n\treturn null; // No error\n};\n\nexports.Command = Command;\n\n})();\n", "title": "$:/core/modules/commands/verbose.js", "type": "application/javascript", "module-type": "command" }, "$:/core/modules/commands/version.js": { "text": "/*\\\ntitle: $:/core/modules/commands/version.js\ntype: application/javascript\nmodule-type: command\n\nVersion command\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"version\",\n\tsynchronous: true\n};\n\nvar Command = function(params,commander) {\n\tthis.params = params;\n\tthis.commander = commander;\n};\n\nCommand.prototype.execute = function() {\n\tthis.commander.streams.output.write($tw.version + \"\\n\");\n\treturn null; // No error\n};\n\nexports.Command = Command;\n\n})();\n", "title": "$:/core/modules/commands/version.js", "type": "application/javascript", "module-type": "command" }, "$:/core/modules/config.js": { "text": "/*\\\ntitle: $:/core/modules/config.js\ntype: application/javascript\nmodule-type: config\n\nCore configuration constants\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.preferences = {};\n\nexports.preferences.notificationDuration = 3 * 1000;\nexports.preferences.jsonSpaces = 4;\n\nexports.textPrimitives = {\n\tupperLetter: \"[A-Z\\u00c0-\\u00d6\\u00d8-\\u00de\\u0150\\u0170]\",\n\tlowerLetter: \"[a-z\\u00df-\\u00f6\\u00f8-\\u00ff\\u0151\\u0171]\",\n\tanyLetter: \"[A-Za-z0-9\\u00c0-\\u00d6\\u00d8-\\u00de\\u00df-\\u00f6\\u00f8-\\u00ff\\u0150\\u0170\\u0151\\u0171]\",\n\tblockPrefixLetters:\t\"[A-Za-z0-9-_\\u00c0-\\u00d6\\u00d8-\\u00de\\u00df-\\u00f6\\u00f8-\\u00ff\\u0150\\u0170\\u0151\\u0171]\"\n};\n\nexports.textPrimitives.unWikiLink = \"~\";\nexports.textPrimitives.wikiLink = exports.textPrimitives.upperLetter + \"+\" +\n\texports.textPrimitives.lowerLetter + \"+\" +\n\texports.textPrimitives.upperLetter +\n\texports.textPrimitives.anyLetter + \"*\";\n\nexports.htmlEntities = {quot:34, amp:38, apos:39, lt:60, gt:62, nbsp:160, iexcl:161, cent:162, pound:163, curren:164, yen:165, brvbar:166, sect:167, uml:168, copy:169, ordf:170, laquo:171, not:172, shy:173, reg:174, macr:175, deg:176, plusmn:177, sup2:178, sup3:179, acute:180, micro:181, para:182, middot:183, cedil:184, sup1:185, ordm:186, raquo:187, frac14:188, frac12:189, frac34:190, iquest:191, Agrave:192, Aacute:193, Acirc:194, Atilde:195, Auml:196, Aring:197, AElig:198, Ccedil:199, Egrave:200, Eacute:201, Ecirc:202, Euml:203, Igrave:204, Iacute:205, Icirc:206, Iuml:207, ETH:208, Ntilde:209, Ograve:210, Oacute:211, Ocirc:212, Otilde:213, Ouml:214, times:215, Oslash:216, Ugrave:217, Uacute:218, Ucirc:219, Uuml:220, Yacute:221, THORN:222, szlig:223, agrave:224, aacute:225, acirc:226, atilde:227, auml:228, aring:229, aelig:230, ccedil:231, egrave:232, eacute:233, ecirc:234, euml:235, igrave:236, iacute:237, icirc:238, iuml:239, eth:240, ntilde:241, ograve:242, oacute:243, ocirc:244, otilde:245, ouml:246, divide:247, oslash:248, ugrave:249, uacute:250, ucirc:251, uuml:252, yacute:253, thorn:254, yuml:255, OElig:338, oelig:339, Scaron:352, scaron:353, Yuml:376, fnof:402, circ:710, tilde:732, Alpha:913, Beta:914, Gamma:915, Delta:916, Epsilon:917, Zeta:918, Eta:919, Theta:920, Iota:921, Kappa:922, Lambda:923, Mu:924, Nu:925, Xi:926, Omicron:927, Pi:928, Rho:929, Sigma:931, Tau:932, Upsilon:933, Phi:934, Chi:935, Psi:936, Omega:937, alpha:945, beta:946, gamma:947, delta:948, epsilon:949, zeta:950, eta:951, theta:952, iota:953, kappa:954, lambda:955, mu:956, nu:957, xi:958, omicron:959, pi:960, rho:961, sigmaf:962, sigma:963, tau:964, upsilon:965, phi:966, chi:967, psi:968, omega:969, thetasym:977, upsih:978, piv:982, ensp:8194, emsp:8195, thinsp:8201, zwnj:8204, zwj:8205, lrm:8206, rlm:8207, ndash:8211, mdash:8212, lsquo:8216, rsquo:8217, sbquo:8218, ldquo:8220, rdquo:8221, bdquo:8222, dagger:8224, Dagger:8225, bull:8226, hellip:8230, permil:8240, prime:8242, Prime:8243, lsaquo:8249, rsaquo:8250, oline:8254, frasl:8260, euro:8364, image:8465, weierp:8472, real:8476, trade:8482, alefsym:8501, larr:8592, uarr:8593, rarr:8594, darr:8595, harr:8596, crarr:8629, lArr:8656, uArr:8657, rArr:8658, dArr:8659, hArr:8660, forall:8704, part:8706, exist:8707, empty:8709, nabla:8711, isin:8712, notin:8713, ni:8715, prod:8719, sum:8721, minus:8722, lowast:8727, radic:8730, prop:8733, infin:8734, ang:8736, and:8743, or:8744, cap:8745, cup:8746, int:8747, there4:8756, sim:8764, cong:8773, asymp:8776, ne:8800, equiv:8801, le:8804, ge:8805, sub:8834, sup:8835, nsub:8836, sube:8838, supe:8839, oplus:8853, otimes:8855, perp:8869, sdot:8901, lceil:8968, rceil:8969, lfloor:8970, rfloor:8971, lang:9001, rang:9002, loz:9674, spades:9824, clubs:9827, hearts:9829, diams:9830 };\n\nexports.htmlVoidElements = \"area,base,br,col,command,embed,hr,img,input,keygen,link,meta,param,source,track,wbr\".split(\",\");\n\nexports.htmlBlockElements = \"address,article,aside,audio,blockquote,canvas,dd,div,dl,fieldset,figcaption,figure,footer,form,h1,h2,h3,h4,h5,h6,header,hgroup,hr,li,noscript,ol,output,p,pre,section,table,tfoot,ul,video\".split(\",\");\n\nexports.htmlUnsafeElements = \"script\".split(\",\");\n\n})();\n", "title": "$:/core/modules/config.js", "type": "application/javascript", "module-type": "config" }, "$:/core/modules/deserializers.js": { "text": "/*\\\ntitle: $:/core/modules/deserializers.js\ntype: application/javascript\nmodule-type: tiddlerdeserializer\n\nFunctions to deserialise tiddlers from a block of text\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nUtility function to parse an old-style tiddler DIV in a *.tid file. It looks like this:\n\n<div title=\"Title\" creator=\"JoeBloggs\" modifier=\"JoeBloggs\" created=\"201102111106\" modified=\"201102111310\" tags=\"myTag [[my long tag]]\">\n<pre>The text of the tiddler (without the expected HTML encoding).\n</pre>\n</div>\n\nNote that the field attributes are HTML encoded, but that the body of the <PRE> tag is not encoded.\n\nWhen these tiddler DIVs are encountered within a TiddlyWiki HTML file then the body is encoded in the usual way.\n*/\nvar parseTiddlerDiv = function(text /* [,fields] */) {\n\t// Slot together the default results\n\tvar result = {};\n\tif(arguments.length > 1) {\n\t\tfor(var f=1; f<arguments.length; f++) {\n\t\t\tvar fields = arguments[f];\n\t\t\tfor(var t in fields) {\n\t\t\t\tresult[t] = fields[t];\t\t\n\t\t\t}\n\t\t}\n\t}\n\t// Parse the DIV body\n\tvar startRegExp = /^\\s*<div\\s+([^>]*)>(\\s*<pre>)?/gi,\n\t\tendRegExp,\n\t\tmatch = startRegExp.exec(text);\n\tif(match) {\n\t\t// Old-style DIVs don't have the <pre> tag\n\t\tif(match[2]) {\n\t\t\tendRegExp = /<\\/pre>\\s*<\\/div>\\s*$/gi;\n\t\t} else {\n\t\t\tendRegExp = /<\\/div>\\s*$/gi;\n\t\t}\n\t\tvar endMatch = endRegExp.exec(text);\n\t\tif(endMatch) {\n\t\t\t// Extract the text\n\t\t\tresult.text = text.substring(match.index + match[0].length,endMatch.index);\n\t\t\t// Process the attributes\n\t\t\tvar attrRegExp = /\\s*([^=\\s]+)\\s*=\\s*(?:\"([^\"]*)\"|'([^']*)')/gi,\n\t\t\t\tattrMatch;\n\t\t\tdo {\n\t\t\t\tattrMatch = attrRegExp.exec(match[1]);\n\t\t\t\tif(attrMatch) {\n\t\t\t\t\tvar name = attrMatch[1];\n\t\t\t\t\tvar value = attrMatch[2] !== undefined ? attrMatch[2] : attrMatch[3];\n\t\t\t\t\tresult[name] = value;\n\t\t\t\t}\n\t\t\t} while(attrMatch);\n\t\t\treturn result;\n\t\t}\n\t}\n\treturn undefined;\n};\n\nexports[\"application/x-tiddler-html-div\"] = function(text,fields) {\n\treturn [parseTiddlerDiv(text,fields)];\n};\n\nexports[\"application/json\"] = function(text,fields) {\n\tvar incoming = JSON.parse(text),\n\t\tresults = [];\n\tif($tw.utils.isArray(incoming)) {\n\t\tfor(var t=0; t<incoming.length; t++) {\n\t\t\tvar incomingFields = incoming[t],\n\t\t\t\tfields = {};\n\t\t\tfor(var f in incomingFields) {\n\t\t\t\tif(typeof incomingFields[f] === \"string\") {\n\t\t\t\t\tfields[f] = incomingFields[f];\n\t\t\t\t}\n\t\t\t}\n\t\t\tresults.push(fields);\n\t\t}\n\t}\n\treturn results;\n};\n\n/*\nParse an HTML file into tiddlers. There are three possibilities:\n# A TiddlyWiki classic HTML file containing `text/x-tiddlywiki` tiddlers\n# A TiddlyWiki5 HTML file containing `text/vnd.tiddlywiki` tiddlers\n# An ordinary HTML file\n*/\nexports[\"text/html\"] = function(text,fields) {\n\t// Check if we've got a store area\n\tvar storeAreaMarkerRegExp = /<div id=[\"']?storeArea['\"]?( style=[\"']?display:none;[\"']?)?>/gi,\n\t\tmatch = storeAreaMarkerRegExp.exec(text);\n\tif(match) {\n\t\t// If so, it's either a classic TiddlyWiki file or an unencrypted TW5 file\n\t\t// First read the normal tiddlers\n\t\tvar results = deserializeTiddlyWikiFile(text,storeAreaMarkerRegExp.lastIndex,!!match[1],fields);\n\t\t// Then any system tiddlers\n\t\tvar systemAreaMarkerRegExp = /<div id=[\"']?systemArea['\"]?( style=[\"']?display:none;[\"']?)?>/gi,\n\t\t\tsysMatch = systemAreaMarkerRegExp.exec(text);\n\t\tif(sysMatch) {\n\t\t\tresults.push.apply(results,deserializeTiddlyWikiFile(text,systemAreaMarkerRegExp.lastIndex,!!sysMatch[1],fields));\n\t\t}\n\t\treturn results;\n\t} else {\n\t\t// Check whether we've got an encrypted file\n\t\tvar encryptedStoreArea = $tw.utils.extractEncryptedStoreArea(text);\n\t\tif(encryptedStoreArea) {\n\t\t\t// If so, attempt to decrypt it using the current password\n\t\t\treturn $tw.utils.decryptStoreArea(encryptedStoreArea);\n\t\t} else {\n\t\t\t// It's not a TiddlyWiki so we'll return the entire HTML file as a tiddler\n\t\t\treturn deserializeHtmlFile(text,fields);\n\t\t}\n\t}\n};\n\nfunction deserializeHtmlFile(text,fields) {\n\tvar result = {};\n\t$tw.utils.each(fields,function(value,name) {\n\t\tresult[name] = value;\n\t});\n\tresult.text = text;\n\tresult.type = \"text/html\";\n\treturn [result];\n}\n\nfunction deserializeTiddlyWikiFile(text,storeAreaEnd,isTiddlyWiki5,fields) {\n\tvar results = [],\n\t\tendOfDivRegExp = /(<\\/div>\\s*)/gi,\n\t\tstartPos = storeAreaEnd,\n\t\tdefaultType = isTiddlyWiki5 ? undefined : \"text/x-tiddlywiki\";\n\tendOfDivRegExp.lastIndex = startPos;\n\tvar match = endOfDivRegExp.exec(text);\n\twhile(match) {\n\t\tvar endPos = endOfDivRegExp.lastIndex,\n\t\t\ttiddlerFields = parseTiddlerDiv(text.substring(startPos,endPos),fields,{type: defaultType});\n\t\tif(!tiddlerFields) {\n\t\t\tbreak;\n\t\t}\n\t\t$tw.utils.each(tiddlerFields,function(value,name) {\n\t\t\tif(typeof value === \"string\") {\n\t\t\t\ttiddlerFields[name] = $tw.utils.htmlDecode(value);\n\t\t\t}\n\t\t});\n\t\tif(tiddlerFields.text !== null) {\n\t\t\tresults.push(tiddlerFields);\n\t\t}\n\t\tstartPos = endPos;\n\t\tmatch = endOfDivRegExp.exec(text);\n\t}\n\treturn results;\n}\n\n})();\n", "title": "$:/core/modules/deserializers.js", "type": "application/javascript", "module-type": "tiddlerdeserializer" }, "$:/core/modules/editor/engines/framed.js": { "text": "/*\\\ntitle: $:/core/modules/editor/engines/framed.js\ntype: application/javascript\nmodule-type: library\n\nText editor engine based on a simple input or textarea within an iframe. This is done so that the selection is preserved even when clicking away from the textarea\n\n\\*/\n(function(){\n\n/*jslint node: true,browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar HEIGHT_VALUE_TITLE = \"$:/config/TextEditor/EditorHeight/Height\";\n\nfunction FramedEngine(options) {\n\t// Save our options\n\toptions = options || {};\n\tthis.widget = options.widget;\n\tthis.value = options.value;\n\tthis.parentNode = options.parentNode;\n\tthis.nextSibling = options.nextSibling;\n\t// Create our hidden dummy text area for reading styles\n\tthis.dummyTextArea = this.widget.document.createElement(\"textarea\");\n\tif(this.widget.editClass) {\n\t\tthis.dummyTextArea.className = this.widget.editClass;\n\t}\n\tthis.dummyTextArea.setAttribute(\"hidden\",\"true\");\n\tthis.parentNode.insertBefore(this.dummyTextArea,this.nextSibling);\n\tthis.widget.domNodes.push(this.dummyTextArea);\n\t// Create the iframe\n\tthis.iframeNode = this.widget.document.createElement(\"iframe\");\n\tthis.parentNode.insertBefore(this.iframeNode,this.nextSibling);\n\tthis.iframeDoc = this.iframeNode.contentWindow.document;\n\t// (Firefox requires us to put some empty content in the iframe)\n\tthis.iframeDoc.open();\n\tthis.iframeDoc.write(\"\");\n\tthis.iframeDoc.close();\n\t// Style the iframe\n\tthis.iframeNode.className = this.dummyTextArea.className;\n\tthis.iframeNode.style.border = \"none\";\n\tthis.iframeNode.style.padding = \"0\";\n\tthis.iframeNode.style.resize = \"none\";\n\tthis.iframeDoc.body.style.margin = \"0\";\n\tthis.iframeDoc.body.style.padding = \"0\";\n\tthis.widget.domNodes.push(this.iframeNode);\n\t// Construct the textarea or input node\n\tvar tag = this.widget.editTag;\n\tif($tw.config.htmlUnsafeElements.indexOf(tag) !== -1) {\n\t\ttag = \"input\";\n\t}\n\tthis.domNode = this.iframeDoc.createElement(tag);\n\t// Set the text\n\tif(this.widget.editTag === \"textarea\") {\n\t\tthis.domNode.appendChild(this.iframeDoc.createTextNode(this.value));\n\t} else {\n\t\tthis.domNode.value = this.value;\n\t}\n\t// Set the attributes\n\tif(this.widget.editType) {\n\t\tthis.domNode.setAttribute(\"type\",this.widget.editType);\n\t}\n\tif(this.widget.editPlaceholder) {\n\t\tthis.domNode.setAttribute(\"placeholder\",this.widget.editPlaceholder);\n\t}\n\tif(this.widget.editSize) {\n\t\tthis.domNode.setAttribute(\"size\",this.widget.editSize);\n\t}\n\tif(this.widget.editRows) {\n\t\tthis.domNode.setAttribute(\"rows\",this.widget.editRows);\n\t}\n\t// Copy the styles from the dummy textarea\n\tthis.copyStyles();\n\t// Add event listeners\n\t$tw.utils.addEventListeners(this.domNode,[\n\t\t{name: \"input\",handlerObject: this,handlerMethod: \"handleInputEvent\"},\n\t\t{name: \"keydown\",handlerObject: this.widget,handlerMethod: \"handleKeydownEvent\"}\n\t]);\n\t// Insert the element into the DOM\n\tthis.iframeDoc.body.appendChild(this.domNode);\n}\n\n/*\nCopy styles from the dummy text area to the textarea in the iframe\n*/\nFramedEngine.prototype.copyStyles = function() {\n\t// Copy all styles\n\t$tw.utils.copyStyles(this.dummyTextArea,this.domNode);\n\t// Override the ones that should not be set the same as the dummy textarea\n\tthis.domNode.style.display = \"block\";\n\tthis.domNode.style.width = \"100%\";\n\tthis.domNode.style.margin = \"0\";\n\t// In Chrome setting -webkit-text-fill-color overrides the placeholder text colour\n\tthis.domNode.style[\"-webkit-text-fill-color\"] = \"currentcolor\";\n};\n\n/*\nSet the text of the engine if it doesn't currently have focus\n*/\nFramedEngine.prototype.setText = function(text,type) {\n\tif(!this.domNode.isTiddlyWikiFakeDom) {\n\t\tif(this.domNode.ownerDocument.activeElement !== this.domNode) {\n\t\t\tthis.domNode.value = text;\n\t\t}\n\t\t// Fix the height if needed\n\t\tthis.fixHeight();\n\t}\n};\n\n/*\nGet the text of the engine\n*/\nFramedEngine.prototype.getText = function() {\n\treturn this.domNode.value;\n};\n\n/*\nFix the height of textarea to fit content\n*/\nFramedEngine.prototype.fixHeight = function() {\n\t// Make sure styles are updated\n\tthis.copyStyles();\n\t// Adjust height\n\tif(this.widget.editTag === \"textarea\") {\n\t\tif(this.widget.editAutoHeight) {\n\t\t\tif(this.domNode && !this.domNode.isTiddlyWikiFakeDom) {\n\t\t\t\tvar newHeight = $tw.utils.resizeTextAreaToFit(this.domNode,this.widget.editMinHeight);\n\t\t\t\tthis.iframeNode.style.height = (newHeight + 14) + \"px\"; // +14 for the border on the textarea\n\t\t\t}\n\t\t} else {\n\t\t\tvar fixedHeight = parseInt(this.widget.wiki.getTiddlerText(HEIGHT_VALUE_TITLE,\"400px\"),10);\n\t\t\tfixedHeight = Math.max(fixedHeight,20);\n\t\t\tthis.domNode.style.height = fixedHeight + \"px\";\n\t\t\tthis.iframeNode.style.height = (fixedHeight + 14) + \"px\";\n\t\t}\n\t}\n};\n\n/*\nFocus the engine node\n*/\nFramedEngine.prototype.focus = function() {\n\tif(this.domNode.focus && this.domNode.select) {\n\t\tthis.domNode.focus();\n\t\tthis.domNode.select();\n\t}\n};\n\n/*\nHandle a dom \"input\" event which occurs when the text has changed\n*/\nFramedEngine.prototype.handleInputEvent = function(event) {\n\tthis.widget.saveChanges(this.getText());\n\tthis.fixHeight();\n\treturn true;\n};\n\n/*\nCreate a blank structure representing a text operation\n*/\nFramedEngine.prototype.createTextOperation = function() {\n\tvar operation = {\n\t\ttext: this.domNode.value,\n\t\tselStart: this.domNode.selectionStart,\n\t\tselEnd: this.domNode.selectionEnd,\n\t\tcutStart: null,\n\t\tcutEnd: null,\n\t\treplacement: null,\n\t\tnewSelStart: null,\n\t\tnewSelEnd: null\n\t};\n\toperation.selection = operation.text.substring(operation.selStart,operation.selEnd);\n\treturn operation;\n};\n\n/*\nExecute a text operation\n*/\nFramedEngine.prototype.executeTextOperation = function(operation) {\n\t// Perform the required changes to the text area and the underlying tiddler\n\tvar newText = operation.text;\n\tif(operation.replacement !== null) {\n\t\tnewText = operation.text.substring(0,operation.cutStart) + operation.replacement + operation.text.substring(operation.cutEnd);\n\t\t// Attempt to use a execCommand to modify the value of the control\n\t\tif(this.iframeDoc.queryCommandSupported(\"insertText\") && this.iframeDoc.queryCommandSupported(\"delete\") && !$tw.browser.isFirefox) {\n\t\t\tthis.domNode.focus();\n\t\t\tthis.domNode.setSelectionRange(operation.cutStart,operation.cutEnd);\n\t\t\tif(operation.replacement === \"\") {\n\t\t\t\tthis.iframeDoc.execCommand(\"delete\",false,\"\");\n\t\t\t} else {\n\t\t\t\tthis.iframeDoc.execCommand(\"insertText\",false,operation.replacement);\n\t\t\t}\n\t\t} else {\n\t\t\tthis.domNode.value = newText;\n\t\t}\n\t\tthis.domNode.focus();\n\t\tthis.domNode.setSelectionRange(operation.newSelStart,operation.newSelEnd);\n\t}\n\tthis.domNode.focus();\n\treturn newText;\n};\n\nexports.FramedEngine = FramedEngine;\n\n})();\n", "title": "$:/core/modules/editor/engines/framed.js", "type": "application/javascript", "module-type": "library" }, "$:/core/modules/editor/engines/simple.js": { "text": "/*\\\ntitle: $:/core/modules/editor/engines/simple.js\ntype: application/javascript\nmodule-type: library\n\nText editor engine based on a simple input or textarea tag\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar HEIGHT_VALUE_TITLE = \"$:/config/TextEditor/EditorHeight/Height\";\n\nfunction SimpleEngine(options) {\n\t// Save our options\n\toptions = options || {};\n\tthis.widget = options.widget;\n\tthis.value = options.value;\n\tthis.parentNode = options.parentNode;\n\tthis.nextSibling = options.nextSibling;\n\t// Construct the textarea or input node\n\tvar tag = this.widget.editTag;\n\tif($tw.config.htmlUnsafeElements.indexOf(tag) !== -1) {\n\t\ttag = \"input\";\n\t}\n\tthis.domNode = this.widget.document.createElement(tag);\n\t// Set the text\n\tif(this.widget.editTag === \"textarea\") {\n\t\tthis.domNode.appendChild(this.widget.document.createTextNode(this.value));\n\t} else {\n\t\tthis.domNode.value = this.value;\n\t}\n\t// Set the attributes\n\tif(this.widget.editType) {\n\t\tthis.domNode.setAttribute(\"type\",this.widget.editType);\n\t}\n\tif(this.widget.editPlaceholder) {\n\t\tthis.domNode.setAttribute(\"placeholder\",this.widget.editPlaceholder);\n\t}\n\tif(this.widget.editSize) {\n\t\tthis.domNode.setAttribute(\"size\",this.widget.editSize);\n\t}\n\tif(this.widget.editRows) {\n\t\tthis.domNode.setAttribute(\"rows\",this.widget.editRows);\n\t}\n\tif(this.widget.editClass) {\n\t\tthis.domNode.className = this.widget.editClass;\n\t}\n\t// Add an input event handler\n\t$tw.utils.addEventListeners(this.domNode,[\n\t\t{name: \"focus\", handlerObject: this, handlerMethod: \"handleFocusEvent\"},\n\t\t{name: \"input\", handlerObject: this, handlerMethod: \"handleInputEvent\"}\n\t]);\n\t// Insert the element into the DOM\n\tthis.parentNode.insertBefore(this.domNode,this.nextSibling);\n\tthis.widget.domNodes.push(this.domNode);\n}\n\n/*\nSet the text of the engine if it doesn't currently have focus\n*/\nSimpleEngine.prototype.setText = function(text,type) {\n\tif(!this.domNode.isTiddlyWikiFakeDom) {\n\t\tif(this.domNode.ownerDocument.activeElement !== this.domNode) {\n\t\t\tthis.domNode.value = text;\n\t\t}\n\t\t// Fix the height if needed\n\t\tthis.fixHeight();\n\t}\n};\n\n/*\nGet the text of the engine\n*/\nSimpleEngine.prototype.getText = function() {\n\treturn this.domNode.value;\n};\n\n/*\nFix the height of textarea to fit content\n*/\nSimpleEngine.prototype.fixHeight = function() {\n\tif(this.widget.editTag === \"textarea\") {\n\t\tif(this.widget.editAutoHeight) {\n\t\t\tif(this.domNode && !this.domNode.isTiddlyWikiFakeDom) {\n\t\t\t\t$tw.utils.resizeTextAreaToFit(this.domNode,this.widget.editMinHeight);\n\t\t\t}\n\t\t} else {\n\t\t\tvar fixedHeight = parseInt(this.widget.wiki.getTiddlerText(HEIGHT_VALUE_TITLE,\"400px\"),10);\n\t\t\tfixedHeight = Math.max(fixedHeight,20);\n\t\t\tthis.domNode.style.height = fixedHeight + \"px\";\n\t\t}\n\t}\n};\n\n/*\nFocus the engine node\n*/\nSimpleEngine.prototype.focus = function() {\n\tif(this.domNode.focus && this.domNode.select) {\n\t\tthis.domNode.focus();\n\t\tthis.domNode.select();\n\t}\n};\n\n/*\nHandle a dom \"input\" event which occurs when the text has changed\n*/\nSimpleEngine.prototype.handleInputEvent = function(event) {\n\tthis.widget.saveChanges(this.getText());\n\tthis.fixHeight();\n\treturn true;\n};\n\n/*\nHandle a dom \"focus\" event\n*/\nSimpleEngine.prototype.handleFocusEvent = function(event) {\n\tif(this.widget.editFocusPopup) {\n\t\t$tw.popup.triggerPopup({\n\t\t\tdomNode: this.domNode,\n\t\t\ttitle: this.widget.editFocusPopup,\n\t\t\twiki: this.widget.wiki,\n\t\t\tforce: true\n\t\t});\n\t}\n\treturn true;\n};\n\n/*\nCreate a blank structure representing a text operation\n*/\nSimpleEngine.prototype.createTextOperation = function() {\n\treturn null;\n};\n\n/*\nExecute a text operation\n*/\nSimpleEngine.prototype.executeTextOperation = function(operation) {\n};\n\nexports.SimpleEngine = SimpleEngine;\n\n})();\n", "title": "$:/core/modules/editor/engines/simple.js", "type": "application/javascript", "module-type": "library" }, "$:/core/modules/editor/factory.js": { "text": "/*\\\ntitle: $:/core/modules/editor/factory.js\ntype: application/javascript\nmodule-type: library\n\nFactory for constructing text editor widgets with specified engines for the toolbar and non-toolbar cases\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar DEFAULT_MIN_TEXT_AREA_HEIGHT = \"100px\"; // Minimum height of textareas in pixels\n\n// Configuration tiddlers\nvar HEIGHT_MODE_TITLE = \"$:/config/TextEditor/EditorHeight/Mode\";\nvar ENABLE_TOOLBAR_TITLE = \"$:/config/TextEditor/EnableToolbar\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nfunction editTextWidgetFactory(toolbarEngine,nonToolbarEngine) {\n\n\tvar EditTextWidget = function(parseTreeNode,options) {\n\t\t// Initialise the editor operations if they've not been done already\n\t\tif(!this.editorOperations) {\n\t\t\tEditTextWidget.prototype.editorOperations = {};\n\t\t\t$tw.modules.applyMethods(\"texteditoroperation\",this.editorOperations);\n\t\t}\n\t\tthis.initialise(parseTreeNode,options);\n\t};\n\n\t/*\n\tInherit from the base widget class\n\t*/\n\tEditTextWidget.prototype = new Widget();\n\n\t/*\n\tRender this widget into the DOM\n\t*/\n\tEditTextWidget.prototype.render = function(parent,nextSibling) {\n\t\t// Save the parent dom node\n\t\tthis.parentDomNode = parent;\n\t\t// Compute our attributes\n\t\tthis.computeAttributes();\n\t\t// Execute our logic\n\t\tthis.execute();\n\t\t// Create the wrapper for the toolbar and render its content\n\t\tif(this.editShowToolbar) {\n\t\t\tthis.toolbarNode = this.document.createElement(\"div\");\n\t\t\tthis.toolbarNode.className = \"tc-editor-toolbar\";\n\t\t\tparent.insertBefore(this.toolbarNode,nextSibling);\n\t\t\tthis.renderChildren(this.toolbarNode,null);\n\t\t\tthis.domNodes.push(this.toolbarNode);\n\t\t}\n\t\t// Create our element\n\t\tvar editInfo = this.getEditInfo(),\n\t\t\tEngine = this.editShowToolbar ? toolbarEngine : nonToolbarEngine;\n\t\tthis.engine = new Engine({\n\t\t\t\twidget: this,\n\t\t\t\tvalue: editInfo.value,\n\t\t\t\ttype: editInfo.type,\n\t\t\t\tparentNode: parent,\n\t\t\t\tnextSibling: nextSibling\n\t\t\t});\n\t\t// Call the postRender hook\n\t\tif(this.postRender) {\n\t\t\tthis.postRender();\n\t\t}\n\t\t// Fix height\n\t\tthis.engine.fixHeight();\n\t\t// Focus if required\n\t\tif(this.editFocus === \"true\" || this.editFocus === \"yes\") {\n\t\t\tthis.engine.focus();\n\t\t}\n\t\t// Add widget message listeners\n\t\tthis.addEventListeners([\n\t\t\t{type: \"tm-edit-text-operation\", handler: \"handleEditTextOperationMessage\"}\n\t\t]);\n\t};\n\n\t/*\n\tGet the tiddler being edited and current value\n\t*/\n\tEditTextWidget.prototype.getEditInfo = function() {\n\t\t// Get the edit value\n\t\tvar self = this,\n\t\t\tvalue,\n\t\t\ttype = \"text/plain\",\n\t\t\tupdate;\n\t\tif(this.editIndex) {\n\t\t\tvalue = this.wiki.extractTiddlerDataItem(this.editTitle,this.editIndex,this.editDefault);\n\t\t\tupdate = function(value) {\n\t\t\t\tvar data = self.wiki.getTiddlerData(self.editTitle,{});\n\t\t\t\tif(data[self.editIndex] !== value) {\n\t\t\t\t\tdata[self.editIndex] = value;\n\t\t\t\t\tself.wiki.setTiddlerData(self.editTitle,data);\n\t\t\t\t}\n\t\t\t};\n\t\t} else {\n\t\t\t// Get the current tiddler and the field name\n\t\t\tvar tiddler = this.wiki.getTiddler(this.editTitle);\n\t\t\tif(tiddler) {\n\t\t\t\t// If we've got a tiddler, the value to display is the field string value\n\t\t\t\tvalue = tiddler.getFieldString(this.editField);\n\t\t\t\tif(this.editField === \"text\") {\n\t\t\t\t\ttype = tiddler.fields.type || \"text/vnd.tiddlywiki\";\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// Otherwise, we need to construct a default value for the editor\n\t\t\t\tswitch(this.editField) {\n\t\t\t\t\tcase \"text\":\n\t\t\t\t\t\tvalue = \"Type the text for the tiddler '\" + this.editTitle + \"'\";\n\t\t\t\t\t\ttype = \"text/vnd.tiddlywiki\";\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"title\":\n\t\t\t\t\t\tvalue = this.editTitle;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tvalue = \"\";\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tif(this.editDefault !== undefined) {\n\t\t\t\t\tvalue = this.editDefault;\n\t\t\t\t}\n\t\t\t}\n\t\t\tupdate = function(value) {\n\t\t\t\tvar tiddler = self.wiki.getTiddler(self.editTitle),\n\t\t\t\t\tupdateFields = {\n\t\t\t\t\t\ttitle: self.editTitle\n\t\t\t\t\t};\n\t\t\t\tupdateFields[self.editField] = value;\n\t\t\t\tself.wiki.addTiddler(new $tw.Tiddler(self.wiki.getCreationFields(),tiddler,updateFields,self.wiki.getModificationFields()));\n\t\t\t};\n\t\t}\n\t\tif(this.editType) {\n\t\t\ttype = this.editType;\n\t\t}\n\t\treturn {value: value || \"\", type: type, update: update};\n\t};\n\n\t/*\n\tHandle an edit text operation message from the toolbar\n\t*/\n\tEditTextWidget.prototype.handleEditTextOperationMessage = function(event) {\n\t\t// Prepare information about the operation\n\t\tvar operation = this.engine.createTextOperation();\n\t\t// Invoke the handler for the selected operation\n\t\tvar handler = this.editorOperations[event.param];\n\t\tif(handler) {\n\t\t\thandler.call(this,event,operation);\n\t\t}\n\t\t// Execute the operation via the engine\n\t\tvar newText = this.engine.executeTextOperation(operation);\n\t\t// Fix the tiddler height and save changes\n\t\tthis.engine.fixHeight();\n\t\tthis.saveChanges(newText);\n\t};\n\n\t/*\n\tCompute the internal state of the widget\n\t*/\n\tEditTextWidget.prototype.execute = function() {\n\t\t// Get our parameters\n\t\tthis.editTitle = this.getAttribute(\"tiddler\",this.getVariable(\"currentTiddler\"));\n\t\tthis.editField = this.getAttribute(\"field\",\"text\");\n\t\tthis.editIndex = this.getAttribute(\"index\");\n\t\tthis.editDefault = this.getAttribute(\"default\");\n\t\tthis.editClass = this.getAttribute(\"class\");\n\t\tthis.editPlaceholder = this.getAttribute(\"placeholder\");\n\t\tthis.editSize = this.getAttribute(\"size\");\n\t\tthis.editRows = this.getAttribute(\"rows\");\n\t\tthis.editAutoHeight = this.wiki.getTiddlerText(HEIGHT_MODE_TITLE,\"auto\");\n\t\tthis.editAutoHeight = this.getAttribute(\"autoHeight\",this.editAutoHeight === \"auto\" ? \"yes\" : \"no\") === \"yes\";\n\t\tthis.editMinHeight = this.getAttribute(\"minHeight\",DEFAULT_MIN_TEXT_AREA_HEIGHT);\n\t\tthis.editFocusPopup = this.getAttribute(\"focusPopup\");\n\t\tthis.editFocus = this.getAttribute(\"focus\");\n\t\t// Get the default editor element tag and type\n\t\tvar tag,type;\n\t\tif(this.editField === \"text\") {\n\t\t\ttag = \"textarea\";\n\t\t} else {\n\t\t\ttag = \"input\";\n\t\t\tvar fieldModule = $tw.Tiddler.fieldModules[this.editField];\n\t\t\tif(fieldModule && fieldModule.editTag) {\n\t\t\t\ttag = fieldModule.editTag;\n\t\t\t}\n\t\t\tif(fieldModule && fieldModule.editType) {\n\t\t\t\ttype = fieldModule.editType;\n\t\t\t}\n\t\t\ttype = type || \"text\";\n\t\t}\n\t\t// Get the rest of our parameters\n\t\tthis.editTag = this.getAttribute(\"tag\",tag);\n\t\tthis.editType = this.getAttribute(\"type\",type);\n\t\t// Make the child widgets\n\t\tthis.makeChildWidgets();\n\t\t// Determine whether to show the toolbar\n\t\tthis.editShowToolbar = this.wiki.getTiddlerText(ENABLE_TOOLBAR_TITLE,\"yes\");\n\t\tthis.editShowToolbar = (this.editShowToolbar === \"yes\") && !!(this.children && this.children.length > 0);\n\t};\n\n\t/*\n\tSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n\t*/\n\tEditTextWidget.prototype.refresh = function(changedTiddlers) {\n\t\tvar changedAttributes = this.computeAttributes();\n\t\t// Completely rerender if any of our attributes have changed\n\t\tif(changedAttributes.tiddler || changedAttributes.field || changedAttributes.index || changedAttributes[\"default\"] || changedAttributes[\"class\"] || changedAttributes.placeholder || changedAttributes.size || changedAttributes.autoHeight || changedAttributes.minHeight || changedAttributes.focusPopup || changedAttributes.rows || changedTiddlers[HEIGHT_MODE_TITLE] || changedTiddlers[ENABLE_TOOLBAR_TITLE]) {\n\t\t\tthis.refreshSelf();\n\t\t\treturn true;\n\t\t} else if(changedTiddlers[this.editTitle]) {\n\t\t\tvar editInfo = this.getEditInfo();\n\t\t\tthis.updateEditor(editInfo.value,editInfo.type);\n\t\t}\n\t\tthis.engine.fixHeight();\n\t\tif(this.editShowToolbar) {\n\t\t\treturn this.refreshChildren(changedTiddlers);\t\t\t\n\t\t} else {\n\t\t\treturn false;\n\t\t}\n\t};\n\n\t/*\n\tUpdate the editor with new text. This method is separate from updateEditorDomNode()\n\tso that subclasses can override updateEditor() and still use updateEditorDomNode()\n\t*/\n\tEditTextWidget.prototype.updateEditor = function(text,type) {\n\t\tthis.updateEditorDomNode(text,type);\n\t};\n\n\t/*\n\tUpdate the editor dom node with new text\n\t*/\n\tEditTextWidget.prototype.updateEditorDomNode = function(text,type) {\n\t\tthis.engine.setText(text,type);\n\t};\n\n\t/*\n\tSave changes back to the tiddler store\n\t*/\n\tEditTextWidget.prototype.saveChanges = function(text) {\n\t\tvar editInfo = this.getEditInfo();\n\t\tif(text !== editInfo.value) {\n\t\t\teditInfo.update(text);\n\t\t}\n\t};\n\n\t/*\n\tHandle a dom \"keydown\" event, which we'll bubble up to our container for the keyboard widgets benefit\n\t*/\n\tEditTextWidget.prototype.handleKeydownEvent = function(event) {\n\t\t// Check for a keyboard shortcut\n\t\tif(this.toolbarNode) {\n\t\t\tvar shortcutElements = this.toolbarNode.querySelectorAll(\"[data-tw-keyboard-shortcut]\");\n\t\t\tfor(var index=0; index<shortcutElements.length; index++) {\n\t\t\t\tvar el = shortcutElements[index],\n\t\t\t\t\tshortcutData = el.getAttribute(\"data-tw-keyboard-shortcut\"),\n\t\t\t\t\tkeyInfoArray = $tw.keyboardManager.parseKeyDescriptors(shortcutData,{\n\t\t\t\t\t\twiki: this.wiki\n\t\t\t\t\t});\n\t\t\t\tif($tw.keyboardManager.checkKeyDescriptors(event,keyInfoArray)) {\n\t\t\t\t\tvar clickEvent = this.document.createEvent(\"Events\");\n\t\t\t\t clickEvent.initEvent(\"click\",true,false);\n\t\t\t\t el.dispatchEvent(clickEvent);\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t\treturn true;\t\t\t\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t// Propogate the event to the container\n\t\tif(this.propogateKeydownEvent(event)) {\n\t\t\t// Ignore the keydown if it was already handled\n\t\t\tevent.preventDefault();\n\t\t\tevent.stopPropagation();\n\t\t\treturn true;\n\t\t}\n\t\t// Otherwise, process the keydown normally\n\t\treturn false;\n\t};\n\n\t/*\n\tPropogate keydown events to our container for the keyboard widgets benefit\n\t*/\n\tEditTextWidget.prototype.propogateKeydownEvent = function(event) {\n\t\tvar newEvent = this.document.createEventObject ? this.document.createEventObject() : this.document.createEvent(\"Events\");\n\t\tif(newEvent.initEvent) {\n\t\t\tnewEvent.initEvent(\"keydown\", true, true);\n\t\t}\n\t\tnewEvent.keyCode = event.keyCode;\n\t\tnewEvent.which = event.which;\n\t\tnewEvent.metaKey = event.metaKey;\n\t\tnewEvent.ctrlKey = event.ctrlKey;\n\t\tnewEvent.altKey = event.altKey;\n\t\tnewEvent.shiftKey = event.shiftKey;\n\t\treturn !this.parentDomNode.dispatchEvent(newEvent);\n\t};\n\n\treturn EditTextWidget;\n\n}\n\nexports.editTextWidgetFactory = editTextWidgetFactory;\n\n})();\n", "title": "$:/core/modules/editor/factory.js", "type": "application/javascript", "module-type": "library" }, "$:/core/modules/editor/operations/bitmap/clear.js": { "text": "/*\\\ntitle: $:/core/modules/editor/operations/bitmap/clear.js\ntype: application/javascript\nmodule-type: bitmapeditoroperation\n\nBitmap editor operation to clear the image\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports[\"clear\"] = function(event) {\n\tvar ctx = this.canvasDomNode.getContext(\"2d\");\n\tctx.globalAlpha = 1;\n\tctx.fillStyle = event.paramObject.colour || \"white\";\n\tctx.fillRect(0,0,this.canvasDomNode.width,this.canvasDomNode.height);\n\t// Save changes\n\tthis.strokeEnd();\n};\n\n})();\n", "title": "$:/core/modules/editor/operations/bitmap/clear.js", "type": "application/javascript", "module-type": "bitmapeditoroperation" }, "$:/core/modules/editor/operations/bitmap/resize.js": { "text": "/*\\\ntitle: $:/core/modules/editor/operations/bitmap/resize.js\ntype: application/javascript\nmodule-type: bitmapeditoroperation\n\nBitmap editor operation to resize the image\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports[\"resize\"] = function(event) {\n\t// Get the new width\n\tvar newWidth = parseInt(event.paramObject.width || this.canvasDomNode.width,10),\n\t\tnewHeight = parseInt(event.paramObject.height || this.canvasDomNode.height,10);\n\t// Update if necessary\n\tif(newWidth > 0 && newHeight > 0 && !(newWidth === this.currCanvas.width && newHeight === this.currCanvas.height)) {\n\t\tthis.changeCanvasSize(newWidth,newHeight);\n\t}\n\t// Update the input controls\n\tthis.refreshToolbar();\n\t// Save the image into the tiddler\n\tthis.saveChanges();\n};\n\n})();\n", "title": "$:/core/modules/editor/operations/bitmap/resize.js", "type": "application/javascript", "module-type": "bitmapeditoroperation" }, "$:/core/modules/editor/operations/text/excise.js": { "text": "/*\\\ntitle: $:/core/modules/editor/operations/text/excise.js\ntype: application/javascript\nmodule-type: texteditoroperation\n\nText editor operation to excise the selection to a new tiddler\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports[\"excise\"] = function(event,operation) {\n\tvar editTiddler = this.wiki.getTiddler(this.editTitle),\n\t\teditTiddlerTitle = this.editTitle;\n\tif(editTiddler && editTiddler.fields[\"draft.of\"]) {\n\t\teditTiddlerTitle = editTiddler.fields[\"draft.of\"];\n\t}\n\tvar excisionTitle = event.paramObject.title || this.wiki.generateNewTitle(\"New Excision\");\n\tthis.wiki.addTiddler(new $tw.Tiddler(\n\t\tthis.wiki.getCreationFields(),\n\t\tthis.wiki.getModificationFields(),\n\t\t{\n\t\t\ttitle: excisionTitle,\n\t\t\ttext: operation.selection,\n\t\t\ttags: event.paramObject.tagnew === \"yes\" ? [editTiddlerTitle] : []\n\t\t}\n\t));\n\toperation.replacement = excisionTitle;\n\tswitch(event.paramObject.type || \"transclude\") {\n\t\tcase \"transclude\":\n\t\t\toperation.replacement = \"{{\" + operation.replacement+ \"}}\";\n\t\t\tbreak;\n\t\tcase \"link\":\n\t\t\toperation.replacement = \"[[\" + operation.replacement+ \"]]\";\n\t\t\tbreak;\n\t\tcase \"macro\":\n\t\t\toperation.replacement = \"<<\" + (event.paramObject.macro || \"translink\") + \" \\\"\\\"\\\"\" + operation.replacement + \"\\\"\\\"\\\">>\";\n\t\t\tbreak;\n\t}\n\toperation.cutStart = operation.selStart;\n\toperation.cutEnd = operation.selEnd;\n\toperation.newSelStart = operation.selStart;\n\toperation.newSelEnd = operation.selStart + operation.replacement.length;\n};\n\n})();\n", "title": "$:/core/modules/editor/operations/text/excise.js", "type": "application/javascript", "module-type": "texteditoroperation" }, "$:/core/modules/editor/operations/text/make-link.js": { "text": "/*\\\ntitle: $:/core/modules/editor/operations/text/make-link.js\ntype: application/javascript\nmodule-type: texteditoroperation\n\nText editor operation to make a link\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports[\"make-link\"] = function(event,operation) {\n\tif(operation.selection) {\n\t\toperation.replacement = \"[[\" + operation.selection + \"|\" + event.paramObject.text + \"]]\";\n\t\toperation.cutStart = operation.selStart;\n\t\toperation.cutEnd = operation.selEnd;\n\t} else {\n\t\toperation.replacement = \"[[\" + event.paramObject.text + \"]]\";\n\t\toperation.cutStart = operation.selStart;\n\t\toperation.cutEnd = operation.selEnd;\n\t}\n\toperation.newSelStart = operation.selStart + operation.replacement.length;\n\toperation.newSelEnd = operation.newSelStart;\n};\n\n})();\n", "title": "$:/core/modules/editor/operations/text/make-link.js", "type": "application/javascript", "module-type": "texteditoroperation" }, "$:/core/modules/editor/operations/text/prefix-lines.js": { "text": "/*\\\ntitle: $:/core/modules/editor/operations/text/prefix-lines.js\ntype: application/javascript\nmodule-type: texteditoroperation\n\nText editor operation to add a prefix to the selected lines\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports[\"prefix-lines\"] = function(event,operation) {\n\t// Cut just past the preceding line break, or the start of the text\n\toperation.cutStart = $tw.utils.findPrecedingLineBreak(operation.text,operation.selStart);\n\t// Cut to just past the following line break, or to the end of the text\n\toperation.cutEnd = $tw.utils.findFollowingLineBreak(operation.text,operation.selEnd);\n\t// Compose the required prefix\n\tvar prefix = $tw.utils.repeat(event.paramObject.character,event.paramObject.count);\n\t// Process each line\n\tvar lines = operation.text.substring(operation.cutStart,operation.cutEnd).split(/\\r?\\n/mg);\n\t$tw.utils.each(lines,function(line,index) {\n\t\t// Remove and count any existing prefix characters\n\t\tvar count = 0;\n\t\twhile(line.charAt(0) === event.paramObject.character) {\n\t\t\tline = line.substring(1);\n\t\t\tcount++;\n\t\t}\n\t\t// Remove any whitespace\n\t\twhile(line.charAt(0) === \" \") {\n\t\t\tline = line.substring(1);\n\t\t}\n\t\t// We're done if we removed the exact required prefix, otherwise add it\n\t\tif(count !== event.paramObject.count) {\n\t\t\t// Apply the prefix\n\t\t\tline = prefix + \" \" + line;\n\t\t}\n\t\t// Save the modified line\n\t\tlines[index] = line;\n\t});\n\t// Stitch the replacement text together and set the selection\n\toperation.replacement = lines.join(\"\\n\");\n\tif(lines.length === 1) {\n\t\toperation.newSelStart = operation.cutStart + operation.replacement.length;\n\t\toperation.newSelEnd = operation.newSelStart;\n\t} else {\n\t\toperation.newSelStart = operation.cutStart;\n\t\toperation.newSelEnd = operation.newSelStart + operation.replacement.length;\n\t}\n};\n\n})();\n", "title": "$:/core/modules/editor/operations/text/prefix-lines.js", "type": "application/javascript", "module-type": "texteditoroperation" }, "$:/core/modules/editor/operations/text/replace-all.js": { "text": "/*\\\ntitle: $:/core/modules/editor/operations/text/replace-all.js\ntype: application/javascript\nmodule-type: texteditoroperation\n\nText editor operation to replace the entire text\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports[\"replace-all\"] = function(event,operation) {\n\toperation.cutStart = 0;\n\toperation.cutEnd = operation.text.length;\n\toperation.replacement = event.paramObject.text;\n\toperation.newSelStart = 0;\n\toperation.newSelEnd = operation.replacement.length;\n};\n\n})();\n", "title": "$:/core/modules/editor/operations/text/replace-all.js", "type": "application/javascript", "module-type": "texteditoroperation" }, "$:/core/modules/editor/operations/text/replace-selection.js": { "text": "/*\\\ntitle: $:/core/modules/editor/operations/text/replace-selection.js\ntype: application/javascript\nmodule-type: texteditoroperation\n\nText editor operation to replace the selection\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports[\"replace-selection\"] = function(event,operation) {\n\toperation.replacement = event.paramObject.text;\n\toperation.cutStart = operation.selStart;\n\toperation.cutEnd = operation.selEnd;\n\toperation.newSelStart = operation.selStart;\n\toperation.newSelEnd = operation.selStart + operation.replacement.length;\n};\n\n})();\n", "title": "$:/core/modules/editor/operations/text/replace-selection.js", "type": "application/javascript", "module-type": "texteditoroperation" }, "$:/core/modules/editor/operations/text/wrap-lines.js": { "text": "/*\\\ntitle: $:/core/modules/editor/operations/text/wrap-lines.js\ntype: application/javascript\nmodule-type: texteditoroperation\n\nText editor operation to wrap the selected lines with a prefix and suffix\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports[\"wrap-lines\"] = function(event,operation) {\n\t// Cut just past the preceding line break, or the start of the text\n\toperation.cutStart = $tw.utils.findPrecedingLineBreak(operation.text,operation.selStart);\n\t// Cut to just past the following line break, or to the end of the text\n\toperation.cutEnd = $tw.utils.findFollowingLineBreak(operation.text,operation.selEnd);\n\t// Add the prefix and suffix\n\toperation.replacement = event.paramObject.prefix + \"\\n\" +\n\t\t\t\toperation.text.substring(operation.cutStart,operation.cutEnd) + \"\\n\" +\n\t\t\t\tevent.paramObject.suffix + \"\\n\";\n\toperation.newSelStart = operation.cutStart + event.paramObject.prefix.length + 1;\n\toperation.newSelEnd = operation.newSelStart + (operation.cutEnd - operation.cutStart);\n};\n\n})();\n", "title": "$:/core/modules/editor/operations/text/wrap-lines.js", "type": "application/javascript", "module-type": "texteditoroperation" }, "$:/core/modules/editor/operations/text/wrap-selection.js": { "text": "/*\\\ntitle: $:/core/modules/editor/operations/text/wrap-selection.js\ntype: application/javascript\nmodule-type: texteditoroperation\n\nText editor operation to wrap the selection with the specified prefix and suffix\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports[\"wrap-selection\"] = function(event,operation) {\n\tif(operation.selStart === operation.selEnd) {\n\t\t// No selection; check if we're within the prefix/suffix\n\t\tif(operation.text.substring(operation.selStart - event.paramObject.prefix.length,operation.selStart + event.paramObject.suffix.length) === event.paramObject.prefix + event.paramObject.suffix) {\n\t\t\t// Remove the prefix and suffix unless they comprise the entire text\n\t\t\tif(operation.selStart > event.paramObject.prefix.length || (operation.selEnd + event.paramObject.suffix.length) < operation.text.length ) {\n\t\t\t\toperation.cutStart = operation.selStart - event.paramObject.prefix.length;\n\t\t\t\toperation.cutEnd = operation.selEnd + event.paramObject.suffix.length;\n\t\t\t\toperation.replacement = \"\";\n\t\t\t\toperation.newSelStart = operation.cutStart;\n\t\t\t\toperation.newSelEnd = operation.newSelStart;\n\t\t\t}\n\t\t} else {\n\t\t\t// Wrap the cursor instead\n\t\t\toperation.cutStart = operation.selStart;\n\t\t\toperation.cutEnd = operation.selEnd;\n\t\t\toperation.replacement = event.paramObject.prefix + event.paramObject.suffix;\n\t\t\toperation.newSelStart = operation.selStart + event.paramObject.prefix.length;\n\t\t\toperation.newSelEnd = operation.newSelStart;\n\t\t}\n\t} else if(operation.text.substring(operation.selStart,operation.selStart + event.paramObject.prefix.length) === event.paramObject.prefix && operation.text.substring(operation.selEnd - event.paramObject.suffix.length,operation.selEnd) === event.paramObject.suffix) {\n\t\t// Prefix and suffix are already present, so remove them\n\t\toperation.cutStart = operation.selStart;\n\t\toperation.cutEnd = operation.selEnd;\n\t\toperation.replacement = operation.selection.substring(event.paramObject.prefix.length,operation.selection.length - event.paramObject.suffix.length);\n\t\toperation.newSelStart = operation.selStart;\n\t\toperation.newSelEnd = operation.selStart + operation.replacement.length;\n\t} else {\n\t\t// Add the prefix and suffix\n\t\toperation.cutStart = operation.selStart;\n\t\toperation.cutEnd = operation.selEnd;\n\t\toperation.replacement = event.paramObject.prefix + operation.selection + event.paramObject.suffix;\n\t\toperation.newSelStart = operation.selStart;\n\t\toperation.newSelEnd = operation.selStart + operation.replacement.length;\n\t}\n};\n\n})();\n", "title": "$:/core/modules/editor/operations/text/wrap-selection.js", "type": "application/javascript", "module-type": "texteditoroperation" }, "$:/core/modules/filters/addprefix.js": { "text": "/*\\\ntitle: $:/core/modules/filters/addprefix.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for adding a prefix to each title in the list. This is\nespecially useful in contexts where only a filter expression is allowed\nand macro substitution isn't available.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.addprefix = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push(operator.operand + title);\n\t});\n\treturn results;\n};\n\n})();\n", "title": "$:/core/modules/filters/addprefix.js", "type": "application/javascript", "module-type": "filteroperator" }, "$:/core/modules/filters/addsuffix.js": { "text": "/*\\\ntitle: $:/core/modules/filters/addsuffix.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for adding a suffix to each title in the list. This is\nespecially useful in contexts where only a filter expression is allowed\nand macro substitution isn't available.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.addsuffix = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push(title + operator.operand);\n\t});\n\treturn results;\n};\n\n})();\n", "title": "$:/core/modules/filters/addsuffix.js", "type": "application/javascript", "module-type": "filteroperator" }, "$:/core/modules/filters/after.js": { "text": "/*\\\ntitle: $:/core/modules/filters/after.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator returning the tiddler from the current list that is after the tiddler named in the operand.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.after = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push(title);\n\t});\n\tvar index = results.indexOf(operator.operand);\n\tif(index === -1 || index > (results.length - 2)) {\n\t\treturn [];\n\t} else {\n\t\treturn [results[index + 1]];\n\t}\n};\n\n})();\n", "title": "$:/core/modules/filters/after.js", "type": "application/javascript", "module-type": "filteroperator" }, "$:/core/modules/filters/all/current.js": { "text": "/*\\\ntitle: $:/core/modules/filters/all/current.js\ntype: application/javascript\nmodule-type: allfilteroperator\n\nFilter function for [all[current]]\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.current = function(source,prefix,options) {\n\tvar currTiddlerTitle = options.widget && options.widget.getVariable(\"currentTiddler\");\n\tif(currTiddlerTitle) {\n\t\treturn [currTiddlerTitle];\n\t} else {\n\t\treturn [];\n\t}\n};\n\n})();\n", "title": "$:/core/modules/filters/all/current.js", "type": "application/javascript", "module-type": "allfilteroperator" }, "$:/core/modules/filters/all/missing.js": { "text": "/*\\\ntitle: $:/core/modules/filters/all/missing.js\ntype: application/javascript\nmodule-type: allfilteroperator\n\nFilter function for [all[missing]]\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.missing = function(source,prefix,options) {\n\treturn options.wiki.getMissingTitles();\n};\n\n})();\n", "title": "$:/core/modules/filters/all/missing.js", "type": "application/javascript", "module-type": "allfilteroperator" }, "$:/core/modules/filters/all/orphans.js": { "text": "/*\\\ntitle: $:/core/modules/filters/all/orphans.js\ntype: application/javascript\nmodule-type: allfilteroperator\n\nFilter function for [all[orphans]]\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.orphans = function(source,prefix,options) {\n\treturn options.wiki.getOrphanTitles();\n};\n\n})();\n", "title": "$:/core/modules/filters/all/orphans.js", "type": "application/javascript", "module-type": "allfilteroperator" }, "$:/core/modules/filters/all/shadows.js": { "text": "/*\\\ntitle: $:/core/modules/filters/all/shadows.js\ntype: application/javascript\nmodule-type: allfilteroperator\n\nFilter function for [all[shadows]]\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.shadows = function(source,prefix,options) {\n\treturn options.wiki.allShadowTitles();\n};\n\n})();\n", "title": "$:/core/modules/filters/all/shadows.js", "type": "application/javascript", "module-type": "allfilteroperator" }, "$:/core/modules/filters/all/tiddlers.js": { "text": "/*\\\ntitle: $:/core/modules/filters/all/tiddlers.js\ntype: application/javascript\nmodule-type: allfilteroperator\n\nFilter function for [all[tiddlers]]\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.tiddlers = function(source,prefix,options) {\n\treturn options.wiki.allTitles();\n};\n\n})();\n", "title": "$:/core/modules/filters/all/tiddlers.js", "type": "application/javascript", "module-type": "allfilteroperator" }, "$:/core/modules/filters/all.js": { "text": "/*\\\ntitle: $:/core/modules/filters/all.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for selecting tiddlers\n\n[all[shadows+tiddlers]]\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar allFilterOperators;\n\nfunction getAllFilterOperators() {\n\tif(!allFilterOperators) {\n\t\tallFilterOperators = {};\n\t\t$tw.modules.applyMethods(\"allfilteroperator\",allFilterOperators);\n\t}\n\treturn allFilterOperators;\n}\n\n/*\nExport our filter function\n*/\nexports.all = function(source,operator,options) {\n\t// Get our suboperators\n\tvar allFilterOperators = getAllFilterOperators();\n\t// Cycle through the suboperators accumulating their results\n\tvar results = [],\n\t\tsubops = operator.operand.split(\"+\");\n\t// Check for common optimisations\n\tif(subops.length === 1 && subops[0] === \"\") {\n\t\treturn source;\n\t} else if(subops.length === 1 && subops[0] === \"tiddlers\") {\n\t\treturn options.wiki.each;\n\t} else if(subops.length === 1 && subops[0] === \"shadows\") {\n\t\treturn options.wiki.eachShadow;\n\t} else if(subops.length === 2 && subops[0] === \"tiddlers\" && subops[1] === \"shadows\") {\n\t\treturn options.wiki.eachTiddlerPlusShadows;\n\t} else if(subops.length === 2 && subops[0] === \"shadows\" && subops[1] === \"tiddlers\") {\n\t\treturn options.wiki.eachShadowPlusTiddlers;\n\t}\n\t// Do it the hard way\n\tfor(var t=0; t<subops.length; t++) {\n\t\tvar subop = allFilterOperators[subops[t]];\n\t\tif(subop) {\n\t\t\t$tw.utils.pushTop(results,subop(source,operator.prefix,options));\n\t\t}\n\t}\n\treturn results;\n};\n\n})();\n", "title": "$:/core/modules/filters/all.js", "type": "application/javascript", "module-type": "filteroperator" }, "$:/core/modules/filters/backlinks.js": { "text": "/*\\\ntitle: $:/core/modules/filters/backlinks.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for returning all the backlinks from a tiddler\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.backlinks = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\t$tw.utils.pushTop(results,options.wiki.getTiddlerBacklinks(title));\n\t});\n\treturn results;\n};\n\n})();\n", "title": "$:/core/modules/filters/backlinks.js", "type": "application/javascript", "module-type": "filteroperator" }, "$:/core/modules/filters/before.js": { "text": "/*\\\ntitle: $:/core/modules/filters/before.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator returning the tiddler from the current list that is before the tiddler named in the operand.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.before = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push(title);\n\t});\n\tvar index = results.indexOf(operator.operand);\n\tif(index <= 0) {\n\t\treturn [];\n\t} else {\n\t\treturn [results[index - 1]];\n\t}\n};\n\n})();\n", "title": "$:/core/modules/filters/before.js", "type": "application/javascript", "module-type": "filteroperator" }, "$:/core/modules/filters/commands.js": { "text": "/*\\\ntitle: $:/core/modules/filters/commands.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for returning the names of the commands available in this wiki\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.commands = function(source,operator,options) {\n\tvar results = [];\n\t$tw.utils.each($tw.commands,function(commandInfo,name) {\n\t\tresults.push(name);\n\t});\n\tresults.sort();\n\treturn results;\n};\n\n})();\n", "title": "$:/core/modules/filters/commands.js", "type": "application/javascript", "module-type": "filteroperator" }, "$:/core/modules/filters/days.js": { "text": "/*\\\ntitle: $:/core/modules/filters/days.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator that selects tiddlers with a specified date field within a specified date interval.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.days = function(source,operator,options) {\n\tvar results = [],\n\t\tfieldName = operator.suffix || \"modified\",\n\t\tdayInterval = (parseInt(operator.operand,10)||0),\n\t\tdayIntervalSign = $tw.utils.sign(dayInterval),\n\t\ttargetTimeStamp = (new Date()).setHours(0,0,0,0) + 1000*60*60*24*dayInterval,\n\t\tisWithinDays = function(dateField) {\n\t\t\tvar sign = $tw.utils.sign(targetTimeStamp - (new Date(dateField)).setHours(0,0,0,0));\n\t\t\treturn sign === 0 || sign === dayIntervalSign;\n\t\t};\n\n\tif(operator.prefix === \"!\") {\n\t\ttargetTimeStamp = targetTimeStamp - 1000*60*60*24*dayIntervalSign;\n\t\tsource(function(tiddler,title) {\n\t\t\tif(tiddler && tiddler.fields[fieldName]) {\n\t\t\t\tif(!isWithinDays($tw.utils.parseDate(tiddler.fields[fieldName]))) {\n\t\t\t\t\tresults.push(title);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(tiddler && tiddler.fields[fieldName]) {\n\t\t\t\tif(isWithinDays($tw.utils.parseDate(tiddler.fields[fieldName]))) {\n\t\t\t\t\tresults.push(title);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n", "title": "$:/core/modules/filters/days.js", "type": "application/javascript", "module-type": "filteroperator" }, "$:/core/modules/filters/each.js": { "text": "/*\\\ntitle: $:/core/modules/filters/each.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator that selects one tiddler for each unique value of the specified field.\nWith suffix \"list\", selects all tiddlers that are values in a specified list field.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.each = function(source,operator,options) {\n\tvar results =[] ,\n\t\tvalue,values = {},\n\t\tfield = operator.operand || \"title\";\n\tif(operator.suffix !== \"list-item\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(tiddler) {\n\t\t\t\tvalue = (field === \"title\") ? title : tiddler.getFieldString(field);\n\t\t\t\tif(!$tw.utils.hop(values,value)) {\n\t\t\t\t\tvalues[value] = true;\n\t\t\t\t\tresults.push(title);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(tiddler) {\n\t\t\t\t$tw.utils.each(\n\t\t\t\t\toptions.wiki.getTiddlerList(title,field),\n\t\t\t\t\tfunction(value) {\n\t\t\t\t\t\tif(!$tw.utils.hop(values,value)) {\n\t\t\t\t\t\t\tvalues[value] = true;\n\t\t\t\t\t\t\tresults.push(value);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n", "title": "$:/core/modules/filters/each.js", "type": "application/javascript", "module-type": "filteroperator" }, "$:/core/modules/filters/eachday.js": { "text": "/*\\\ntitle: $:/core/modules/filters/eachday.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator that selects one tiddler for each unique day covered by the specified date field\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.eachday = function(source,operator,options) {\n\tvar results = [],\n\t\tvalues = [],\n\t\tfieldName = operator.operand || \"modified\";\n\t// Function to convert a date/time to a date integer\n\tvar toDate = function(value) {\n\t\tvalue = (new Date(value)).setHours(0,0,0,0);\n\t\treturn value+0;\n\t};\n\tsource(function(tiddler,title) {\n\t\tif(tiddler && tiddler.fields[fieldName]) {\n\t\t\tvar value = toDate($tw.utils.parseDate(tiddler.fields[fieldName]));\n\t\t\tif(values.indexOf(value) === -1) {\n\t\t\t\tvalues.push(value);\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t}\n\t});\n\treturn results;\n};\n\n})();\n", "title": "$:/core/modules/filters/eachday.js", "type": "application/javascript", "module-type": "filteroperator" }, "$:/core/modules/filters/editiondescription.js": { "text": "/*\\\ntitle: $:/core/modules/filters/editiondescription.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for returning the descriptions of the specified edition names\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.editiondescription = function(source,operator,options) {\n\tvar results = [],\n\t\teditionInfo = $tw.utils.getEditionInfo();\n\tif(editionInfo) {\n\t\tsource(function(tiddler,title) {\n\t\t\tif($tw.utils.hop(editionInfo,title)) {\n\t\t\t\tresults.push(editionInfo[title].description || \"\");\t\t\t\t\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n", "title": "$:/core/modules/filters/editiondescription.js", "type": "application/javascript", "module-type": "filteroperator" }, "$:/core/modules/filters/editions.js": { "text": "/*\\\ntitle: $:/core/modules/filters/editions.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for returning the names of the available editions in this wiki\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.editions = function(source,operator,options) {\n\tvar results = [],\n\t\teditionInfo = $tw.utils.getEditionInfo();\n\tif(editionInfo) {\n\t\t$tw.utils.each(editionInfo,function(info,name) {\n\t\t\tresults.push(name);\n\t\t});\n\t}\n\tresults.sort();\n\treturn results;\n};\n\n})();\n", "title": "$:/core/modules/filters/editions.js", "type": "application/javascript", "module-type": "filteroperator" }, "$:/core/modules/filters/field.js": { "text": "/*\\\ntitle: $:/core/modules/filters/field.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for comparing fields for equality\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.field = function(source,operator,options) {\n\tvar results = [],\n\t\tfieldname = (operator.suffix || operator.operator || \"title\").toLowerCase();\n\tif(operator.prefix === \"!\") {\n\t\tif(operator.regexp) {\n\t\t\tsource(function(tiddler,title) {\n\t\t\t\tif(tiddler) {\n\t\t\t\t\tvar text = tiddler.getFieldString(fieldname);\n\t\t\t\t\tif(text !== null && !operator.regexp.exec(text)) {\n\t\t\t\t\t\tresults.push(title);\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tresults.push(title);\n\t\t\t\t}\n\t\t\t});\n\t\t} else {\n\t\t\tsource(function(tiddler,title) {\n\t\t\t\tif(tiddler) {\n\t\t\t\t\tvar text = tiddler.getFieldString(fieldname);\n\t\t\t\t\tif(text !== null && text !== operator.operand) {\n\t\t\t\t\t\tresults.push(title);\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tresults.push(title);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t} else {\n\t\tif(operator.regexp) {\n\t\t\tsource(function(tiddler,title) {\n\t\t\t\tif(tiddler) {\n\t\t\t\t\tvar text = tiddler.getFieldString(fieldname);\n\t\t\t\t\tif(text !== null && !!operator.regexp.exec(text)) {\n\t\t\t\t\t\tresults.push(title);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t} else {\n\t\t\tsource(function(tiddler,title) {\n\t\t\t\tif(tiddler) {\n\t\t\t\t\tvar text = tiddler.getFieldString(fieldname);\n\t\t\t\t\tif(text !== null && text === operator.operand) {\n\t\t\t\t\t\tresults.push(title);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t}\n\treturn results;\n};\n\n})();\n", "title": "$:/core/modules/filters/field.js", "type": "application/javascript", "module-type": "filteroperator" }, "$:/core/modules/filters/fields.js": { "text": "/*\\\ntitle: $:/core/modules/filters/fields.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for returning the names of the fields on the selected tiddlers\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.fields = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tif(tiddler) {\n\t\t\tfor(var fieldName in tiddler.fields) {\n\t\t\t\t$tw.utils.pushTop(results,fieldName);\n\t\t\t}\n\t\t}\n\t});\n\treturn results;\n};\n\n})();\n", "title": "$:/core/modules/filters/fields.js", "type": "application/javascript", "module-type": "filteroperator" }, "$:/core/modules/filters/get.js": { "text": "/*\\\ntitle: $:/core/modules/filters/get.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for replacing tiddler titles by the value of the field specified in the operand.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.get = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tif(tiddler) {\n\t\t\tvar value = tiddler.getFieldString(operator.operand);\n\t\t\tif(value) {\n\t\t\t\tresults.push(value);\n\t\t\t}\n\t\t}\n\t});\n\treturn results;\n};\n\n})();\n", "title": "$:/core/modules/filters/get.js", "type": "application/javascript", "module-type": "filteroperator" }, "$:/core/modules/filters/getindex.js": { "text": "/*\\\ntitle: $:/core/modules/filters/getindex.js\ntype: application/javascript\nmodule-type: filteroperator\n\nreturns the value at a given index of datatiddlers\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.getindex = function(source,operator,options) {\n\tvar data,title,results = [];\n\tif(operator.operand){\n\t\tsource(function(tiddler,title) {\n\t\t\ttitle = tiddler ? tiddler.fields.title : title;\n\t\t\tdata = options.wiki.extractTiddlerDataItem(tiddler,operator.operand);\n\t\t\tif(data) {\n\t\t\t\tresults.push(data);\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n", "title": "$:/core/modules/filters/getindex.js", "type": "application/javascript", "module-type": "filteroperator" }, "$:/core/modules/filters/has.js": { "text": "/*\\\ntitle: $:/core/modules/filters/has.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for checking if a tiddler has the specified field\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.has = function(source,operator,options) {\n\tvar results = [];\n\tif(operator.prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(!tiddler || (tiddler && (!$tw.utils.hop(tiddler.fields,operator.operand) || tiddler.fields[operator.operand] === \"\"))) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(tiddler && $tw.utils.hop(tiddler.fields,operator.operand) && !(tiddler.fields[operator.operand] === \"\" || tiddler.fields[operator.operand].length === 0)) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n", "title": "$:/core/modules/filters/has.js", "type": "application/javascript", "module-type": "filteroperator" }, "$:/core/modules/filters/haschanged.js": { "text": "/*\\\ntitle: $:/core/modules/filters/haschanged.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator returns tiddlers from the list that have a non-zero changecount.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.haschanged = function(source,operator,options) {\n\tvar results = [];\n\tif(operator.prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(options.wiki.getChangeCount(title) === 0) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(options.wiki.getChangeCount(title) > 0) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n", "title": "$:/core/modules/filters/haschanged.js", "type": "application/javascript", "module-type": "filteroperator" }, "$:/core/modules/filters/indexes.js": { "text": "/*\\\ntitle: $:/core/modules/filters/indexes.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for returning the indexes of a data tiddler\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.indexes = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tvar data = options.wiki.getTiddlerDataCached(title);\n\t\tif(data) {\n\t\t\t$tw.utils.pushTop(results,Object.keys(data));\n\t\t}\n\t});\n\tresults.sort();\n\treturn results;\n};\n\n})();\n", "title": "$:/core/modules/filters/indexes.js", "type": "application/javascript", "module-type": "filteroperator" }, "$:/core/modules/filters/is/current.js": { "text": "/*\\\ntitle: $:/core/modules/filters/is/current.js\ntype: application/javascript\nmodule-type: isfilteroperator\n\nFilter function for [is[current]]\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.current = function(source,prefix,options) {\n\tvar results = [],\n\t\tcurrTiddlerTitle = options.widget && options.widget.getVariable(\"currentTiddler\");\n\tif(prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(title !== currTiddlerTitle) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(title === currTiddlerTitle) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n", "title": "$:/core/modules/filters/is/current.js", "type": "application/javascript", "module-type": "isfilteroperator" }, "$:/core/modules/filters/is/image.js": { "text": "/*\\\ntitle: $:/core/modules/filters/is/image.js\ntype: application/javascript\nmodule-type: isfilteroperator\n\nFilter function for [is[image]]\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.image = function(source,prefix,options) {\n\tvar results = [];\n\tif(prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(!options.wiki.isImageTiddler(title)) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(options.wiki.isImageTiddler(title)) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n", "title": "$:/core/modules/filters/is/image.js", "type": "application/javascript", "module-type": "isfilteroperator" }, "$:/core/modules/filters/is/missing.js": { "text": "/*\\\ntitle: $:/core/modules/filters/is/missing.js\ntype: application/javascript\nmodule-type: isfilteroperator\n\nFilter function for [is[missing]]\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.missing = function(source,prefix,options) {\n\tvar results = [];\n\tif(prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(options.wiki.tiddlerExists(title)) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(!options.wiki.tiddlerExists(title)) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n", "title": "$:/core/modules/filters/is/missing.js", "type": "application/javascript", "module-type": "isfilteroperator" }, "$:/core/modules/filters/is/orphan.js": { "text": "/*\\\ntitle: $:/core/modules/filters/is/orphan.js\ntype: application/javascript\nmodule-type: isfilteroperator\n\nFilter function for [is[orphan]]\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.orphan = function(source,prefix,options) {\n\tvar results = [],\n\t\torphanTitles = options.wiki.getOrphanTitles();\n\tif(prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(orphanTitles.indexOf(title) === -1) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(orphanTitles.indexOf(title) !== -1) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n", "title": "$:/core/modules/filters/is/orphan.js", "type": "application/javascript", "module-type": "isfilteroperator" }, "$:/core/modules/filters/is/shadow.js": { "text": "/*\\\ntitle: $:/core/modules/filters/is/shadow.js\ntype: application/javascript\nmodule-type: isfilteroperator\n\nFilter function for [is[shadow]]\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.shadow = function(source,prefix,options) {\n\tvar results = [];\n\tif(prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(!options.wiki.isShadowTiddler(title)) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(options.wiki.isShadowTiddler(title)) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n", "title": "$:/core/modules/filters/is/shadow.js", "type": "application/javascript", "module-type": "isfilteroperator" }, "$:/core/modules/filters/is/system.js": { "text": "/*\\\ntitle: $:/core/modules/filters/is/system.js\ntype: application/javascript\nmodule-type: isfilteroperator\n\nFilter function for [is[system]]\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.system = function(source,prefix,options) {\n\tvar results = [];\n\tif(prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(!options.wiki.isSystemTiddler(title)) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(options.wiki.isSystemTiddler(title)) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n", "title": "$:/core/modules/filters/is/system.js", "type": "application/javascript", "module-type": "isfilteroperator" }, "$:/core/modules/filters/is/tag.js": { "text": "/*\\\ntitle: $:/core/modules/filters/is/tag.js\ntype: application/javascript\nmodule-type: isfilteroperator\n\nFilter function for [is[tag]]\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.tag = function(source,prefix,options) {\n\tvar results = [],\n\t\ttagMap = options.wiki.getTagMap();\n\tif(prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(!$tw.utils.hop(tagMap,title)) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tif($tw.utils.hop(tagMap,title)) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n", "title": "$:/core/modules/filters/is/tag.js", "type": "application/javascript", "module-type": "isfilteroperator" }, "$:/core/modules/filters/is/tiddler.js": { "text": "/*\\\ntitle: $:/core/modules/filters/is/tiddler.js\ntype: application/javascript\nmodule-type: isfilteroperator\n\nFilter function for [is[tiddler]]\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.tiddler = function(source,prefix,options) {\n\tvar results = [];\n\tif(prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(!options.wiki.tiddlerExists(title)) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(options.wiki.tiddlerExists(title)) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n", "title": "$:/core/modules/filters/is/tiddler.js", "type": "application/javascript", "module-type": "isfilteroperator" }, "$:/core/modules/filters/is.js": { "text": "/*\\\ntitle: $:/core/modules/filters/is.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for checking tiddler properties\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar isFilterOperators;\n\nfunction getIsFilterOperators() {\n\tif(!isFilterOperators) {\n\t\tisFilterOperators = {};\n\t\t$tw.modules.applyMethods(\"isfilteroperator\",isFilterOperators);\n\t}\n\treturn isFilterOperators;\n}\n\n/*\nExport our filter function\n*/\nexports.is = function(source,operator,options) {\n\t// Dispatch to the correct isfilteroperator\n\tvar isFilterOperators = getIsFilterOperators();\n\tvar isFilterOperator = isFilterOperators[operator.operand];\n\tif(isFilterOperator) {\n\t\treturn isFilterOperator(source,operator.prefix,options);\n\t} else {\n\t\treturn [$tw.language.getString(\"Error/IsFilterOperator\")];\n\t}\n};\n\n})();\n", "title": "$:/core/modules/filters/is.js", "type": "application/javascript", "module-type": "filteroperator" }, "$:/core/modules/filters/limit.js": { "text": "/*\\\ntitle: $:/core/modules/filters/limit.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for chopping the results to a specified maximum number of entries\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.limit = function(source,operator,options) {\n\tvar results = [];\n\t// Convert to an array\n\tsource(function(tiddler,title) {\n\t\tresults.push(title);\n\t});\n\t// Slice the array if necessary\n\tvar limit = Math.min(results.length,parseInt(operator.operand,10));\n\tif(operator.prefix === \"!\") {\n\t\tresults = results.slice(-limit);\n\t} else {\n\t\tresults = results.slice(0,limit);\n\t}\n\treturn results;\n};\n\n})();\n", "title": "$:/core/modules/filters/limit.js", "type": "application/javascript", "module-type": "filteroperator" }, "$:/core/modules/filters/links.js": { "text": "/*\\\ntitle: $:/core/modules/filters/links.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for returning all the links from a tiddler\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.links = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\t$tw.utils.pushTop(results,options.wiki.getTiddlerLinks(title));\n\t});\n\treturn results;\n};\n\n})();\n", "title": "$:/core/modules/filters/links.js", "type": "application/javascript", "module-type": "filteroperator" }, "$:/core/modules/filters/list.js": { "text": "/*\\\ntitle: $:/core/modules/filters/list.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator returning the tiddlers whose title is listed in the operand tiddler\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.list = function(source,operator,options) {\n\tvar results = [],\n\t\ttr = $tw.utils.parseTextReference(operator.operand),\n\t\tcurrTiddlerTitle = options.widget && options.widget.getVariable(\"currentTiddler\"),\n\t\tlist = options.wiki.getTiddlerList(tr.title || currTiddlerTitle,tr.field,tr.index);\n\tif(operator.prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(list.indexOf(title) === -1) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tresults = list;\n\t}\n\treturn results;\n};\n\n})();\n", "title": "$:/core/modules/filters/list.js", "type": "application/javascript", "module-type": "filteroperator" }, "$:/core/modules/filters/listed.js": { "text": "/*\\\ntitle: $:/core/modules/filters/listed.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator returning all tiddlers that have the selected tiddlers in a list\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.listed = function(source,operator,options) {\n\tvar field = operator.operand || \"list\",\n\t\tresults = [];\n\tsource(function(tiddler,title) {\n\t\t$tw.utils.pushTop(results,options.wiki.findListingsOfTiddler(title,field));\n\t});\n\treturn results;\n};\n\n})();\n", "title": "$:/core/modules/filters/listed.js", "type": "application/javascript", "module-type": "filteroperator" }, "$:/core/modules/filters/listops.js": { "text": "/*\\\ntitle: $:/core/modules/filters/listops.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operators for manipulating the current selection list\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nReverse list\n*/\nexports.reverse = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tresults.unshift(title);\n\t});\n\treturn results;\n};\n\n/*\nFirst entry/entries in list\n*/\nexports.first = function(source,operator,options) {\n\tvar count = parseInt(operator.operand) || 1,\n\t\tresults = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push(title);\n\t});\n\treturn results.slice(0,count);\n};\n\n/*\nLast entry/entries in list\n*/\nexports.last = function(source,operator,options) {\n\tvar count = parseInt(operator.operand) || 1,\n\t\tresults = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push(title);\n\t});\n\treturn results.slice(-count);\n};\n\n/*\nAll but the first entry/entries of the list\n*/\nexports.rest = function(source,operator,options) {\n\tvar count = parseInt(operator.operand) || 1,\n\t\tresults = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push(title);\n\t});\n\treturn results.slice(count);\n};\nexports.butfirst = exports.rest;\nexports.bf = exports.rest;\n\n/*\nAll but the last entry/entries of the list\n*/\nexports.butlast = function(source,operator,options) {\n\tvar count = parseInt(operator.operand) || 1,\n\t\tresults = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push(title);\n\t});\n\treturn results.slice(0,-count);\n};\nexports.bl = exports.butlast;\n\n/*\nThe nth member of the list\n*/\nexports.nth = function(source,operator,options) {\n\tvar count = parseInt(operator.operand) || 1,\n\t\tresults = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push(title);\n\t});\n\treturn results.slice(count - 1,count);\n};\n\n})();\n", "title": "$:/core/modules/filters/listops.js", "type": "application/javascript", "module-type": "filteroperator" }, "$:/core/modules/filters/modules.js": { "text": "/*\\\ntitle: $:/core/modules/filters/modules.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for returning the titles of the modules of a given type in this wiki\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.modules = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\t$tw.utils.each($tw.modules.types[title],function(moduleInfo,moduleName) {\n\t\t\tresults.push(moduleName);\n\t\t});\n\t});\n\tresults.sort();\n\treturn results;\n};\n\n})();\n", "title": "$:/core/modules/filters/modules.js", "type": "application/javascript", "module-type": "filteroperator" }, "$:/core/modules/filters/moduletypes.js": { "text": "/*\\\ntitle: $:/core/modules/filters/moduletypes.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for returning the names of the module types in this wiki\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.moduletypes = function(source,operator,options) {\n\tvar results = [];\n\t$tw.utils.each($tw.modules.types,function(moduleInfo,type) {\n\t\tresults.push(type);\n\t});\n\tresults.sort();\n\treturn results;\n};\n\n})();\n", "title": "$:/core/modules/filters/moduletypes.js", "type": "application/javascript", "module-type": "filteroperator" }, "$:/core/modules/filters/next.js": { "text": "/*\\\ntitle: $:/core/modules/filters/next.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator returning the tiddler whose title occurs next in the list supplied in the operand tiddler\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.next = function(source,operator,options) {\n\tvar results = [],\n\t\tlist = options.wiki.getTiddlerList(operator.operand);\n\tsource(function(tiddler,title) {\n\t\tvar match = list.indexOf(title);\n\t\t// increment match and then test if result is in range\n\t\tmatch++;\n\t\tif(match > 0 && match < list.length) {\n\t\t\tresults.push(list[match]);\n\t\t}\n\t});\n\treturn results;\n};\n\n})();\n", "title": "$:/core/modules/filters/next.js", "type": "application/javascript", "module-type": "filteroperator" }, "$:/core/modules/filters/plugintiddlers.js": { "text": "/*\\\ntitle: $:/core/modules/filters/plugintiddlers.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for returning the titles of the shadow tiddlers within a plugin\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.plugintiddlers = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tvar pluginInfo = options.wiki.getPluginInfo(title) || options.wiki.getTiddlerDataCached(title,{tiddlers:[]});\n\t\tif(pluginInfo && pluginInfo.tiddlers) {\n\t\t\t$tw.utils.each(pluginInfo.tiddlers,function(fields,title) {\n\t\t\t\tresults.push(title);\n\t\t\t});\n\t\t}\n\t});\n\tresults.sort();\n\treturn results;\n};\n\n})();\n", "title": "$:/core/modules/filters/plugintiddlers.js", "type": "application/javascript", "module-type": "filteroperator" }, "$:/core/modules/filters/prefix.js": { "text": "/*\\\ntitle: $:/core/modules/filters/prefix.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for checking if a title starts with a prefix\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.prefix = function(source,operator,options) {\n\tvar results = [];\n\tif(operator.prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(title.substr(0,operator.operand.length) !== operator.operand) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(title.substr(0,operator.operand.length) === operator.operand) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n", "title": "$:/core/modules/filters/prefix.js", "type": "application/javascript", "module-type": "filteroperator" }, "$:/core/modules/filters/previous.js": { "text": "/*\\\ntitle: $:/core/modules/filters/previous.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator returning the tiddler whose title occurs immediately prior in the list supplied in the operand tiddler\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.previous = function(source,operator,options) {\n\tvar results = [],\n\t\tlist = options.wiki.getTiddlerList(operator.operand);\n\tsource(function(tiddler,title) {\n\t\tvar match = list.indexOf(title);\n\t\t// increment match and then test if result is in range\n\t\tmatch--;\n\t\tif(match >= 0) {\n\t\t\tresults.push(list[match]);\n\t\t}\n\t});\n\treturn results;\n};\n\n})();\n", "title": "$:/core/modules/filters/previous.js", "type": "application/javascript", "module-type": "filteroperator" }, "$:/core/modules/filters/regexp.js": { "text": "/*\\\ntitle: $:/core/modules/filters/regexp.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for regexp matching\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.regexp = function(source,operator,options) {\n\tvar results = [],\n\t\tfieldname = (operator.suffix || \"title\").toLowerCase(),\n\t\tregexpString, regexp, flags = \"\", match,\n\t\tgetFieldString = function(tiddler,title) {\n\t\t\tif(tiddler) {\n\t\t\t\treturn tiddler.getFieldString(fieldname);\n\t\t\t} else if(fieldname === \"title\") {\n\t\t\t\treturn title;\n\t\t\t} else {\n\t\t\t\treturn null;\n\t\t\t}\n\t\t};\n\t// Process flags and construct regexp\n\tregexpString = operator.operand;\n\tmatch = /^\\(\\?([gim]+)\\)/.exec(regexpString);\n\tif(match) {\n\t\tflags = match[1];\n\t\tregexpString = regexpString.substr(match[0].length);\n\t} else {\n\t\tmatch = /\\(\\?([gim]+)\\)$/.exec(regexpString);\n\t\tif(match) {\n\t\t\tflags = match[1];\n\t\t\tregexpString = regexpString.substr(0,regexpString.length - match[0].length);\n\t\t}\n\t}\n\ttry {\n\t\tregexp = new RegExp(regexpString,flags);\n\t} catch(e) {\n\t\treturn [\"\" + e];\n\t}\n\t// Process the incoming tiddlers\n\tif(operator.prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tvar text = getFieldString(tiddler,title);\n\t\t\tif(text !== null) {\n\t\t\t\tif(!regexp.exec(text)) {\n\t\t\t\t\tresults.push(title);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tvar text = getFieldString(tiddler,title);\n\t\t\tif(text !== null) {\n\t\t\t\tif(!!regexp.exec(text)) {\n\t\t\t\t\tresults.push(title);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n", "title": "$:/core/modules/filters/regexp.js", "type": "application/javascript", "module-type": "filteroperator" }, "$:/core/modules/filters/removeprefix.js": { "text": "/*\\\ntitle: $:/core/modules/filters/removeprefix.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for removing a prefix from each title in the list. Titles that do not start with the prefix are removed.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.removeprefix = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tif(title.substr(0,operator.operand.length) === operator.operand) {\n\t\t\tresults.push(title.substr(operator.operand.length));\n\t\t}\n\t});\n\treturn results;\n};\n\n})();\n", "title": "$:/core/modules/filters/removeprefix.js", "type": "application/javascript", "module-type": "filteroperator" }, "$:/core/modules/filters/removesuffix.js": { "text": "/*\\\ntitle: $:/core/modules/filters/removesuffix.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for removing a suffix from each title in the list. Titles that do not end with the suffix are removed.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.removesuffix = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tif(title.substr(-operator.operand.length) === operator.operand) {\n\t\t\tresults.push(title.substr(0,title.length - operator.operand.length));\n\t\t}\n\t});\n\treturn results;\n};\n\n})();\n", "title": "$:/core/modules/filters/removesuffix.js", "type": "application/javascript", "module-type": "filteroperator" }, "$:/core/modules/filters/sameday.js": { "text": "/*\\\ntitle: $:/core/modules/filters/sameday.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator that selects tiddlers with a modified date field on the same day as the provided value.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.sameday = function(source,operator,options) {\n\tvar results = [],\n\t\tfieldName = operator.suffix || \"modified\",\n\t\ttargetDate = (new Date($tw.utils.parseDate(operator.operand))).setHours(0,0,0,0);\n\t// Function to convert a date/time to a date integer\n\tvar isSameDay = function(dateField) {\n\t\t\treturn (new Date(dateField)).setHours(0,0,0,0) === targetDate;\n\t\t};\n\tsource(function(tiddler,title) {\n\t\tif(tiddler && tiddler.fields[fieldName]) {\n\t\t\tif(isSameDay($tw.utils.parseDate(tiddler.fields[fieldName]))) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t}\n\t});\n\treturn results;\n};\n\n})();\n", "title": "$:/core/modules/filters/sameday.js", "type": "application/javascript", "module-type": "filteroperator" }, "$:/core/modules/filters/search.js": { "text": "/*\\\ntitle: $:/core/modules/filters/search.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for searching for the text in the operand tiddler\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.search = function(source,operator,options) {\n\tvar invert = operator.prefix === \"!\";\n\tif(operator.suffix) {\n\t\treturn options.wiki.search(operator.operand,{\n\t\t\tsource: source,\n\t\t\tinvert: invert,\n\t\t\tfield: operator.suffix\n\t\t});\n\t} else {\n\t\treturn options.wiki.search(operator.operand,{\n\t\t\tsource: source,\n\t\t\tinvert: invert\n\t\t});\n\t}\n};\n\n})();\n", "title": "$:/core/modules/filters/search.js", "type": "application/javascript", "module-type": "filteroperator" }, "$:/core/modules/filters/shadowsource.js": { "text": "/*\\\ntitle: $:/core/modules/filters/shadowsource.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for returning the source plugins for shadow tiddlers\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.shadowsource = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tvar source = options.wiki.getShadowSource(title);\n\t\tif(source) {\n\t\t\t$tw.utils.pushTop(results,source);\n\t\t}\n\t});\n\tresults.sort();\n\treturn results;\n};\n\n})();\n", "title": "$:/core/modules/filters/shadowsource.js", "type": "application/javascript", "module-type": "filteroperator" }, "$:/core/modules/filters/sort.js": { "text": "/*\\\ntitle: $:/core/modules/filters/sort.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for sorting\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.sort = function(source,operator,options) {\n\tvar results = prepare_results(source);\n\toptions.wiki.sortTiddlers(results,operator.operand || \"title\",operator.prefix === \"!\",false,false);\n\treturn results;\n};\n\nexports.nsort = function(source,operator,options) {\n\tvar results = prepare_results(source);\n\toptions.wiki.sortTiddlers(results,operator.operand || \"title\",operator.prefix === \"!\",false,true);\n\treturn results;\n};\n\nexports.sortcs = function(source,operator,options) {\n\tvar results = prepare_results(source);\n\toptions.wiki.sortTiddlers(results,operator.operand || \"title\",operator.prefix === \"!\",true,false);\n\treturn results;\n};\n\nexports.nsortcs = function(source,operator,options) {\n\tvar results = prepare_results(source);\n\toptions.wiki.sortTiddlers(results,operator.operand || \"title\",operator.prefix === \"!\",true,true);\n\treturn results;\n};\n\nvar prepare_results = function (source) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push(title);\n\t});\n\treturn results;\n};\n\n})();\n", "title": "$:/core/modules/filters/sort.js", "type": "application/javascript", "module-type": "filteroperator" }, "$:/core/modules/filters/splitbefore.js": { "text": "/*\\\ntitle: $:/core/modules/filters/splitbefore.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator that splits each result on the first occurance of the specified separator and returns the unique values.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.splitbefore = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tvar parts = title.split(operator.operand);\n\t\tif(parts.length === 1) {\n\t\t\t$tw.utils.pushTop(results,parts[0]);\n\t\t} else {\n\t\t\t$tw.utils.pushTop(results,parts[0] + operator.operand);\n\t\t}\n\t});\n\treturn results;\n};\n\n})();\n", "title": "$:/core/modules/filters/splitbefore.js", "type": "application/javascript", "module-type": "filteroperator" }, "$:/core/modules/filters/storyviews.js": { "text": "/*\\\ntitle: $:/core/modules/filters/storyviews.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for returning the names of the story views in this wiki\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.storyviews = function(source,operator,options) {\n\tvar results = [],\n\t\tstoryviews = {};\n\t$tw.modules.applyMethods(\"storyview\",storyviews);\n\t$tw.utils.each(storyviews,function(info,name) {\n\t\tresults.push(name);\n\t});\n\tresults.sort();\n\treturn results;\n};\n\n})();\n", "title": "$:/core/modules/filters/storyviews.js", "type": "application/javascript", "module-type": "filteroperator" }, "$:/core/modules/filters/suffix.js": { "text": "/*\\\ntitle: $:/core/modules/filters/suffix.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for checking if a title ends with a suffix\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.suffix = function(source,operator,options) {\n\tvar results = [];\n\tif(operator.prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(title.substr(-operator.operand.length) !== operator.operand) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(title.substr(-operator.operand.length) === operator.operand) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n", "title": "$:/core/modules/filters/suffix.js", "type": "application/javascript", "module-type": "filteroperator" }, "$:/core/modules/filters/tag.js": { "text": "/*\\\ntitle: $:/core/modules/filters/tag.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for checking for the presence of a tag\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.tag = function(source,operator,options) {\n\tvar results = [];\n\tif(operator.prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(tiddler && !tiddler.hasTag(operator.operand)) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(tiddler && tiddler.hasTag(operator.operand)) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t\tresults = options.wiki.sortByList(results,operator.operand);\n\t}\n\treturn results;\n};\n\n})();\n", "title": "$:/core/modules/filters/tag.js", "type": "application/javascript", "module-type": "filteroperator" }, "$:/core/modules/filters/tagging.js": { "text": "/*\\\ntitle: $:/core/modules/filters/tagging.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator returning all tiddlers that are tagged with the selected tiddlers\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.tagging = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\t$tw.utils.pushTop(results,options.wiki.getTiddlersWithTag(title));\n\t});\n\treturn results;\n};\n\n})();\n", "title": "$:/core/modules/filters/tagging.js", "type": "application/javascript", "module-type": "filteroperator" }, "$:/core/modules/filters/tags.js": { "text": "/*\\\ntitle: $:/core/modules/filters/tags.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator returning all the tags of the selected tiddlers\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.tags = function(source,operator,options) {\n\tvar tags = {};\n\tsource(function(tiddler,title) {\n\t\tvar t, length;\n\t\tif(tiddler && tiddler.fields.tags) {\n\t\t\tfor(t=0, length=tiddler.fields.tags.length; t<length; t++) {\n\t\t\t\ttags[tiddler.fields.tags[t]] = true;\n\t\t\t}\n\t\t}\n\t});\n\treturn Object.keys(tags);\n};\n\n})();\n", "title": "$:/core/modules/filters/tags.js", "type": "application/javascript", "module-type": "filteroperator" }, "$:/core/modules/filters/title.js": { "text": "/*\\\ntitle: $:/core/modules/filters/title.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for comparing title fields for equality\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.title = function(source,operator,options) {\n\tvar results = [];\n\tif(operator.prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(tiddler && tiddler.fields.title !== operator.operand) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tresults.push(operator.operand);\n\t}\n\treturn results;\n};\n\n})();\n", "title": "$:/core/modules/filters/title.js", "type": "application/javascript", "module-type": "filteroperator" }, "$:/core/modules/filters/untagged.js": { "text": "/*\\\ntitle: $:/core/modules/filters/untagged.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator returning all the selected tiddlers that are untagged\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.untagged = function(source,operator,options) {\n\tvar results = [];\n\tif(operator.prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(tiddler && $tw.utils.isArray(tiddler.fields.tags) && tiddler.fields.tags.length > 0) {\n\t\t\t\t$tw.utils.pushTop(results,title);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(!tiddler || !tiddler.hasField(\"tags\") || ($tw.utils.isArray(tiddler.fields.tags) && tiddler.fields.tags.length === 0)) {\n\t\t\t\t$tw.utils.pushTop(results,title);\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n", "title": "$:/core/modules/filters/untagged.js", "type": "application/javascript", "module-type": "filteroperator" }, "$:/core/modules/filters/wikiparserrules.js": { "text": "/*\\\ntitle: $:/core/modules/filters/wikiparserrules.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for returning the names of the wiki parser rules in this wiki\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.wikiparserrules = function(source,operator,options) {\n\tvar results = [];\n\t$tw.utils.each($tw.modules.types.wikirule,function(mod) {\n\t\tvar exp = mod.exports;\n\t\tif(exp.types[operator.operand]) {\n\t\t\tresults.push(exp.name);\n\t\t}\n\t});\n\tresults.sort();\n\treturn results;\n};\n\n})();\n", "title": "$:/core/modules/filters/wikiparserrules.js", "type": "application/javascript", "module-type": "filteroperator" }, "$:/core/modules/filters/x-listops.js": { "text": "/*\\\ntitle: $:/core/modules/filters/x-listops.js\ntype: application/javascript\nmodule-type: filteroperator\n\nExtended filter operators to manipulate the current list.\n\n\\*/\n(function () {\n\n /*jslint node: true, browser: true */\n /*global $tw: false */\n \"use strict\";\n\n /*\n Fetch titles from the current list\n */\n var prepare_results = function (source) {\n var results = [];\n source(function (tiddler, title) {\n results.push(title);\n });\n return results;\n };\n\n /*\n Moves a number of items from the tail of the current list before the item named in the operand\n */\n exports.putbefore = function (source, operator) {\n var results = prepare_results(source),\n index = results.indexOf(operator.operand),\n count = parseInt(operator.suffix) || 1;\n return (index === -1) ?\n results.slice(0, -1) :\n results.slice(0, index).concat(results.slice(-count)).concat(results.slice(index, -count));\n };\n\n /*\n Moves a number of items from the tail of the current list after the item named in the operand\n */\n exports.putafter = function (source, operator) {\n var results = prepare_results(source),\n index = results.indexOf(operator.operand),\n count = parseInt(operator.suffix) || 1;\n return (index === -1) ?\n results.slice(0, -1) :\n results.slice(0, index + 1).concat(results.slice(-count)).concat(results.slice(index + 1, -count));\n };\n\n /*\n Replaces the item named in the operand with a number of items from the tail of the current list\n */\n exports.replace = function (source, operator) {\n var results = prepare_results(source),\n index = results.indexOf(operator.operand),\n count = parseInt(operator.suffix) || 1;\n return (index === -1) ?\n results.slice(0, -count) :\n results.slice(0, index).concat(results.slice(-count)).concat(results.slice(index + 1, -count));\n };\n\n /*\n Moves a number of items from the tail of the current list to the head of the list\n */\n exports.putfirst = function (source, operator) {\n var results = prepare_results(source),\n count = parseInt(operator.suffix) || 1;\n return results.slice(-count).concat(results.slice(0, -count));\n };\n\n /*\n Moves a number of items from the head of the current list to the tail of the list\n */\n exports.putlast = function (source, operator) {\n var results = prepare_results(source),\n count = parseInt(operator.suffix) || 1;\n return results.slice(count).concat(results.slice(0, count));\n };\n\n /*\n Moves the item named in the operand a number of places forward or backward in the list\n */\n exports.move = function (source, operator) {\n var results = prepare_results(source),\n index = results.indexOf(operator.operand),\n count = parseInt(operator.suffix) || 1,\n marker = results.splice(index, 1);\n return results.slice(0, index + count).concat(marker).concat(results.slice(index + count));\n };\n\n /*\n Returns the items from the current list that are after the item named in the operand\n */\n exports.allafter = function (source, operator) {\n var results = prepare_results(source),\n index = results.indexOf(operator.operand);\n return (index === -1 || index > (results.length - 2)) ? [] :\n (operator.suffix) ? results.slice(index) :\n results.slice(index + 1);\n };\n\n /*\n Returns the items from the current list that are before the item named in the operand\n */\n exports.allbefore = function (source, operator) {\n var results = prepare_results(source),\n index = results.indexOf(operator.operand);\n return (index <= 0) ? [] :\n (operator.suffix) ? results.slice(0, index + 1) :\n results.slice(0, index);\n };\n\n /*\n Appends the items listed in the operand array to the tail of the current list\n */\n exports.append = function (source, operator) {\n var append = $tw.utils.parseStringArray(operator.operand, \"true\"),\n results = prepare_results(source),\n count = parseInt(operator.suffix) || append.length;\n return (append.length === 0) ? results :\n (operator.prefix) ? results.concat(append.slice(-count)) :\n results.concat(append.slice(0, count));\n };\n\n /*\n Prepends the items listed in the operand array to the head of the current list\n */\n exports.prepend = function (source, operator) {\n var prepend = $tw.utils.parseStringArray(operator.operand, \"true\"),\n results = prepare_results(source),\n count = parseInt(operator.suffix) || prepend.length;\n return (prepend.length === 0) ? results :\n (operator.prefix) ? prepend.slice(-count).concat(results) :\n prepend.slice(0, count).concat(results);\n };\n\n /*\n Returns all items from the current list except the items listed in the operand array\n */\n exports.remove = function (source, operator) {\n var array = $tw.utils.parseStringArray(operator.operand, \"true\"),\n results = prepare_results(source),\n count = parseInt(operator.suffix) || array.length,\n p,\n len,\n index;\n len = array.length - 1;\n for (p = 0; p < count; ++p) {\n if (operator.prefix) {\n index = results.indexOf(array[len - p]);\n } else {\n index = results.indexOf(array[p]);\n }\n if (index !== -1) {\n results.splice(index, 1);\n }\n }\n return results;\n };\n\n /*\n Returns all items from the current list sorted in the order of the items in the operand array\n */\n exports.sortby = function (source, operator) {\n var results = prepare_results(source);\n if (!results || results.length < 2) {\n return results;\n }\n var lookup = $tw.utils.parseStringArray(operator.operand, \"true\");\n results.sort(function (a, b) {\n return lookup.indexOf(a) - lookup.indexOf(b);\n });\n return results;\n };\n\n /*\n Removes all duplicate items from the current list\n */\n exports.unique = function (source, operator) {\n var results = prepare_results(source);\n var set = results.reduce(function (a, b) {\n if (a.indexOf(b) < 0) {\n a.push(b);\n }\n return a;\n }, []);\n return set;\n };\n})();\n", "title": "$:/core/modules/filters/x-listops.js", "type": "application/javascript", "module-type": "filteroperator" }, "$:/core/modules/filters.js": { "text": "/*\\\ntitle: $:/core/modules/filters.js\ntype: application/javascript\nmodule-type: wikimethod\n\nAdds tiddler filtering methods to the $tw.Wiki object.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nParses an operation (i.e. a run) within a filter string\n\toperators: Array of array of operator nodes into which results should be inserted\n\tfilterString: filter string\n\tp: start position within the string\nReturns the new start position, after the parsed operation\n*/\nfunction parseFilterOperation(operators,filterString,p) {\n\tvar operator, operand, bracketPos, curlyBracketPos;\n\t// Skip the starting square bracket\n\tif(filterString.charAt(p++) !== \"[\") {\n\t\tthrow \"Missing [ in filter expression\";\n\t}\n\t// Process each operator in turn\n\tdo {\n\t\toperator = {};\n\t\t// Check for an operator prefix\n\t\tif(filterString.charAt(p) === \"!\") {\n\t\t\toperator.prefix = filterString.charAt(p++);\n\t\t}\n\t\t// Get the operator name\n\t\tvar nextBracketPos = filterString.substring(p).search(/[\\[\\{<\\/]/);\n\t\tif(nextBracketPos === -1) {\n\t\t\tthrow \"Missing [ in filter expression\";\n\t\t}\n\t\tnextBracketPos += p;\n\t\tvar bracket = filterString.charAt(nextBracketPos);\n\t\toperator.operator = filterString.substring(p,nextBracketPos);\n\t\t\n\t\t// Any suffix?\n\t\tvar colon = operator.operator.indexOf(':');\n\t\tif(colon > -1) {\n\t\t\toperator.suffix = operator.operator.substring(colon + 1);\n\t\t\toperator.operator = operator.operator.substring(0,colon) || \"field\";\n\t\t}\n\t\t// Empty operator means: title\n\t\telse if(operator.operator === \"\") {\n\t\t\toperator.operator = \"title\";\n\t\t}\n\n\t\tp = nextBracketPos + 1;\n\t\tswitch (bracket) {\n\t\t\tcase \"{\": // Curly brackets\n\t\t\t\toperator.indirect = true;\n\t\t\t\tnextBracketPos = filterString.indexOf(\"}\",p);\n\t\t\t\tbreak;\n\t\t\tcase \"[\": // Square brackets\n\t\t\t\tnextBracketPos = filterString.indexOf(\"]\",p);\n\t\t\t\tbreak;\n\t\t\tcase \"<\": // Angle brackets\n\t\t\t\toperator.variable = true;\n\t\t\t\tnextBracketPos = filterString.indexOf(\">\",p);\n\t\t\t\tbreak;\n\t\t\tcase \"/\": // regexp brackets\n\t\t\t\tvar rex = /^((?:[^\\\\\\/]*|\\\\.)*)\\/(?:\\(([mygi]+)\\))?/g,\n\t\t\t\t\trexMatch = rex.exec(filterString.substring(p));\n\t\t\t\tif(rexMatch) {\n\t\t\t\t\toperator.regexp = new RegExp(rexMatch[1], rexMatch[2]);\n// DEPRECATION WARNING\nconsole.log(\"WARNING: Filter\",operator.operator,\"has a deprecated regexp operand\",operator.regexp);\n\t\t\t\t\tnextBracketPos = p + rex.lastIndex - 1;\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tthrow \"Unterminated regular expression in filter expression\";\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t}\n\t\t\n\t\tif(nextBracketPos === -1) {\n\t\t\tthrow \"Missing closing bracket in filter expression\";\n\t\t}\n\t\tif(!operator.regexp) {\n\t\t\toperator.operand = filterString.substring(p,nextBracketPos);\n\t\t}\n\t\tp = nextBracketPos + 1;\n\t\t\t\n\t\t// Push this operator\n\t\toperators.push(operator);\n\t} while(filterString.charAt(p) !== \"]\");\n\t// Skip the ending square bracket\n\tif(filterString.charAt(p++) !== \"]\") {\n\t\tthrow \"Missing ] in filter expression\";\n\t}\n\t// Return the parsing position\n\treturn p;\n}\n\n/*\nParse a filter string\n*/\nexports.parseFilter = function(filterString) {\n\tfilterString = filterString || \"\";\n\tvar results = [], // Array of arrays of operator nodes {operator:,operand:}\n\t\tp = 0, // Current position in the filter string\n\t\tmatch;\n\tvar whitespaceRegExp = /(\\s+)/mg,\n\t\toperandRegExp = /((?:\\+|\\-)?)(?:(\\[)|(?:\"([^\"]*)\")|(?:'([^']*)')|([^\\s\\[\\]]+))/mg;\n\twhile(p < filterString.length) {\n\t\t// Skip any whitespace\n\t\twhitespaceRegExp.lastIndex = p;\n\t\tmatch = whitespaceRegExp.exec(filterString);\n\t\tif(match && match.index === p) {\n\t\t\tp = p + match[0].length;\n\t\t}\n\t\t// Match the start of the operation\n\t\tif(p < filterString.length) {\n\t\t\toperandRegExp.lastIndex = p;\n\t\t\tmatch = operandRegExp.exec(filterString);\n\t\t\tif(!match || match.index !== p) {\n\t\t\t\tthrow $tw.language.getString(\"Error/FilterSyntax\");\n\t\t\t}\n\t\t\tvar operation = {\n\t\t\t\tprefix: \"\",\n\t\t\t\toperators: []\n\t\t\t};\n\t\t\tif(match[1]) {\n\t\t\t\toperation.prefix = match[1];\n\t\t\t\tp++;\n\t\t\t}\n\t\t\tif(match[2]) { // Opening square bracket\n\t\t\t\tp = parseFilterOperation(operation.operators,filterString,p);\n\t\t\t} else {\n\t\t\t\tp = match.index + match[0].length;\n\t\t\t}\n\t\t\tif(match[3] || match[4] || match[5]) { // Double quoted string, single quoted string or unquoted title\n\t\t\t\toperation.operators.push(\n\t\t\t\t\t{operator: \"title\", operand: match[3] || match[4] || match[5]}\n\t\t\t\t);\n\t\t\t}\n\t\t\tresults.push(operation);\n\t\t}\n\t}\n\treturn results;\n};\n\nexports.getFilterOperators = function() {\n\tif(!this.filterOperators) {\n\t\t$tw.Wiki.prototype.filterOperators = {};\n\t\t$tw.modules.applyMethods(\"filteroperator\",this.filterOperators);\n\t}\n\treturn this.filterOperators;\n};\n\nexports.filterTiddlers = function(filterString,widget,source) {\n\tvar fn = this.compileFilter(filterString);\n\treturn fn.call(this,source,widget);\n};\n\n/*\nCompile a filter into a function with the signature fn(source,widget) where:\nsource: an iterator function for the source tiddlers, called source(iterator), where iterator is called as iterator(tiddler,title)\nwidget: an optional widget node for retrieving the current tiddler etc.\n*/\nexports.compileFilter = function(filterString) {\n\tvar filterParseTree;\n\ttry {\n\t\tfilterParseTree = this.parseFilter(filterString);\n\t} catch(e) {\n\t\treturn function(source,widget) {\n\t\t\treturn [$tw.language.getString(\"Error/Filter\") + \": \" + e];\n\t\t};\n\t}\n\t// Get the hashmap of filter operator functions\n\tvar filterOperators = this.getFilterOperators();\n\t// Assemble array of functions, one for each operation\n\tvar operationFunctions = [];\n\t// Step through the operations\n\tvar self = this;\n\t$tw.utils.each(filterParseTree,function(operation) {\n\t\t// Create a function for the chain of operators in the operation\n\t\tvar operationSubFunction = function(source,widget) {\n\t\t\tvar accumulator = source,\n\t\t\t\tresults = [],\n\t\t\t\tcurrTiddlerTitle = widget && widget.getVariable(\"currentTiddler\");\n\t\t\t$tw.utils.each(operation.operators,function(operator) {\n\t\t\t\tvar operand = operator.operand,\n\t\t\t\t\toperatorFunction;\n\t\t\t\tif(!operator.operator) {\n\t\t\t\t\toperatorFunction = filterOperators.title;\n\t\t\t\t} else if(!filterOperators[operator.operator]) {\n\t\t\t\t\toperatorFunction = filterOperators.field;\n\t\t\t\t} else {\n\t\t\t\t\toperatorFunction = filterOperators[operator.operator];\n\t\t\t\t}\n\t\t\t\tif(operator.indirect) {\n\t\t\t\t\toperand = self.getTextReference(operator.operand,\"\",currTiddlerTitle);\n\t\t\t\t}\n\t\t\t\tif(operator.variable) {\n\t\t\t\t\toperand = widget.getVariable(operator.operand,{defaultValue: \"\"});\n\t\t\t\t}\n\t\t\t\t// Invoke the appropriate filteroperator module\n\t\t\t\tresults = operatorFunction(accumulator,{\n\t\t\t\t\t\t\toperator: operator.operator,\n\t\t\t\t\t\t\toperand: operand,\n\t\t\t\t\t\t\tprefix: operator.prefix,\n\t\t\t\t\t\t\tsuffix: operator.suffix,\n\t\t\t\t\t\t\tregexp: operator.regexp\n\t\t\t\t\t\t},{\n\t\t\t\t\t\t\twiki: self,\n\t\t\t\t\t\t\twidget: widget\n\t\t\t\t\t\t});\n\t\t\t\tif($tw.utils.isArray(results)) {\n\t\t\t\t\taccumulator = self.makeTiddlerIterator(results);\n\t\t\t\t} else {\n\t\t\t\t\taccumulator = results;\n\t\t\t\t}\n\t\t\t});\n\t\t\tif($tw.utils.isArray(results)) {\n\t\t\t\treturn results;\n\t\t\t} else {\n\t\t\t\tvar resultArray = [];\n\t\t\t\tresults(function(tiddler,title) {\n\t\t\t\t\tresultArray.push(title);\n\t\t\t\t});\n\t\t\t\treturn resultArray;\n\t\t\t}\n\t\t};\n\t\t// Wrap the operator functions in a wrapper function that depends on the prefix\n\t\toperationFunctions.push((function() {\n\t\t\tswitch(operation.prefix || \"\") {\n\t\t\t\tcase \"\": // No prefix means that the operation is unioned into the result\n\t\t\t\t\treturn function(results,source,widget) {\n\t\t\t\t\t\t$tw.utils.pushTop(results,operationSubFunction(source,widget));\n\t\t\t\t\t};\n\t\t\t\tcase \"-\": // The results of this operation are removed from the main result\n\t\t\t\t\treturn function(results,source,widget) {\n\t\t\t\t\t\t$tw.utils.removeArrayEntries(results,operationSubFunction(source,widget));\n\t\t\t\t\t};\n\t\t\t\tcase \"+\": // This operation is applied to the main results so far\n\t\t\t\t\treturn function(results,source,widget) {\n\t\t\t\t\t\t// This replaces all the elements of the array, but keeps the actual array so that references to it are preserved\n\t\t\t\t\t\tsource = self.makeTiddlerIterator(results);\n\t\t\t\t\t\tresults.splice(0,results.length);\n\t\t\t\t\t\t$tw.utils.pushTop(results,operationSubFunction(source,widget));\n\t\t\t\t\t};\n\t\t\t}\n\t\t})());\n\t});\n\t// Return a function that applies the operations to a source iterator of tiddler titles\n\treturn $tw.perf.measure(\"filter\",function filterFunction(source,widget) {\n\t\tif(!source) {\n\t\t\tsource = self.each;\n\t\t} else if(typeof source === \"object\") { // Array or hashmap\n\t\t\tsource = self.makeTiddlerIterator(source);\n\t\t}\n\t\tvar results = [];\n\t\t$tw.utils.each(operationFunctions,function(operationFunction) {\n\t\t\toperationFunction(results,source,widget);\n\t\t});\n\t\treturn results;\n\t});\n};\n\n})();\n", "title": "$:/core/modules/filters.js", "type": "application/javascript", "module-type": "wikimethod" }, "$:/core/modules/info/platform.js": { "text": "/*\\\ntitle: $:/core/modules/info/platform.js\ntype: application/javascript\nmodule-type: info\n\nInitialise basic platform $:/info/ tiddlers\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.getInfoTiddlerFields = function() {\n\tvar mapBoolean = function(value) {return value ? \"yes\" : \"no\";},\n\t\tinfoTiddlerFields = [];\n\t// Basics\n\tinfoTiddlerFields.push({title: \"$:/info/browser\", text: mapBoolean(!!$tw.browser)});\n\tinfoTiddlerFields.push({title: \"$:/info/node\", text: mapBoolean(!!$tw.node)});\n\treturn infoTiddlerFields;\n};\n\n})();\n", "title": "$:/core/modules/info/platform.js", "type": "application/javascript", "module-type": "info" }, "$:/core/modules/keyboard.js": { "text": "/*\\\ntitle: $:/core/modules/keyboard.js\ntype: application/javascript\nmodule-type: global\n\nKeyboard handling utilities\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar namedKeys = {\n\t\"cancel\": 3,\n\t\"help\": 6,\n\t\"backspace\": 8,\n\t\"tab\": 9,\n\t\"clear\": 12,\n\t\"return\": 13,\n\t\"enter\": 13,\n\t\"pause\": 19,\n\t\"escape\": 27,\n\t\"space\": 32,\n\t\"page_up\": 33,\n\t\"page_down\": 34,\n\t\"end\": 35,\n\t\"home\": 36,\n\t\"left\": 37,\n\t\"up\": 38,\n\t\"right\": 39,\n\t\"down\": 40,\n\t\"printscreen\": 44,\n\t\"insert\": 45,\n\t\"delete\": 46,\n\t\"0\": 48,\n\t\"1\": 49,\n\t\"2\": 50,\n\t\"3\": 51,\n\t\"4\": 52,\n\t\"5\": 53,\n\t\"6\": 54,\n\t\"7\": 55,\n\t\"8\": 56,\n\t\"9\": 57,\n\t\"firefoxsemicolon\": 59,\n\t\"firefoxequals\": 61,\n\t\"a\": 65,\n\t\"b\": 66,\n\t\"c\": 67,\n\t\"d\": 68,\n\t\"e\": 69,\n\t\"f\": 70,\n\t\"g\": 71,\n\t\"h\": 72,\n\t\"i\": 73,\n\t\"j\": 74,\n\t\"k\": 75,\n\t\"l\": 76,\n\t\"m\": 77,\n\t\"n\": 78,\n\t\"o\": 79,\n\t\"p\": 80,\n\t\"q\": 81,\n\t\"r\": 82,\n\t\"s\": 83,\n\t\"t\": 84,\n\t\"u\": 85,\n\t\"v\": 86,\n\t\"w\": 87,\n\t\"x\": 88,\n\t\"y\": 89,\n\t\"z\": 90,\n\t\"numpad0\": 96,\n\t\"numpad1\": 97,\n\t\"numpad2\": 98,\n\t\"numpad3\": 99,\n\t\"numpad4\": 100,\n\t\"numpad5\": 101,\n\t\"numpad6\": 102,\n\t\"numpad7\": 103,\n\t\"numpad8\": 104,\n\t\"numpad9\": 105,\n\t\"multiply\": 106,\n\t\"add\": 107,\n\t\"separator\": 108,\n\t\"subtract\": 109,\n\t\"decimal\": 110,\n\t\"divide\": 111,\n\t\"f1\": 112,\n\t\"f2\": 113,\n\t\"f3\": 114,\n\t\"f4\": 115,\n\t\"f5\": 116,\n\t\"f6\": 117,\n\t\"f7\": 118,\n\t\"f8\": 119,\n\t\"f9\": 120,\n\t\"f10\": 121,\n\t\"f11\": 122,\n\t\"f12\": 123,\n\t\"f13\": 124,\n\t\"f14\": 125,\n\t\"f15\": 126,\n\t\"f16\": 127,\n\t\"f17\": 128,\n\t\"f18\": 129,\n\t\"f19\": 130,\n\t\"f20\": 131,\n\t\"f21\": 132,\n\t\"f22\": 133,\n\t\"f23\": 134,\n\t\"f24\": 135,\n\t\"firefoxminus\": 173,\n\t\"semicolon\": 186,\n\t\"equals\": 187,\n\t\"comma\": 188,\n\t\"dash\": 189,\n\t\"period\": 190,\n\t\"slash\": 191,\n\t\"backquote\": 192,\n\t\"openbracket\": 219,\n\t\"backslash\": 220,\n\t\"closebracket\": 221,\n\t\"quote\": 222\n};\n\nfunction KeyboardManager(options) {\n\tvar self = this;\n\toptions = options || \"\";\n\t// Save the named key hashmap\n\tthis.namedKeys = namedKeys;\n\t// Create a reverse mapping of code to keyname\n\tthis.keyNames = [];\n\t$tw.utils.each(namedKeys,function(keyCode,name) {\n\t\tself.keyNames[keyCode] = name.substr(0,1).toUpperCase() + name.substr(1);\n\t});\n\t// Save the platform-specific name of the \"meta\" key\n\tthis.metaKeyName = $tw.platform.isMac ? \"cmd-\" : \"win-\";\n}\n\n/*\nReturn an array of keycodes for the modifier keys ctrl, shift, alt, meta\n*/\nKeyboardManager.prototype.getModifierKeys = function() {\n\treturn [\n\t\t16, // Shift\n\t\t17, // Ctrl\n\t\t18, // Alt\n\t\t20, // CAPS LOCK\n\t\t91, // Meta (left)\n\t\t93, // Meta (right)\n\t\t224 // Meta (Firefox)\n\t]\n};\n\n/*\nParses a key descriptor into the structure:\n{\n\tkeyCode: numeric keycode\n\tshiftKey: boolean\n\taltKey: boolean\n\tctrlKey: boolean\n\tmetaKey: boolean\n}\nKey descriptors have the following format:\n\tctrl+enter\n\tctrl+shift+alt+A\n*/\nKeyboardManager.prototype.parseKeyDescriptor = function(keyDescriptor) {\n\tvar components = keyDescriptor.split(/\\+|\\-/),\n\t\tinfo = {\n\t\t\tkeyCode: 0,\n\t\t\tshiftKey: false,\n\t\t\taltKey: false,\n\t\t\tctrlKey: false,\n\t\t\tmetaKey: false\n\t\t};\n\tfor(var t=0; t<components.length; t++) {\n\t\tvar s = components[t].toLowerCase(),\n\t\t\tc = s.charCodeAt(0);\n\t\t// Look for modifier keys\n\t\tif(s === \"ctrl\") {\n\t\t\tinfo.ctrlKey = true;\n\t\t} else if(s === \"shift\") {\n\t\t\tinfo.shiftKey = true;\n\t\t} else if(s === \"alt\") {\n\t\t\tinfo.altKey = true;\n\t\t} else if(s === \"meta\" || s === \"cmd\" || s === \"win\") {\n\t\t\tinfo.metaKey = true;\n\t\t}\n\t\t// Replace named keys with their code\n\t\tif(this.namedKeys[s]) {\n\t\t\tinfo.keyCode = this.namedKeys[s];\n\t\t}\n\t}\n\tif(info.keyCode) {\n\t\treturn info;\n\t} else {\n\t\treturn null;\n\t}\n};\n\n/*\nParse a list of key descriptors into an array of keyInfo objects. The key descriptors can be passed as an array of strings or a space separated string\n*/\nKeyboardManager.prototype.parseKeyDescriptors = function(keyDescriptors,options) {\n\tvar self = this;\n\toptions = options || {};\n\toptions.stack = options.stack || [];\n\tvar wiki = options.wiki || $tw.wiki;\n\tif(typeof keyDescriptors === \"string\" && keyDescriptors === \"\") {\n\t\treturn [];\n\t}\n\tif(!$tw.utils.isArray(keyDescriptors)) {\n\t\tkeyDescriptors = keyDescriptors.split(\" \");\n\t}\n\tvar result = [];\n\t$tw.utils.each(keyDescriptors,function(keyDescriptor) {\n\t\t// Look for a named shortcut\n\t\tif(keyDescriptor.substr(0,2) === \"((\" && keyDescriptor.substr(-2,2) === \"))\") {\n\t\t\tif(options.stack.indexOf(keyDescriptor) === -1) {\n\t\t\t\toptions.stack.push(keyDescriptor);\n\t\t\t\tvar name = keyDescriptor.substring(2,keyDescriptor.length - 2),\n\t\t\t\t\tlookupName = function(configName) {\n\t\t\t\t\t\tvar keyDescriptors = wiki.getTiddlerText(\"$:/config/\" + configName + \"/\" + name);\n\t\t\t\t\t\tif(keyDescriptors) {\n\t\t\t\t\t\t\tresult.push.apply(result,self.parseKeyDescriptors(keyDescriptors,options));\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\tlookupName(\"shortcuts\");\n\t\t\t\tlookupName($tw.platform.isMac ? \"shortcuts-mac\" : \"shortcuts-not-mac\");\n\t\t\t\tlookupName($tw.platform.isWindows ? \"shortcuts-windows\" : \"shortcuts-not-windows\");\n\t\t\t\tlookupName($tw.platform.isLinux ? \"shortcuts-linux\" : \"shortcuts-not-linux\");\n\t\t\t}\n\t\t} else {\n\t\t\tresult.push(self.parseKeyDescriptor(keyDescriptor));\n\t\t}\n\t});\n\treturn result;\n};\n\nKeyboardManager.prototype.getPrintableShortcuts = function(keyInfoArray) {\n\tvar self = this,\n\t\tresult = [];\n\t$tw.utils.each(keyInfoArray,function(keyInfo) {\n\t\tif(keyInfo) {\n\t\t\tresult.push((keyInfo.ctrlKey ? \"ctrl-\" : \"\") + \n\t\t\t\t (keyInfo.shiftKey ? \"shift-\" : \"\") + \n\t\t\t\t (keyInfo.altKey ? \"alt-\" : \"\") + \n\t\t\t\t (keyInfo.metaKey ? self.metaKeyName : \"\") + \n\t\t\t\t (self.keyNames[keyInfo.keyCode]));\n\t\t}\n\t});\n\treturn result;\n}\n\nKeyboardManager.prototype.checkKeyDescriptor = function(event,keyInfo) {\n\treturn keyInfo &&\n\t\t\tevent.keyCode === keyInfo.keyCode && \n\t\t\tevent.shiftKey === keyInfo.shiftKey && \n\t\t\tevent.altKey === keyInfo.altKey && \n\t\t\tevent.ctrlKey === keyInfo.ctrlKey && \n\t\t\tevent.metaKey === keyInfo.metaKey;\n};\n\nKeyboardManager.prototype.checkKeyDescriptors = function(event,keyInfoArray) {\n\tfor(var t=0; t<keyInfoArray.length; t++) {\n\t\tif(this.checkKeyDescriptor(event,keyInfoArray[t])) {\n\t\t\treturn true;\n\t\t}\n\t}\n\treturn false;\n};\n\nexports.KeyboardManager = KeyboardManager;\n\n})();\n", "title": "$:/core/modules/keyboard.js", "type": "application/javascript", "module-type": "global" }, "$:/core/modules/language.js": { "text": "/*\\\ntitle: $:/core/modules/language.js\ntype: application/javascript\nmodule-type: global\n\nThe $tw.Language() manages translateable strings\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nCreate an instance of the language manager. Options include:\nwiki: wiki from which to retrieve translation tiddlers\n*/\nfunction Language(options) {\n\toptions = options || \"\";\n\tthis.wiki = options.wiki || $tw.wiki;\n}\n\n/*\nReturn a wikified translateable string. The title is automatically prefixed with \"$:/language/\"\nOptions include:\nvariables: optional hashmap of variables to supply to the language wikification\n*/\nLanguage.prototype.getString = function(title,options) {\n\toptions = options || {};\n\ttitle = \"$:/language/\" + title;\n\treturn this.wiki.renderTiddler(\"text/plain\",title,{variables: options.variables});\n};\n\n/*\nReturn a raw, unwikified translateable string. The title is automatically prefixed with \"$:/language/\"\n*/\nLanguage.prototype.getRawString = function(title) {\n\ttitle = \"$:/language/\" + title;\n\treturn this.wiki.getTiddlerText(title);\n};\n\nexports.Language = Language;\n\n})();\n", "title": "$:/core/modules/language.js", "type": "application/javascript", "module-type": "global" }, "$:/core/modules/macros/changecount.js": { "text": "/*\\\ntitle: $:/core/modules/macros/changecount.js\ntype: application/javascript\nmodule-type: macro\n\nMacro to return the changecount for the current tiddler\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nInformation about this macro\n*/\n\nexports.name = \"changecount\";\n\nexports.params = [];\n\n/*\nRun the macro\n*/\nexports.run = function() {\n\treturn this.wiki.getChangeCount(this.getVariable(\"currentTiddler\")) + \"\";\n};\n\n})();\n", "title": "$:/core/modules/macros/changecount.js", "type": "application/javascript", "module-type": "macro" }, "$:/core/modules/macros/contrastcolour.js": { "text": "/*\\\ntitle: $:/core/modules/macros/contrastcolour.js\ntype: application/javascript\nmodule-type: macro\n\nMacro to choose which of two colours has the highest contrast with a base colour\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nInformation about this macro\n*/\n\nexports.name = \"contrastcolour\";\n\nexports.params = [\n\t{name: \"target\"},\n\t{name: \"fallbackTarget\"},\n\t{name: \"colourA\"},\n\t{name: \"colourB\"}\n];\n\n/*\nRun the macro\n*/\nexports.run = function(target,fallbackTarget,colourA,colourB) {\n\tvar rgbTarget = $tw.utils.parseCSSColor(target) || $tw.utils.parseCSSColor(fallbackTarget);\n\tif(!rgbTarget) {\n\t\treturn colourA;\n\t}\n\tvar rgbColourA = $tw.utils.parseCSSColor(colourA),\n\t\trgbColourB = $tw.utils.parseCSSColor(colourB);\n\tif(rgbColourA && !rgbColourB) {\n\t\treturn rgbColourA;\n\t}\n\tif(rgbColourB && !rgbColourA) {\n\t\treturn rgbColourB;\n\t}\n\tif(!rgbColourA && !rgbColourB) {\n\t\t// If neither colour is readable, return a crude inverse of the target\n\t\treturn [255 - rgbTarget[0],255 - rgbTarget[1],255 - rgbTarget[2],rgbTarget[3]];\n\t}\n\t// Colour brightness formula derived from http://www.w3.org/WAI/ER/WD-AERT/#color-contrast\n\tvar brightnessTarget = rgbTarget[0] * 0.299 + rgbTarget[1] * 0.587 + rgbTarget[2] * 0.114,\n\t\tbrightnessA = rgbColourA[0] * 0.299 + rgbColourA[1] * 0.587 + rgbColourA[2] * 0.114,\n\t\tbrightnessB = rgbColourB[0] * 0.299 + rgbColourB[1] * 0.587 + rgbColourB[2] * 0.114;\n\treturn Math.abs(brightnessTarget - brightnessA) > Math.abs(brightnessTarget - brightnessB) ? colourA : colourB;\n};\n\n})();\n", "title": "$:/core/modules/macros/contrastcolour.js", "type": "application/javascript", "module-type": "macro" }, "$:/core/modules/macros/csvtiddlers.js": { "text": "/*\\\ntitle: $:/core/modules/macros/csvtiddlers.js\ntype: application/javascript\nmodule-type: macro\n\nMacro to output tiddlers matching a filter to CSV\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nInformation about this macro\n*/\n\nexports.name = \"csvtiddlers\";\n\nexports.params = [\n\t{name: \"filter\"},\n\t{name: \"format\"},\n];\n\n/*\nRun the macro\n*/\nexports.run = function(filter,format) {\n\tvar self = this,\n\t\ttiddlers = this.wiki.filterTiddlers(filter),\n\t\ttiddler,\n\t\tfields = [],\n\t\tt,f;\n\t// Collect all the fields\n\tfor(t=0;t<tiddlers.length; t++) {\n\t\ttiddler = this.wiki.getTiddler(tiddlers[t]);\n\t\tfor(f in tiddler.fields) {\n\t\t\tif(fields.indexOf(f) === -1) {\n\t\t\t\tfields.push(f);\n\t\t\t}\n\t\t}\n\t}\n\t// Sort the fields and bring the standard ones to the front\n\tfields.sort();\n\t\"title text modified modifier created creator\".split(\" \").reverse().forEach(function(value,index) {\n\t\tvar p = fields.indexOf(value);\n\t\tif(p !== -1) {\n\t\t\tfields.splice(p,1);\n\t\t\tfields.unshift(value)\n\t\t}\n\t});\n\t// Output the column headings\n\tvar output = [], row = [];\n\tfields.forEach(function(value) {\n\t\trow.push(quoteAndEscape(value))\n\t});\n\toutput.push(row.join(\",\"));\n\t// Output each tiddler\n\tfor(var t=0;t<tiddlers.length; t++) {\n\t\trow = [];\n\t\ttiddler = this.wiki.getTiddler(tiddlers[t]);\n\t\t\tfor(f=0; f<fields.length; f++) {\n\t\t\t\trow.push(quoteAndEscape(tiddler ? tiddler.getFieldString(fields[f]) || \"\" : \"\"));\n\t\t\t}\n\t\toutput.push(row.join(\",\"));\n\t}\n\treturn output.join(\"\\n\");\n};\n\nfunction quoteAndEscape(value) {\n\treturn \"\\\"\" + value.replace(/\"/mg,\"\\\"\\\"\") + \"\\\"\";\n}\n\n})();\n", "title": "$:/core/modules/macros/csvtiddlers.js", "type": "application/javascript", "module-type": "macro" }, "$:/core/modules/macros/displayshortcuts.js": { "text": "/*\\\ntitle: $:/core/modules/macros/displayshortcuts.js\ntype: application/javascript\nmodule-type: macro\n\nMacro to display a list of keyboard shortcuts in human readable form. Notably, it resolves named shortcuts like `((bold))` to the underlying keystrokes.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nInformation about this macro\n*/\n\nexports.name = \"displayshortcuts\";\n\nexports.params = [\n\t{name: \"shortcuts\"},\n\t{name: \"prefix\"},\n\t{name: \"separator\"},\n\t{name: \"suffix\"}\n];\n\n/*\nRun the macro\n*/\nexports.run = function(shortcuts,prefix,separator,suffix) {\n\tvar shortcutArray = $tw.keyboardManager.getPrintableShortcuts($tw.keyboardManager.parseKeyDescriptors(shortcuts,{\n\t\twiki: this.wiki\n\t}));\n\tif(shortcutArray.length > 0) {\n\t\tshortcutArray.sort(function(a,b) {\n\t\t return a.toLowerCase().localeCompare(b.toLowerCase());\n\t\t})\n\t\treturn prefix + shortcutArray.join(separator) + suffix;\n\t} else {\n\t\treturn \"\";\n\t}\n};\n\n})();\n", "title": "$:/core/modules/macros/displayshortcuts.js", "type": "application/javascript", "module-type": "macro" }, "$:/core/modules/macros/dumpvariables.js": { "text": "/*\\\ntitle: $:/core/modules/macros/dumpvariables.js\ntype: application/javascript\nmodule-type: macro\n\nMacro to dump all active variable values\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nInformation about this macro\n*/\n\nexports.name = \"dumpvariables\";\n\nexports.params = [\n];\n\n/*\nRun the macro\n*/\nexports.run = function() {\n\tvar output = [\"|!Variable |!Value |\"],\n\t\tvariables = [], variable;\n\tfor(variable in this.variables) {\n\t\tvariables.push(variable);\n\t}\n\tvariables.sort();\n\tfor(var index=0; index<variables.length; index++) {\n\t\tvar variable = variables[index];\n\t\toutput.push(\"|\" + variable + \" |<input size=50 value=<<\" + variable + \">>/> |\")\n\t}\n\treturn output.join(\"\\n\");\n};\n\n})();\n", "title": "$:/core/modules/macros/dumpvariables.js", "type": "application/javascript", "module-type": "macro" }, "$:/core/modules/macros/jsontiddlers.js": { "text": "/*\\\ntitle: $:/core/modules/macros/jsontiddlers.js\ntype: application/javascript\nmodule-type: macro\n\nMacro to output tiddlers matching a filter to JSON\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nInformation about this macro\n*/\n\nexports.name = \"jsontiddlers\";\n\nexports.params = [\n\t{name: \"filter\"}\n];\n\n/*\nRun the macro\n*/\nexports.run = function(filter) {\n\tvar tiddlers = this.wiki.filterTiddlers(filter),\n\t\tdata = [];\n\tfor(var t=0;t<tiddlers.length; t++) {\n\t\tvar tiddler = this.wiki.getTiddler(tiddlers[t]);\n\t\tif(tiddler) {\n\t\t\tvar fields = new Object();\n\t\t\tfor(var field in tiddler.fields) {\n\t\t\t\tfields[field] = tiddler.getFieldString(field);\n\t\t\t}\n\t\t\tdata.push(fields);\n\t\t}\n\t}\n\treturn JSON.stringify(data,null,$tw.config.preferences.jsonSpaces);\n};\n\n})();\n", "title": "$:/core/modules/macros/jsontiddlers.js", "type": "application/javascript", "module-type": "macro" }, "$:/core/modules/macros/makedatauri.js": { "text": "/*\\\ntitle: $:/core/modules/macros/makedatauri.js\ntype: application/javascript\nmodule-type: macro\n\nMacro to convert a string of text to a data URI\n\n<<makedatauri text:\"Text to be converted\" type:\"text/vnd.tiddlywiki\">>\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nInformation about this macro\n*/\n\nexports.name = \"makedatauri\";\n\nexports.params = [\n\t{name: \"text\"},\n\t{name: \"type\"}\n];\n\n/*\nRun the macro\n*/\nexports.run = function(text,type) {\n\treturn $tw.utils.makeDataUri(text,type);\n};\n\n})();\n", "title": "$:/core/modules/macros/makedatauri.js", "type": "application/javascript", "module-type": "macro" }, "$:/core/modules/macros/now.js": { "text": "/*\\\ntitle: $:/core/modules/macros/now.js\ntype: application/javascript\nmodule-type: macro\n\nMacro to return a formatted version of the current time\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nInformation about this macro\n*/\n\nexports.name = \"now\";\n\nexports.params = [\n\t{name: \"format\"}\n];\n\n/*\nRun the macro\n*/\nexports.run = function(format) {\n\treturn $tw.utils.formatDateString(new Date(),format || \"0hh:0mm, DDth MMM YYYY\");\n};\n\n})();\n", "title": "$:/core/modules/macros/now.js", "type": "application/javascript", "module-type": "macro" }, "$:/core/modules/macros/qualify.js": { "text": "/*\\\ntitle: $:/core/modules/macros/qualify.js\ntype: application/javascript\nmodule-type: macro\n\nMacro to qualify a state tiddler title according\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nInformation about this macro\n*/\n\nexports.name = \"qualify\";\n\nexports.params = [\n\t{name: \"title\"}\n];\n\n/*\nRun the macro\n*/\nexports.run = function(title) {\n\treturn title + \"-\" + this.getStateQualifier();\n};\n\n})();\n", "title": "$:/core/modules/macros/qualify.js", "type": "application/javascript", "module-type": "macro" }, "$:/core/modules/macros/resolvepath.js": { "text": "/*\\\ntitle: $:/core/modules/macros/resolvepath.js\ntype: application/javascript\nmodule-type: macro\n\nResolves a relative path for an absolute rootpath.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"resolvepath\";\n\nexports.params = [\n\t{name: \"source\"},\n\t{name: \"root\"}\n];\n\n/*\nRun the macro\n*/\nexports.run = function(source, root) {\n\treturn $tw.utils.resolvePath(source, root);\n};\n\n})();\n", "title": "$:/core/modules/macros/resolvepath.js", "type": "application/javascript", "module-type": "macro" }, "$:/core/modules/macros/version.js": { "text": "/*\\\ntitle: $:/core/modules/macros/version.js\ntype: application/javascript\nmodule-type: macro\n\nMacro to return the TiddlyWiki core version number\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nInformation about this macro\n*/\n\nexports.name = \"version\";\n\nexports.params = [];\n\n/*\nRun the macro\n*/\nexports.run = function() {\n\treturn $tw.version;\n};\n\n})();\n", "title": "$:/core/modules/macros/version.js", "type": "application/javascript", "module-type": "macro" }, "$:/core/modules/parsers/audioparser.js": { "text": "/*\\\ntitle: $:/core/modules/parsers/audioparser.js\ntype: application/javascript\nmodule-type: parser\n\nThe audio parser parses an audio tiddler into an embeddable HTML element\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar AudioParser = function(type,text,options) {\n\tvar element = {\n\t\t\ttype: \"element\",\n\t\t\ttag: \"audio\",\n\t\t\tattributes: {\n\t\t\t\tcontrols: {type: \"string\", value: \"controls\"}\n\t\t\t}\n\t\t},\n\t\tsrc;\n\tif(options._canonical_uri) {\n\t\telement.attributes.src = {type: \"string\", value: options._canonical_uri};\n\t} else if(text) {\n\t\telement.attributes.src = {type: \"string\", value: \"data:\" + type + \";base64,\" + text};\n\t}\n\tthis.tree = [element];\n};\n\nexports[\"audio/ogg\"] = AudioParser;\nexports[\"audio/mpeg\"] = AudioParser;\nexports[\"audio/mp3\"] = AudioParser;\nexports[\"audio/mp4\"] = AudioParser;\n\n})();\n\n", "title": "$:/core/modules/parsers/audioparser.js", "type": "application/javascript", "module-type": "parser" }, "$:/core/modules/parsers/csvparser.js": { "text": "/*\\\ntitle: $:/core/modules/parsers/csvparser.js\ntype: application/javascript\nmodule-type: parser\n\nThe CSV text parser processes CSV files into a table wrapped in a scrollable widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar CsvParser = function(type,text,options) {\n\t// Table framework\n\tthis.tree = [{\n\t\t\"type\": \"scrollable\", \"children\": [{\n\t\t\t\"type\": \"element\", \"tag\": \"table\", \"children\": [{\n\t\t\t\t\"type\": \"element\", \"tag\": \"tbody\", \"children\": []\n\t\t\t}], \"attributes\": {\n\t\t\t\t\"class\": {\"type\": \"string\", \"value\": \"tc-csv-table\"}\n\t\t\t}\n\t\t}]\n\t}];\n\t// Split the text into lines\n\tvar lines = text.split(/\\r?\\n/mg),\n\t\ttag = \"th\";\n\tfor(var line=0; line<lines.length; line++) {\n\t\tvar lineText = lines[line];\n\t\tif(lineText) {\n\t\t\tvar row = {\n\t\t\t\t\t\"type\": \"element\", \"tag\": \"tr\", \"children\": []\n\t\t\t\t};\n\t\t\tvar columns = lineText.split(\",\");\n\t\t\tfor(var column=0; column<columns.length; column++) {\n\t\t\t\trow.children.push({\n\t\t\t\t\t\t\"type\": \"element\", \"tag\": tag, \"children\": [{\n\t\t\t\t\t\t\t\"type\": \"text\",\n\t\t\t\t\t\t\t\"text\": columns[column]\n\t\t\t\t\t\t}]\n\t\t\t\t\t});\n\t\t\t}\n\t\t\ttag = \"td\";\n\t\t\tthis.tree[0].children[0].children[0].children.push(row);\n\t\t}\n\t}\n};\n\nexports[\"text/csv\"] = CsvParser;\n\n})();\n\n", "title": "$:/core/modules/parsers/csvparser.js", "type": "application/javascript", "module-type": "parser" }, "$:/core/modules/parsers/htmlparser.js": { "text": "/*\\\ntitle: $:/core/modules/parsers/htmlparser.js\ntype: application/javascript\nmodule-type: parser\n\nThe HTML parser displays text as raw HTML\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar HtmlParser = function(type,text,options) {\n\tvar src;\n\tif(options._canonical_uri) {\n\t\tsrc = options._canonical_uri;\n\t} else if(text) {\n\t\tsrc = \"data:text/html;charset=utf-8,\" + encodeURIComponent(text);\n\t}\n\tthis.tree = [{\n\t\ttype: \"element\",\n\t\ttag: \"iframe\",\n\t\tattributes: {\n\t\t\tsrc: {type: \"string\", value: src},\n\t\t\tsandbox: {type: \"string\", value: \"\"}\n\t\t}\n\t}];\n};\n\nexports[\"text/html\"] = HtmlParser;\n\n})();\n\n", "title": "$:/core/modules/parsers/htmlparser.js", "type": "application/javascript", "module-type": "parser" }, "$:/core/modules/parsers/imageparser.js": { "text": "/*\\\ntitle: $:/core/modules/parsers/imageparser.js\ntype: application/javascript\nmodule-type: parser\n\nThe image parser parses an image into an embeddable HTML element\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar ImageParser = function(type,text,options) {\n\tvar element = {\n\t\t\ttype: \"element\",\n\t\t\ttag: \"img\",\n\t\t\tattributes: {}\n\t\t},\n\t\tsrc;\n\tif(options._canonical_uri) {\n\t\telement.attributes.src = {type: \"string\", value: options._canonical_uri};\n\t\tif(type === \"application/pdf\" || type === \".pdf\") {\n\t\t\telement.tag = \"embed\";\n\t\t}\n\t} else if(text) {\n\t\tif(type === \"application/pdf\" || type === \".pdf\") {\n\t\t\telement.attributes.src = {type: \"string\", value: \"data:application/pdf;base64,\" + text};\n\t\t\telement.tag = \"embed\";\n\t\t} else if(type === \"image/svg+xml\" || type === \".svg\") {\n\t\t\telement.attributes.src = {type: \"string\", value: \"data:image/svg+xml,\" + encodeURIComponent(text)};\n\t\t} else {\n\t\t\telement.attributes.src = {type: \"string\", value: \"data:\" + type + \";base64,\" + text};\n\t\t}\n\t}\n\tthis.tree = [element];\n};\n\nexports[\"image/svg+xml\"] = ImageParser;\nexports[\"image/jpg\"] = ImageParser;\nexports[\"image/jpeg\"] = ImageParser;\nexports[\"image/png\"] = ImageParser;\nexports[\"image/gif\"] = ImageParser;\nexports[\"application/pdf\"] = ImageParser;\nexports[\"image/x-icon\"] = ImageParser;\n\n})();\n\n", "title": "$:/core/modules/parsers/imageparser.js", "type": "application/javascript", "module-type": "parser" }, "$:/core/modules/utils/parseutils.js": { "text": "/*\\\ntitle: $:/core/modules/utils/parseutils.js\ntype: application/javascript\nmodule-type: utils\n\nUtility functions concerned with parsing text into tokens.\n\nMost functions have the following pattern:\n\n* The parameters are:\n** `source`: the source string being parsed\n** `pos`: the current parse position within the string\n** Any further parameters are used to identify the token that is being parsed\n* The return value is:\n** null if the token was not found at the specified position\n** an object representing the token with the following standard fields:\n*** `type`: string indicating the type of the token\n*** `start`: start position of the token in the source string\n*** `end`: end position of the token in the source string\n*** Any further fields required to describe the token\n\nThe exception is `skipWhiteSpace`, which just returns the position after the whitespace.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nLook for a whitespace token. Returns null if not found, otherwise returns {type: \"whitespace\", start:, end:,}\n*/\nexports.parseWhiteSpace = function(source,pos) {\n\tvar p = pos,c;\n\twhile(true) {\n\t\tc = source.charAt(p);\n\t\tif((c === \" \") || (c === \"\\f\") || (c === \"\\n\") || (c === \"\\r\") || (c === \"\\t\") || (c === \"\\v\") || (c === \"\\u00a0\")) { // Ignores some obscure unicode spaces\n\t\t\tp++;\n\t\t} else {\n\t\t\tbreak;\n\t\t}\n\t}\n\tif(p === pos) {\n\t\treturn null;\n\t} else {\n\t\treturn {\n\t\t\ttype: \"whitespace\",\n\t\t\tstart: pos,\n\t\t\tend: p\n\t\t}\n\t}\n};\n\n/*\nConvenience wrapper for parseWhiteSpace. Returns the position after the whitespace\n*/\nexports.skipWhiteSpace = function(source,pos) {\n\tvar c;\n\twhile(true) {\n\t\tc = source.charAt(pos);\n\t\tif((c === \" \") || (c === \"\\f\") || (c === \"\\n\") || (c === \"\\r\") || (c === \"\\t\") || (c === \"\\v\") || (c === \"\\u00a0\")) { // Ignores some obscure unicode spaces\n\t\t\tpos++;\n\t\t} else {\n\t\t\treturn pos;\n\t\t}\n\t}\n};\n\n/*\nLook for a given string token. Returns null if not found, otherwise returns {type: \"token\", value:, start:, end:,}\n*/\nexports.parseTokenString = function(source,pos,token) {\n\tvar match = source.indexOf(token,pos) === pos;\n\tif(match) {\n\t\treturn {\n\t\t\ttype: \"token\",\n\t\t\tvalue: token,\n\t\t\tstart: pos,\n\t\t\tend: pos + token.length\n\t\t};\n\t}\n\treturn null;\n};\n\n/*\nLook for a token matching a regex. Returns null if not found, otherwise returns {type: \"regexp\", match:, start:, end:,}\n*/\nexports.parseTokenRegExp = function(source,pos,reToken) {\n\tvar node = {\n\t\ttype: \"regexp\",\n\t\tstart: pos\n\t};\n\treToken.lastIndex = pos;\n\tnode.match = reToken.exec(source);\n\tif(node.match && node.match.index === pos) {\n\t\tnode.end = pos + node.match[0].length;\n\t\treturn node;\n\t} else {\n\t\treturn null;\n\t}\n};\n\n/*\nLook for a string literal. Returns null if not found, otherwise returns {type: \"string\", value:, start:, end:,}\n*/\nexports.parseStringLiteral = function(source,pos) {\n\tvar node = {\n\t\ttype: \"string\",\n\t\tstart: pos\n\t};\n\tvar reString = /(?:\"\"\"([\\s\\S]*?)\"\"\"|\"([^\"]*)\")|(?:'([^']*)')/g;\n\treString.lastIndex = pos;\n\tvar match = reString.exec(source);\n\tif(match && match.index === pos) {\n\t\tnode.value = match[1] !== undefined ? match[1] :(\n\t\t\tmatch[2] !== undefined ? match[2] : match[3] \n\t\t\t\t\t);\n\t\tnode.end = pos + match[0].length;\n\t\treturn node;\n\t} else {\n\t\treturn null;\n\t}\n};\n\n/*\nLook for a macro invocation parameter. Returns null if not found, or {type: \"macro-parameter\", name:, value:, start:, end:}\n*/\nexports.parseMacroParameter = function(source,pos) {\n\tvar node = {\n\t\ttype: \"macro-parameter\",\n\t\tstart: pos\n\t};\n\t// Define our regexp\n\tvar reMacroParameter = /(?:([A-Za-z0-9\\-_]+)\\s*:)?(?:\\s*(?:\"\"\"([\\s\\S]*?)\"\"\"|\"([^\"]*)\"|'([^']*)'|\\[\\[([^\\]]*)\\]\\]|([^\\s>\"'=]+)))/g;\n\t// Skip whitespace\n\tpos = $tw.utils.skipWhiteSpace(source,pos);\n\t// Look for the parameter\n\tvar token = $tw.utils.parseTokenRegExp(source,pos,reMacroParameter);\n\tif(!token) {\n\t\treturn null;\n\t}\n\tpos = token.end;\n\t// Get the parameter details\n\tnode.value = token.match[2] !== undefined ? token.match[2] : (\n\t\t\t\t\ttoken.match[3] !== undefined ? token.match[3] : (\n\t\t\t\t\t\ttoken.match[4] !== undefined ? token.match[4] : (\n\t\t\t\t\t\t\ttoken.match[5] !== undefined ? token.match[5] : (\n\t\t\t\t\t\t\t\ttoken.match[6] !== undefined ? token.match[6] : (\n\t\t\t\t\t\t\t\t\t\"\"\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t)\n\t\t\t\t\t)\n\t\t\t\t);\n\tif(token.match[1]) {\n\t\tnode.name = token.match[1];\n\t}\n\t// Update the end position\n\tnode.end = pos;\n\treturn node;\n};\n\n/*\nLook for a macro invocation. Returns null if not found, or {type: \"macrocall\", name:, parameters:, start:, end:}\n*/\nexports.parseMacroInvocation = function(source,pos) {\n\tvar node = {\n\t\ttype: \"macrocall\",\n\t\tstart: pos,\n\t\tparams: []\n\t};\n\t// Define our regexps\n\tvar reMacroName = /([^\\s>\"'=]+)/g;\n\t// Skip whitespace\n\tpos = $tw.utils.skipWhiteSpace(source,pos);\n\t// Look for a double less than sign\n\tvar token = $tw.utils.parseTokenString(source,pos,\"<<\");\n\tif(!token) {\n\t\treturn null;\n\t}\n\tpos = token.end;\n\t// Get the macro name\n\tvar name = $tw.utils.parseTokenRegExp(source,pos,reMacroName);\n\tif(!name) {\n\t\treturn null;\n\t}\n\tnode.name = name.match[1];\n\tpos = name.end;\n\t// Process parameters\n\tvar parameter = $tw.utils.parseMacroParameter(source,pos);\n\twhile(parameter) {\n\t\tnode.params.push(parameter);\n\t\tpos = parameter.end;\n\t\t// Get the next parameter\n\t\tparameter = $tw.utils.parseMacroParameter(source,pos);\n\t}\n\t// Skip whitespace\n\tpos = $tw.utils.skipWhiteSpace(source,pos);\n\t// Look for a double greater than sign\n\ttoken = $tw.utils.parseTokenString(source,pos,\">>\");\n\tif(!token) {\n\t\treturn null;\n\t}\n\tpos = token.end;\n\t// Update the end position\n\tnode.end = pos;\n\treturn node;\n};\n\n/*\nLook for an HTML attribute definition. Returns null if not found, otherwise returns {type: \"attribute\", name:, valueType: \"string|indirect|macro\", value:, start:, end:,}\n*/\nexports.parseAttribute = function(source,pos) {\n\tvar node = {\n\t\tstart: pos\n\t};\n\t// Define our regexps\n\tvar reAttributeName = /([^\\/\\s>\"'=]+)/g,\n\t\treUnquotedAttribute = /([^\\/\\s<>\"'=]+)/g,\n\t\treIndirectValue = /\\{\\{([^\\}]+)\\}\\}/g;\n\t// Skip whitespace\n\tpos = $tw.utils.skipWhiteSpace(source,pos);\n\t// Get the attribute name\n\tvar name = $tw.utils.parseTokenRegExp(source,pos,reAttributeName);\n\tif(!name) {\n\t\treturn null;\n\t}\n\tnode.name = name.match[1];\n\tpos = name.end;\n\t// Skip whitespace\n\tpos = $tw.utils.skipWhiteSpace(source,pos);\n\t// Look for an equals sign\n\tvar token = $tw.utils.parseTokenString(source,pos,\"=\");\n\tif(token) {\n\t\tpos = token.end;\n\t\t// Skip whitespace\n\t\tpos = $tw.utils.skipWhiteSpace(source,pos);\n\t\t// Look for a string literal\n\t\tvar stringLiteral = $tw.utils.parseStringLiteral(source,pos);\n\t\tif(stringLiteral) {\n\t\t\tpos = stringLiteral.end;\n\t\t\tnode.type = \"string\";\n\t\t\tnode.value = stringLiteral.value;\n\t\t} else {\n\t\t\t// Look for an indirect value\n\t\t\tvar indirectValue = $tw.utils.parseTokenRegExp(source,pos,reIndirectValue);\n\t\t\tif(indirectValue) {\n\t\t\t\tpos = indirectValue.end;\n\t\t\t\tnode.type = \"indirect\";\n\t\t\t\tnode.textReference = indirectValue.match[1];\n\t\t\t} else {\n\t\t\t\t// Look for a unquoted value\n\t\t\t\tvar unquotedValue = $tw.utils.parseTokenRegExp(source,pos,reUnquotedAttribute);\n\t\t\t\tif(unquotedValue) {\n\t\t\t\t\tpos = unquotedValue.end;\n\t\t\t\t\tnode.type = \"string\";\n\t\t\t\t\tnode.value = unquotedValue.match[1];\n\t\t\t\t} else {\n\t\t\t\t\t// Look for a macro invocation value\n\t\t\t\t\tvar macroInvocation = $tw.utils.parseMacroInvocation(source,pos);\n\t\t\t\t\tif(macroInvocation) {\n\t\t\t\t\t\tpos = macroInvocation.end;\n\t\t\t\t\t\tnode.type = \"macro\";\n\t\t\t\t\t\tnode.value = macroInvocation;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tnode.type = \"string\";\n\t\t\t\t\t\tnode.value = \"true\";\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t} else {\n\t\tnode.type = \"string\";\n\t\tnode.value = \"true\";\n\t}\n\t// Update the end position\n\tnode.end = pos;\n\treturn node;\n};\n\n})();\n", "title": "$:/core/modules/utils/parseutils.js", "type": "application/javascript", "module-type": "utils" }, "$:/core/modules/parsers/textparser.js": { "text": "/*\\\ntitle: $:/core/modules/parsers/textparser.js\ntype: application/javascript\nmodule-type: parser\n\nThe plain text parser processes blocks of source text into a degenerate parse tree consisting of a single text node\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar TextParser = function(type,text,options) {\n\tthis.tree = [{\n\t\ttype: \"codeblock\",\n\t\tattributes: {\n\t\t\tcode: {type: \"string\", value: text},\n\t\t\tlanguage: {type: \"string\", value: type}\n\t\t}\n\t}];\n};\n\nexports[\"text/plain\"] = TextParser;\nexports[\"text/x-tiddlywiki\"] = TextParser;\nexports[\"application/javascript\"] = TextParser;\nexports[\"application/json\"] = TextParser;\nexports[\"text/css\"] = TextParser;\nexports[\"application/x-tiddler-dictionary\"] = TextParser;\n\n})();\n\n", "title": "$:/core/modules/parsers/textparser.js", "type": "application/javascript", "module-type": "parser" }, "$:/core/modules/parsers/videoparser.js": { "text": "/*\\\ntitle: $:/core/modules/parsers/videoparser.js\ntype: application/javascript\nmodule-type: parser\n\nThe video parser parses a video tiddler into an embeddable HTML element\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar AudioParser = function(type,text,options) {\n\tvar element = {\n\t\t\ttype: \"element\",\n\t\t\ttag: \"video\",\n\t\t\tattributes: {\n\t\t\t\tcontrols: {type: \"string\", value: \"controls\"}\n\t\t\t}\n\t\t},\n\t\tsrc;\n\tif(options._canonical_uri) {\n\t\telement.attributes.src = {type: \"string\", value: options._canonical_uri};\n\t} else if(text) {\n\t\telement.attributes.src = {type: \"string\", value: \"data:\" + type + \";base64,\" + text};\n\t}\n\tthis.tree = [element];\n};\n\nexports[\"video/mp4\"] = AudioParser;\n\n})();\n\n", "title": "$:/core/modules/parsers/videoparser.js", "type": "application/javascript", "module-type": "parser" }, "$:/core/modules/parsers/wikiparser/rules/codeblock.js": { "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/codeblock.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text rule for code blocks. For example:\n\n```\n\t```\n\tThis text will not be //wikified//\n\t```\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"codeblock\";\nexports.types = {block: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match and get language if defined\n\tthis.matchRegExp = /```([\\w-]*)\\r?\\n/mg;\n};\n\nexports.parse = function() {\n\tvar reEnd = /(\\r?\\n```$)/mg;\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\n\t// Look for the end of the block\n\treEnd.lastIndex = this.parser.pos;\n\tvar match = reEnd.exec(this.parser.source),\n\t\ttext;\n\t// Process the block\n\tif(match) {\n\t\ttext = this.parser.source.substring(this.parser.pos,match.index);\n\t\tthis.parser.pos = match.index + match[0].length;\n\t} else {\n\t\ttext = this.parser.source.substr(this.parser.pos);\n\t\tthis.parser.pos = this.parser.sourceLength;\n\t}\n\t// Return the $codeblock widget\n\treturn [{\n\t\t\ttype: \"codeblock\",\n\t\t\tattributes: {\n\t\t\t\t\tcode: {type: \"string\", value: text},\n\t\t\t\t\tlanguage: {type: \"string\", value: this.match[1]}\n\t\t\t}\n\t}];\n};\n\n})();\n", "title": "$:/core/modules/parsers/wikiparser/rules/codeblock.js", "type": "application/javascript", "module-type": "wikirule" }, "$:/core/modules/parsers/wikiparser/rules/codeinline.js": { "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/codeinline.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for code runs. For example:\n\n```\n\tThis is a `code run`.\n\tThis is another ``code run``\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"codeinline\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /(``?)/mg;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\tvar reEnd = new RegExp(this.match[1], \"mg\");\n\t// Look for the end marker\n\treEnd.lastIndex = this.parser.pos;\n\tvar match = reEnd.exec(this.parser.source),\n\t\ttext;\n\t// Process the text\n\tif(match) {\n\t\ttext = this.parser.source.substring(this.parser.pos,match.index);\n\t\tthis.parser.pos = match.index + match[0].length;\n\t} else {\n\t\ttext = this.parser.source.substr(this.parser.pos);\n\t\tthis.parser.pos = this.parser.sourceLength;\n\t}\n\treturn [{\n\t\ttype: \"element\",\n\t\ttag: \"code\",\n\t\tchildren: [{\n\t\t\ttype: \"text\",\n\t\t\ttext: text\n\t\t}]\n\t}];\n};\n\n})();\n", "title": "$:/core/modules/parsers/wikiparser/rules/codeinline.js", "type": "application/javascript", "module-type": "wikirule" }, "$:/core/modules/parsers/wikiparser/rules/commentblock.js": { "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/commentblock.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text block rule for HTML comments. For example:\n\n```\n<!-- This is a comment -->\n```\n\nNote that the syntax for comments is simplified to an opening \"<!--\" sequence and a closing \"-->\" sequence -- HTML itself implements a more complex format (see http://ostermiller.org/findhtmlcomment.html)\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"commentblock\";\nexports.types = {block: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\tthis.matchRegExp = /<!--/mg;\n\tthis.endMatchRegExp = /-->/mg;\n};\n\nexports.findNextMatch = function(startPos) {\n\tthis.matchRegExp.lastIndex = startPos;\n\tthis.match = this.matchRegExp.exec(this.parser.source);\n\tif(this.match) {\n\t\tthis.endMatchRegExp.lastIndex = startPos + this.match[0].length;\n\t\tthis.endMatch = this.endMatchRegExp.exec(this.parser.source);\n\t\tif(this.endMatch) {\n\t\t\treturn this.match.index;\n\t\t}\n\t}\n\treturn undefined;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.endMatchRegExp.lastIndex;\n\t// Don't return any elements\n\treturn [];\n};\n\n})();\n", "title": "$:/core/modules/parsers/wikiparser/rules/commentblock.js", "type": "application/javascript", "module-type": "wikirule" }, "$:/core/modules/parsers/wikiparser/rules/commentinline.js": { "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/commentinline.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for HTML comments. For example:\n\n```\n<!-- This is a comment -->\n```\n\nNote that the syntax for comments is simplified to an opening \"<!--\" sequence and a closing \"-->\" sequence -- HTML itself implements a more complex format (see http://ostermiller.org/findhtmlcomment.html)\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"commentinline\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\tthis.matchRegExp = /<!--/mg;\n\tthis.endMatchRegExp = /-->/mg;\n};\n\nexports.findNextMatch = function(startPos) {\n\tthis.matchRegExp.lastIndex = startPos;\n\tthis.match = this.matchRegExp.exec(this.parser.source);\n\tif(this.match) {\n\t\tthis.endMatchRegExp.lastIndex = startPos + this.match[0].length;\n\t\tthis.endMatch = this.endMatchRegExp.exec(this.parser.source);\n\t\tif(this.endMatch) {\n\t\t\treturn this.match.index;\n\t\t}\n\t}\n\treturn undefined;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.endMatchRegExp.lastIndex;\n\t// Don't return any elements\n\treturn [];\n};\n\n})();\n", "title": "$:/core/modules/parsers/wikiparser/rules/commentinline.js", "type": "application/javascript", "module-type": "wikirule" }, "$:/core/modules/parsers/wikiparser/rules/dash.js": { "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/dash.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for dashes. For example:\n\n```\nThis is an en-dash: --\n\nThis is an em-dash: ---\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"dash\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /-{2,3}(?!-)/mg;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\tvar dash = this.match[0].length === 2 ? \"–\" : \"—\";\n\treturn [{\n\t\ttype: \"entity\",\n\t\tentity: dash\n\t}];\n};\n\n})();\n", "title": "$:/core/modules/parsers/wikiparser/rules/dash.js", "type": "application/javascript", "module-type": "wikirule" }, "$:/core/modules/parsers/wikiparser/rules/emphasis/bold.js": { "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/emphasis/bold.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for emphasis - bold. For example:\n\n```\n\tThis is ''bold'' text\n```\n\nThis wikiparser can be modified using the rules eg:\n\n```\n\\rules except bold \n\\rules only bold \n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"bold\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /''/mg;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\n\t// Parse the run including the terminator\n\tvar tree = this.parser.parseInlineRun(/''/mg,{eatTerminator: true});\n\n\t// Return the classed span\n\treturn [{\n\t\ttype: \"element\",\n\t\ttag: \"strong\",\n\t\tchildren: tree\n\t}];\n};\n\n})();", "title": "$:/core/modules/parsers/wikiparser/rules/emphasis/bold.js", "type": "application/javascript", "module-type": "wikirule" }, "$:/core/modules/parsers/wikiparser/rules/emphasis/italic.js": { "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/emphasis/italic.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for emphasis - italic. For example:\n\n```\n\tThis is //italic// text\n```\n\nThis wikiparser can be modified using the rules eg:\n\n```\n\\rules except italic\n\\rules only italic\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"italic\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /\\/\\//mg;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\n\t// Parse the run including the terminator\n\tvar tree = this.parser.parseInlineRun(/\\/\\//mg,{eatTerminator: true});\n\n\t// Return the classed span\n\treturn [{\n\t\ttype: \"element\",\n\t\ttag: \"em\",\n\t\tchildren: tree\n\t}];\n};\n\n})();", "title": "$:/core/modules/parsers/wikiparser/rules/emphasis/italic.js", "type": "application/javascript", "module-type": "wikirule" }, "$:/core/modules/parsers/wikiparser/rules/emphasis/strikethrough.js": { "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/emphasis/strikethrough.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for emphasis - strikethrough. For example:\n\n```\n\tThis is ~~strikethrough~~ text\n```\n\nThis wikiparser can be modified using the rules eg:\n\n```\n\\rules except strikethrough \n\\rules only strikethrough \n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"strikethrough\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /~~/mg;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\n\t// Parse the run including the terminator\n\tvar tree = this.parser.parseInlineRun(/~~/mg,{eatTerminator: true});\n\n\t// Return the classed span\n\treturn [{\n\t\ttype: \"element\",\n\t\ttag: \"strike\",\n\t\tchildren: tree\n\t}];\n};\n\n})();\n", "title": "$:/core/modules/parsers/wikiparser/rules/emphasis/strikethrough.js", "type": "application/javascript", "module-type": "wikirule" }, "$:/core/modules/parsers/wikiparser/rules/emphasis/subscript.js": { "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/emphasis/subscript.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for emphasis - subscript. For example:\n\n```\n\tThis is ,,subscript,, text\n```\n\nThis wikiparser can be modified using the rules eg:\n\n```\n\\rules except subscript \n\\rules only subscript \n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"subscript\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /,,/mg;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\n\t// Parse the run including the terminator\n\tvar tree = this.parser.parseInlineRun(/,,/mg,{eatTerminator: true});\n\n\t// Return the classed span\n\treturn [{\n\t\ttype: \"element\",\n\t\ttag: \"sub\",\n\t\tchildren: tree\n\t}];\n};\n\n})();\n", "title": "$:/core/modules/parsers/wikiparser/rules/emphasis/subscript.js", "type": "application/javascript", "module-type": "wikirule" }, "$:/core/modules/parsers/wikiparser/rules/emphasis/superscript.js": { "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/emphasis/superscript.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for emphasis - superscript. For example:\n\n```\n\tThis is ^^superscript^^ text\n```\n\nThis wikiparser can be modified using the rules eg:\n\n```\n\\rules except superscript \n\\rules only superscript \n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"superscript\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /\\^\\^/mg;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\n\t// Parse the run including the terminator\n\tvar tree = this.parser.parseInlineRun(/\\^\\^/mg,{eatTerminator: true});\n\n\t// Return the classed span\n\treturn [{\n\t\ttype: \"element\",\n\t\ttag: \"sup\",\n\t\tchildren: tree\n\t}];\n};\n\n})();", "title": "$:/core/modules/parsers/wikiparser/rules/emphasis/superscript.js", "type": "application/javascript", "module-type": "wikirule" }, "$:/core/modules/parsers/wikiparser/rules/emphasis/underscore.js": { "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/emphasis/underscore.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for emphasis - underscore. For example:\n\n```\n\tThis is __underscore__ text\n```\n\nThis wikiparser can be modified using the rules eg:\n\n```\n\\rules except underscore \n\\rules only underscore\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"underscore\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /__/mg;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\n\t// Parse the run including the terminator\n\tvar tree = this.parser.parseInlineRun(/__/mg,{eatTerminator: true});\n\n\t// Return the classed span\n\treturn [{\n\t\ttype: \"element\",\n\t\ttag: \"u\",\n\t\tchildren: tree\n\t}];\n};\n\n})();", "title": "$:/core/modules/parsers/wikiparser/rules/emphasis/underscore.js", "type": "application/javascript", "module-type": "wikirule" }, "$:/core/modules/parsers/wikiparser/rules/entity.js": { "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/entity.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for HTML entities. For example:\n\n```\n\tThis is a copyright symbol: ©\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"entity\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /(&#?[a-zA-Z0-9]{2,8};)/mg;\n};\n\n/*\nParse the most recent match\n*/\nexports.parse = function() {\n\t// Get all the details of the match\n\tvar entityString = this.match[1];\n\t// Move past the macro call\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t// Return the entity\n\treturn [{type: \"entity\", entity: this.match[0]}];\n};\n\n})();\n", "title": "$:/core/modules/parsers/wikiparser/rules/entity.js", "type": "application/javascript", "module-type": "wikirule" }, "$:/core/modules/parsers/wikiparser/rules/extlink.js": { "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/extlink.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for external links. For example:\n\n```\nAn external link: http://www.tiddlywiki.com/\n\nA suppressed external link: ~http://www.tiddlyspace.com/\n```\n\nExternal links can be suppressed by preceding them with `~`.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"extlink\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /~?(?:file|http|https|mailto|ftp|irc|news|data|skype):[^\\s<>{}\\[\\]`|\"\\\\^~]+(?:\\/|\\b)/mg;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t// Create the link unless it is suppressed\n\tif(this.match[0].substr(0,1) === \"~\") {\n\t\treturn [{type: \"text\", text: this.match[0].substr(1)}];\n\t} else {\n\t\treturn [{\n\t\t\ttype: \"element\",\n\t\t\ttag: \"a\",\n\t\t\tattributes: {\n\t\t\t\thref: {type: \"string\", value: this.match[0]},\n\t\t\t\t\"class\": {type: \"string\", value: \"tc-tiddlylink-external\"},\n\t\t\t\ttarget: {type: \"string\", value: \"_blank\"},\n\t\t\t\trel: {type: \"string\", value: \"noopener noreferrer\"}\n\t\t\t},\n\t\t\tchildren: [{\n\t\t\t\ttype: \"text\", text: this.match[0]\n\t\t\t}]\n\t\t}];\n\t}\n};\n\n})();\n", "title": "$:/core/modules/parsers/wikiparser/rules/extlink.js", "type": "application/javascript", "module-type": "wikirule" }, "$:/core/modules/parsers/wikiparser/rules/filteredtranscludeblock.js": { "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/filteredtranscludeblock.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text rule for block-level filtered transclusion. For example:\n\n```\n{{{ [tag[docs]] }}}\n{{{ [tag[docs]] |tooltip}}}\n{{{ [tag[docs]] ||TemplateTitle}}}\n{{{ [tag[docs]] |tooltip||TemplateTitle}}}\n{{{ [tag[docs]] }}width:40;height:50;}.class.class\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"filteredtranscludeblock\";\nexports.types = {block: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /\\{\\{\\{([^\\|]+?)(?:\\|([^\\|\\{\\}]+))?(?:\\|\\|([^\\|\\{\\}]+))?\\}\\}([^\\}]*)\\}(?:\\.(\\S+))?(?:\\r?\\n|$)/mg;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t// Get the match details\n\tvar filter = this.match[1],\n\t\ttooltip = this.match[2],\n\t\ttemplate = $tw.utils.trim(this.match[3]),\n\t\tstyle = this.match[4],\n\t\tclasses = this.match[5];\n\t// Return the list widget\n\tvar node = {\n\t\ttype: \"list\",\n\t\tattributes: {\n\t\t\tfilter: {type: \"string\", value: filter}\n\t\t},\n\t\tisBlock: true\n\t};\n\tif(tooltip) {\n\t\tnode.attributes.tooltip = {type: \"string\", value: tooltip};\n\t}\n\tif(template) {\n\t\tnode.attributes.template = {type: \"string\", value: template};\n\t}\n\tif(style) {\n\t\tnode.attributes.style = {type: \"string\", value: style};\n\t}\n\tif(classes) {\n\t\tnode.attributes.itemClass = {type: \"string\", value: classes.split(\".\").join(\" \")};\n\t}\n\treturn [node];\n};\n\n})();\n", "title": "$:/core/modules/parsers/wikiparser/rules/filteredtranscludeblock.js", "type": "application/javascript", "module-type": "wikirule" }, "$:/core/modules/parsers/wikiparser/rules/filteredtranscludeinline.js": { "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/filteredtranscludeinline.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text rule for inline filtered transclusion. For example:\n\n```\n{{{ [tag[docs]] }}}\n{{{ [tag[docs]] |tooltip}}}\n{{{ [tag[docs]] ||TemplateTitle}}}\n{{{ [tag[docs]] |tooltip||TemplateTitle}}}\n{{{ [tag[docs]] }}width:40;height:50;}.class.class\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"filteredtranscludeinline\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /\\{\\{\\{([^\\|]+?)(?:\\|([^\\|\\{\\}]+))?(?:\\|\\|([^\\|\\{\\}]+))?\\}\\}([^\\}]*)\\}(?:\\.(\\S+))?/mg;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t// Get the match details\n\tvar filter = this.match[1],\n\t\ttooltip = this.match[2],\n\t\ttemplate = $tw.utils.trim(this.match[3]),\n\t\tstyle = this.match[4],\n\t\tclasses = this.match[5];\n\t// Return the list widget\n\tvar node = {\n\t\ttype: \"list\",\n\t\tattributes: {\n\t\t\tfilter: {type: \"string\", value: filter}\n\t\t}\n\t};\n\tif(tooltip) {\n\t\tnode.attributes.tooltip = {type: \"string\", value: tooltip};\n\t}\n\tif(template) {\n\t\tnode.attributes.template = {type: \"string\", value: template};\n\t}\n\tif(style) {\n\t\tnode.attributes.style = {type: \"string\", value: style};\n\t}\n\tif(classes) {\n\t\tnode.attributes.itemClass = {type: \"string\", value: classes.split(\".\").join(\" \")};\n\t}\n\treturn [node];\n};\n\n})();\n", "title": "$:/core/modules/parsers/wikiparser/rules/filteredtranscludeinline.js", "type": "application/javascript", "module-type": "wikirule" }, "$:/core/modules/parsers/wikiparser/rules/hardlinebreaks.js": { "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/hardlinebreaks.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for marking areas with hard line breaks. For example:\n\n```\n\"\"\"\nThis is some text\nThat is set like\nIt is a Poem\nWhen it is\nClearly\nNot\n\"\"\"\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"hardlinebreaks\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /\"\"\"(?:\\r?\\n)?/mg;\n};\n\nexports.parse = function() {\n\tvar reEnd = /(\"\"\")|(\\r?\\n)/mg,\n\t\ttree = [],\n\t\tmatch;\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\tdo {\n\t\t// Parse the run up to the terminator\n\t\ttree.push.apply(tree,this.parser.parseInlineRun(reEnd,{eatTerminator: false}));\n\t\t// Redo the terminator match\n\t\treEnd.lastIndex = this.parser.pos;\n\t\tmatch = reEnd.exec(this.parser.source);\n\t\tif(match) {\n\t\t\tthis.parser.pos = reEnd.lastIndex;\n\t\t\t// Add a line break if the terminator was a line break\n\t\t\tif(match[2]) {\n\t\t\t\ttree.push({type: \"element\", tag: \"br\"});\n\t\t\t}\n\t\t}\n\t} while(match && !match[1]);\n\t// Return the nodes\n\treturn tree;\n};\n\n})();\n", "title": "$:/core/modules/parsers/wikiparser/rules/hardlinebreaks.js", "type": "application/javascript", "module-type": "wikirule" }, "$:/core/modules/parsers/wikiparser/rules/heading.js": { "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/heading.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text block rule for headings\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"heading\";\nexports.types = {block: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /(!{1,6})/mg;\n};\n\n/*\nParse the most recent match\n*/\nexports.parse = function() {\n\t// Get all the details of the match\n\tvar headingLevel = this.match[1].length;\n\t// Move past the !s\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t// Parse any classes, whitespace and then the heading itself\n\tvar classes = this.parser.parseClasses();\n\tthis.parser.skipWhitespace({treatNewlinesAsNonWhitespace: true});\n\tvar tree = this.parser.parseInlineRun(/(\\r?\\n)/mg);\n\t// Return the heading\n\treturn [{\n\t\ttype: \"element\",\n\t\ttag: \"h\" + headingLevel, \n\t\tattributes: {\n\t\t\t\"class\": {type: \"string\", value: classes.join(\" \")}\n\t\t},\n\t\tchildren: tree\n\t}];\n};\n})();\n", "title": "$:/core/modules/parsers/wikiparser/rules/heading.js", "type": "application/javascript", "module-type": "wikirule" }, "$:/core/modules/parsers/wikiparser/rules/horizrule.js": { "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/horizrule.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text block rule for rules. For example:\n\n```\n---\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"horizrule\";\nexports.types = {block: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /-{3,}\\r?(?:\\n|$)/mg;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\treturn [{type: \"element\", tag: \"hr\"}];\n};\n\n})();\n", "title": "$:/core/modules/parsers/wikiparser/rules/horizrule.js", "type": "application/javascript", "module-type": "wikirule" }, "$:/core/modules/parsers/wikiparser/rules/html.js": { "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/html.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki rule for HTML elements and widgets. For example:\n\n{{{\n<aside>\nThis is an HTML5 aside element\n</aside>\n\n<$slider target=\"MyTiddler\">\nThis is a widget invocation\n</$slider>\n\n}}}\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"html\";\nexports.types = {inline: true, block: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n};\n\nexports.findNextMatch = function(startPos) {\n\t// Find the next tag\n\tthis.nextTag = this.findNextTag(this.parser.source,startPos,{\n\t\trequireLineBreak: this.is.block\n\t});\n\treturn this.nextTag ? this.nextTag.start : undefined;\n};\n\n/*\nParse the most recent match\n*/\nexports.parse = function() {\n\t// Retrieve the most recent match so that recursive calls don't overwrite it\n\tvar tag = this.nextTag;\n\tthis.nextTag = null;\n\t// Advance the parser position to past the tag\n\tthis.parser.pos = tag.end;\n\t// Check for an immediately following double linebreak\n\tvar hasLineBreak = !tag.isSelfClosing && !!$tw.utils.parseTokenRegExp(this.parser.source,this.parser.pos,/([^\\S\\n\\r]*\\r?\\n(?:[^\\S\\n\\r]*\\r?\\n|$))/g);\n\t// Set whether we're in block mode\n\ttag.isBlock = this.is.block || hasLineBreak;\n\t// Parse the body if we need to\n\tif(!tag.isSelfClosing && $tw.config.htmlVoidElements.indexOf(tag.tag) === -1) {\n\t\t\tvar reEndString = \"</\" + $tw.utils.escapeRegExp(tag.tag) + \">\",\n\t\t\t\treEnd = new RegExp(\"(\" + reEndString + \")\",\"mg\");\n\t\tif(hasLineBreak) {\n\t\t\ttag.children = this.parser.parseBlocks(reEndString);\n\t\t} else {\n\t\t\ttag.children = this.parser.parseInlineRun(reEnd);\n\t\t}\n\t\treEnd.lastIndex = this.parser.pos;\n\t\tvar endMatch = reEnd.exec(this.parser.source);\n\t\tif(endMatch && endMatch.index === this.parser.pos) {\n\t\t\tthis.parser.pos = endMatch.index + endMatch[0].length;\n\t\t}\n\t}\n\t// Return the tag\n\treturn [tag];\n};\n\n/*\nLook for an HTML tag. Returns null if not found, otherwise returns {type: \"element\", name:, attributes: [], isSelfClosing:, start:, end:,}\n*/\nexports.parseTag = function(source,pos,options) {\n\toptions = options || {};\n\tvar token,\n\t\tnode = {\n\t\t\ttype: \"element\",\n\t\t\tstart: pos,\n\t\t\tattributes: {}\n\t\t};\n\t// Define our regexps\n\tvar reTagName = /([a-zA-Z0-9\\-\\$]+)/g;\n\t// Skip whitespace\n\tpos = $tw.utils.skipWhiteSpace(source,pos);\n\t// Look for a less than sign\n\ttoken = $tw.utils.parseTokenString(source,pos,\"<\");\n\tif(!token) {\n\t\treturn null;\n\t}\n\tpos = token.end;\n\t// Get the tag name\n\ttoken = $tw.utils.parseTokenRegExp(source,pos,reTagName);\n\tif(!token) {\n\t\treturn null;\n\t}\n\tnode.tag = token.match[1];\n\tif(node.tag.charAt(0) === \"$\") {\n\t\tnode.type = node.tag.substr(1);\n\t}\n\tpos = token.end;\n\t// Process attributes\n\tvar attribute = $tw.utils.parseAttribute(source,pos);\n\twhile(attribute) {\n\t\tnode.attributes[attribute.name] = attribute;\n\t\tpos = attribute.end;\n\t\t// Get the next attribute\n\t\tattribute = $tw.utils.parseAttribute(source,pos);\n\t}\n\t// Skip whitespace\n\tpos = $tw.utils.skipWhiteSpace(source,pos);\n\t// Look for a closing slash\n\ttoken = $tw.utils.parseTokenString(source,pos,\"/\");\n\tif(token) {\n\t\tpos = token.end;\n\t\tnode.isSelfClosing = true;\n\t}\n\t// Look for a greater than sign\n\ttoken = $tw.utils.parseTokenString(source,pos,\">\");\n\tif(!token) {\n\t\treturn null;\n\t}\n\tpos = token.end;\n\t// Check for a required line break\n\tif(options.requireLineBreak) {\n\t\ttoken = $tw.utils.parseTokenRegExp(source,pos,/([^\\S\\n\\r]*\\r?\\n(?:[^\\S\\n\\r]*\\r?\\n|$))/g);\n\t\tif(!token) {\n\t\t\treturn null;\n\t\t}\n\t}\n\t// Update the end position\n\tnode.end = pos;\n\treturn node;\n};\n\nexports.findNextTag = function(source,pos,options) {\n\t// A regexp for finding candidate HTML tags\n\tvar reLookahead = /<([a-zA-Z\\-\\$]+)/g;\n\t// Find the next candidate\n\treLookahead.lastIndex = pos;\n\tvar match = reLookahead.exec(source);\n\twhile(match) {\n\t\t// Try to parse the candidate as a tag\n\t\tvar tag = this.parseTag(source,match.index,options);\n\t\t// Return success\n\t\tif(tag && this.isLegalTag(tag)) {\n\t\t\treturn tag;\n\t\t}\n\t\t// Look for the next match\n\t\treLookahead.lastIndex = match.index + 1;\n\t\tmatch = reLookahead.exec(source);\n\t}\n\t// Failed\n\treturn null;\n};\n\nexports.isLegalTag = function(tag) {\n\t// Widgets are always OK\n\tif(tag.type !== \"element\") {\n\t\treturn true;\n\t// If it's an HTML tag that starts with a dash then it's not legal\n\t} else if(tag.tag.charAt(0) === \"-\") {\n\t\treturn false;\n\t} else {\n\t\t// Otherwise it's OK\n\t\treturn true;\n\t}\n};\n\n})();\n", "title": "$:/core/modules/parsers/wikiparser/rules/html.js", "type": "application/javascript", "module-type": "wikirule" }, "$:/core/modules/parsers/wikiparser/rules/image.js": { "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/image.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for embedding images. For example:\n\n```\n[img[http://tiddlywiki.com/fractalveg.jpg]]\n[img width=23 height=24 [http://tiddlywiki.com/fractalveg.jpg]]\n[img width={{!!width}} height={{!!height}} [http://tiddlywiki.com/fractalveg.jpg]]\n[img[Description of image|http://tiddlywiki.com/fractalveg.jpg]]\n[img[TiddlerTitle]]\n[img[Description of image|TiddlerTitle]]\n```\n\nGenerates the `<$image>` widget.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"image\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n};\n\nexports.findNextMatch = function(startPos) {\n\t// Find the next tag\n\tthis.nextImage = this.findNextImage(this.parser.source,startPos);\n\treturn this.nextImage ? this.nextImage.start : undefined;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.nextImage.end;\n\tvar node = {\n\t\ttype: \"image\",\n\t\tattributes: this.nextImage.attributes\n\t};\n\treturn [node];\n};\n\n/*\nFind the next image from the current position\n*/\nexports.findNextImage = function(source,pos) {\n\t// A regexp for finding candidate HTML tags\n\tvar reLookahead = /(\\[img)/g;\n\t// Find the next candidate\n\treLookahead.lastIndex = pos;\n\tvar match = reLookahead.exec(source);\n\twhile(match) {\n\t\t// Try to parse the candidate as a tag\n\t\tvar tag = this.parseImage(source,match.index);\n\t\t// Return success\n\t\tif(tag) {\n\t\t\treturn tag;\n\t\t}\n\t\t// Look for the next match\n\t\treLookahead.lastIndex = match.index + 1;\n\t\tmatch = reLookahead.exec(source);\n\t}\n\t// Failed\n\treturn null;\n};\n\n/*\nLook for an image at the specified position. Returns null if not found, otherwise returns {type: \"image\", attributes: [], isSelfClosing:, start:, end:,}\n*/\nexports.parseImage = function(source,pos) {\n\tvar token,\n\t\tnode = {\n\t\t\ttype: \"image\",\n\t\t\tstart: pos,\n\t\t\tattributes: {}\n\t\t};\n\t// Skip whitespace\n\tpos = $tw.utils.skipWhiteSpace(source,pos);\n\t// Look for the `[img`\n\ttoken = $tw.utils.parseTokenString(source,pos,\"[img\");\n\tif(!token) {\n\t\treturn null;\n\t}\n\tpos = token.end;\n\t// Skip whitespace\n\tpos = $tw.utils.skipWhiteSpace(source,pos);\n\t// Process attributes\n\tif(source.charAt(pos) !== \"[\") {\n\t\tvar attribute = $tw.utils.parseAttribute(source,pos);\n\t\twhile(attribute) {\n\t\t\tnode.attributes[attribute.name] = attribute;\n\t\t\tpos = attribute.end;\n\t\t\tpos = $tw.utils.skipWhiteSpace(source,pos);\n\t\t\tif(source.charAt(pos) !== \"[\") {\n\t\t\t\t// Get the next attribute\n\t\t\t\tattribute = $tw.utils.parseAttribute(source,pos);\n\t\t\t} else {\n\t\t\t\tattribute = null;\n\t\t\t}\n\t\t}\n\t}\n\t// Skip whitespace\n\tpos = $tw.utils.skipWhiteSpace(source,pos);\n\t// Look for the `[` after the attributes\n\ttoken = $tw.utils.parseTokenString(source,pos,\"[\");\n\tif(!token) {\n\t\treturn null;\n\t}\n\tpos = token.end;\n\t// Skip whitespace\n\tpos = $tw.utils.skipWhiteSpace(source,pos);\n\t// Get the source up to the terminating `]]`\n\ttoken = $tw.utils.parseTokenRegExp(source,pos,/(?:([^|\\]]*?)\\|)?([^\\]]+?)\\]\\]/g);\n\tif(!token) {\n\t\treturn null;\n\t}\n\tpos = token.end;\n\tif(token.match[1]) {\n\t\tnode.attributes.tooltip = {type: \"string\", value: token.match[1].trim()};\n\t}\n\tnode.attributes.source = {type: \"string\", value: (token.match[2] || \"\").trim()};\n\t// Update the end position\n\tnode.end = pos;\n\treturn node;\n};\n\n})();\n", "title": "$:/core/modules/parsers/wikiparser/rules/image.js", "type": "application/javascript", "module-type": "wikirule" }, "$:/core/modules/parsers/wikiparser/rules/list.js": { "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/list.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text block rule for lists. For example:\n\n```\n* This is an unordered list\n* It has two items\n\n# This is a numbered list\n## With a subitem\n# And a third item\n\n; This is a term that is being defined\n: This is the definition of that term\n```\n\nNote that lists can be nested arbitrarily:\n\n```\n#** One\n#* Two\n#** Three\n#**** Four\n#**# Five\n#**## Six\n## Seven\n### Eight\n## Nine\n```\n\nA CSS class can be applied to a list item as follows:\n\n```\n* List item one\n*.active List item two has the class `active`\n* List item three\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"list\";\nexports.types = {block: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /([\\*#;:>]+)/mg;\n};\n\nvar listTypes = {\n\t\"*\": {listTag: \"ul\", itemTag: \"li\"},\n\t\"#\": {listTag: \"ol\", itemTag: \"li\"},\n\t\";\": {listTag: \"dl\", itemTag: \"dt\"},\n\t\":\": {listTag: \"dl\", itemTag: \"dd\"},\n\t\">\": {listTag: \"blockquote\", itemTag: \"p\"}\n};\n\n/*\nParse the most recent match\n*/\nexports.parse = function() {\n\t// Array of parse tree nodes for the previous row of the list\n\tvar listStack = [];\n\t// Cycle through the items in the list\n\twhile(true) {\n\t\t// Match the list marker\n\t\tvar reMatch = /([\\*#;:>]+)/mg;\n\t\treMatch.lastIndex = this.parser.pos;\n\t\tvar match = reMatch.exec(this.parser.source);\n\t\tif(!match || match.index !== this.parser.pos) {\n\t\t\tbreak;\n\t\t}\n\t\t// Check whether the list type of the top level matches\n\t\tvar listInfo = listTypes[match[0].charAt(0)];\n\t\tif(listStack.length > 0 && listStack[0].tag !== listInfo.listTag) {\n\t\t\tbreak;\n\t\t}\n\t\t// Move past the list marker\n\t\tthis.parser.pos = match.index + match[0].length;\n\t\t// Walk through the list markers for the current row\n\t\tfor(var t=0; t<match[0].length; t++) {\n\t\t\tlistInfo = listTypes[match[0].charAt(t)];\n\t\t\t// Remove any stacked up element if we can't re-use it because the list type doesn't match\n\t\t\tif(listStack.length > t && listStack[t].tag !== listInfo.listTag) {\n\t\t\t\tlistStack.splice(t,listStack.length - t);\n\t\t\t}\n\t\t\t// Construct the list element or reuse the previous one at this level\n\t\t\tif(listStack.length <= t) {\n\t\t\t\tvar listElement = {type: \"element\", tag: listInfo.listTag, children: [\n\t\t\t\t\t{type: \"element\", tag: listInfo.itemTag, children: []}\n\t\t\t\t]};\n\t\t\t\t// Link this list element into the last child item of the parent list item\n\t\t\t\tif(t) {\n\t\t\t\t\tvar prevListItem = listStack[t-1].children[listStack[t-1].children.length-1];\n\t\t\t\t\tprevListItem.children.push(listElement);\n\t\t\t\t}\n\t\t\t\t// Save this element in the stack\n\t\t\t\tlistStack[t] = listElement;\n\t\t\t} else if(t === (match[0].length - 1)) {\n\t\t\t\tlistStack[t].children.push({type: \"element\", tag: listInfo.itemTag, children: []});\n\t\t\t}\n\t\t}\n\t\tif(listStack.length > match[0].length) {\n\t\t\tlistStack.splice(match[0].length,listStack.length - match[0].length);\n\t\t}\n\t\t// Process the body of the list item into the last list item\n\t\tvar lastListChildren = listStack[listStack.length-1].children,\n\t\t\tlastListItem = lastListChildren[lastListChildren.length-1],\n\t\t\tclasses = this.parser.parseClasses();\n\t\tthis.parser.skipWhitespace({treatNewlinesAsNonWhitespace: true});\n\t\tvar tree = this.parser.parseInlineRun(/(\\r?\\n)/mg);\n\t\tlastListItem.children.push.apply(lastListItem.children,tree);\n\t\tif(classes.length > 0) {\n\t\t\t$tw.utils.addClassToParseTreeNode(lastListItem,classes.join(\" \"));\n\t\t}\n\t\t// Consume any whitespace following the list item\n\t\tthis.parser.skipWhitespace();\n\t}\n\t// Return the root element of the list\n\treturn [listStack[0]];\n};\n\n})();\n", "title": "$:/core/modules/parsers/wikiparser/rules/list.js", "type": "application/javascript", "module-type": "wikirule" }, "$:/core/modules/parsers/wikiparser/rules/macrocallblock.js": { "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/macrocallblock.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki rule for block macro calls\n\n```\n<<name value value2>>\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"macrocallblock\";\nexports.types = {block: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /<<([^>\\s]+)(?:\\s*)((?:[^>]|(?:>(?!>)))*?)>>(?:\\r?\\n|$)/mg;\n};\n\n/*\nParse the most recent match\n*/\nexports.parse = function() {\n\t// Get all the details of the match\n\tvar macroName = this.match[1],\n\t\tparamString = this.match[2];\n\t// Move past the macro call\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\tvar params = [],\n\t\treParam = /\\s*(?:([A-Za-z0-9\\-_]+)\\s*:)?(?:\\s*(?:\"\"\"([\\s\\S]*?)\"\"\"|\"([^\"]*)\"|'([^']*)'|\\[\\[([^\\]]*)\\]\\]|([^\"'\\s]+)))/mg,\n\t\tparamMatch = reParam.exec(paramString);\n\twhile(paramMatch) {\n\t\t// Process this parameter\n\t\tvar paramInfo = {\n\t\t\tvalue: paramMatch[2] || paramMatch[3] || paramMatch[4] || paramMatch[5] || paramMatch[6]\n\t\t};\n\t\tif(paramMatch[1]) {\n\t\t\tparamInfo.name = paramMatch[1];\n\t\t}\n\t\tparams.push(paramInfo);\n\t\t// Find the next match\n\t\tparamMatch = reParam.exec(paramString);\n\t}\n\treturn [{\n\t\ttype: \"macrocall\",\n\t\tname: macroName,\n\t\tparams: params,\n\t\tisBlock: true\n\t}];\n};\n\n})();\n", "title": "$:/core/modules/parsers/wikiparser/rules/macrocallblock.js", "type": "application/javascript", "module-type": "wikirule" }, "$:/core/modules/parsers/wikiparser/rules/macrocallinline.js": { "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/macrocallinline.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki rule for macro calls\n\n```\n<<name value value2>>\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"macrocallinline\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /<<([^\\s>]+)\\s*([\\s\\S]*?)>>/mg;\n};\n\n/*\nParse the most recent match\n*/\nexports.parse = function() {\n\t// Get all the details of the match\n\tvar macroName = this.match[1],\n\t\tparamString = this.match[2];\n\t// Move past the macro call\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\tvar params = [],\n\t\treParam = /\\s*(?:([A-Za-z0-9\\-_]+)\\s*:)?(?:\\s*(?:\"\"\"([\\s\\S]*?)\"\"\"|\"([^\"]*)\"|'([^']*)'|\\[\\[([^\\]]*)\\]\\]|([^\"'\\s]+)))/mg,\n\t\tparamMatch = reParam.exec(paramString);\n\twhile(paramMatch) {\n\t\t// Process this parameter\n\t\tvar paramInfo = {\n\t\t\tvalue: paramMatch[2] || paramMatch[3] || paramMatch[4] || paramMatch[5]|| paramMatch[6]\n\t\t};\n\t\tif(paramMatch[1]) {\n\t\t\tparamInfo.name = paramMatch[1];\n\t\t}\n\t\tparams.push(paramInfo);\n\t\t// Find the next match\n\t\tparamMatch = reParam.exec(paramString);\n\t}\n\treturn [{\n\t\ttype: \"macrocall\",\n\t\tname: macroName,\n\t\tparams: params\n\t}];\n};\n\n})();\n", "title": "$:/core/modules/parsers/wikiparser/rules/macrocallinline.js", "type": "application/javascript", "module-type": "wikirule" }, "$:/core/modules/parsers/wikiparser/rules/macrodef.js": { "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/macrodef.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki pragma rule for macro definitions\n\n```\n\\define name(param:defaultvalue,param2:defaultvalue)\ndefinition text, including $param$ markers\n\\end\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"macrodef\";\nexports.types = {pragma: true};\n\n/*\nInstantiate parse rule\n*/\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /^\\\\define\\s+([^(\\s]+)\\(\\s*([^)]*)\\)(\\s*\\r?\\n)?/mg;\n};\n\n/*\nParse the most recent match\n*/\nexports.parse = function() {\n\t// Move past the macro name and parameters\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t// Parse the parameters\n\tvar paramString = this.match[2],\n\t\tparams = [];\n\tif(paramString !== \"\") {\n\t\tvar reParam = /\\s*([A-Za-z0-9\\-_]+)(?:\\s*:\\s*(?:\"\"\"([\\s\\S]*?)\"\"\"|\"([^\"]*)\"|'([^']*)'|\\[\\[([^\\]]*)\\]\\]|([^\"'\\s]+)))?/mg,\n\t\t\tparamMatch = reParam.exec(paramString);\n\t\twhile(paramMatch) {\n\t\t\t// Save the parameter details\n\t\t\tvar paramInfo = {name: paramMatch[1]},\n\t\t\t\tdefaultValue = paramMatch[2] || paramMatch[3] || paramMatch[4] || paramMatch[5] || paramMatch[6];\n\t\t\tif(defaultValue) {\n\t\t\t\tparamInfo[\"default\"] = defaultValue;\n\t\t\t}\n\t\t\tparams.push(paramInfo);\n\t\t\t// Look for the next parameter\n\t\t\tparamMatch = reParam.exec(paramString);\n\t\t}\n\t}\n\t// Is this a multiline definition?\n\tvar reEnd;\n\tif(this.match[3]) {\n\t\t// If so, the end of the body is marked with \\end\n\t\treEnd = /(\\r?\\n\\\\end[^\\S\\n\\r]*(?:$|\\r?\\n))/mg;\n\t} else {\n\t\t// Otherwise, the end of the definition is marked by the end of the line\n\t\treEnd = /(\\r?\\n)/mg;\n\t\t// Move past any whitespace\n\t\tthis.parser.pos = $tw.utils.skipWhiteSpace(this.parser.source,this.parser.pos);\n\t}\n\t// Find the end of the definition\n\treEnd.lastIndex = this.parser.pos;\n\tvar text,\n\t\tendMatch = reEnd.exec(this.parser.source);\n\tif(endMatch) {\n\t\ttext = this.parser.source.substring(this.parser.pos,endMatch.index);\n\t\tthis.parser.pos = endMatch.index + endMatch[0].length;\n\t} else {\n\t\t// We didn't find the end of the definition, so we'll make it blank\n\t\ttext = \"\";\n\t}\n\t// Save the macro definition\n\treturn [{\n\t\ttype: \"set\",\n\t\tattributes: {\n\t\t\tname: {type: \"string\", value: this.match[1]},\n\t\t\tvalue: {type: \"string\", value: text}\n\t\t},\n\t\tchildren: [],\n\t\tparams: params\n\t}];\n};\n\n})();\n", "title": "$:/core/modules/parsers/wikiparser/rules/macrodef.js", "type": "application/javascript", "module-type": "wikirule" }, "$:/core/modules/parsers/wikiparser/rules/prettyextlink.js": { "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/prettyextlink.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for external links. For example:\n\n```\n[ext[http://tiddlywiki.com/fractalveg.jpg]]\n[ext[Tooltip|http://tiddlywiki.com/fractalveg.jpg]]\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"prettyextlink\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n};\n\nexports.findNextMatch = function(startPos) {\n\t// Find the next tag\n\tthis.nextLink = this.findNextLink(this.parser.source,startPos);\n\treturn this.nextLink ? this.nextLink.start : undefined;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.nextLink.end;\n\treturn [this.nextLink];\n};\n\n/*\nFind the next link from the current position\n*/\nexports.findNextLink = function(source,pos) {\n\t// A regexp for finding candidate links\n\tvar reLookahead = /(\\[ext\\[)/g;\n\t// Find the next candidate\n\treLookahead.lastIndex = pos;\n\tvar match = reLookahead.exec(source);\n\twhile(match) {\n\t\t// Try to parse the candidate as a link\n\t\tvar link = this.parseLink(source,match.index);\n\t\t// Return success\n\t\tif(link) {\n\t\t\treturn link;\n\t\t}\n\t\t// Look for the next match\n\t\treLookahead.lastIndex = match.index + 1;\n\t\tmatch = reLookahead.exec(source);\n\t}\n\t// Failed\n\treturn null;\n};\n\n/*\nLook for an link at the specified position. Returns null if not found, otherwise returns {type: \"element\", tag: \"a\", attributes: [], isSelfClosing:, start:, end:,}\n*/\nexports.parseLink = function(source,pos) {\n\tvar token,\n\t\ttextNode = {\n\t\t\ttype: \"text\"\n\t\t},\n\t\tnode = {\n\t\t\ttype: \"element\",\n\t\t\ttag: \"a\",\n\t\t\tstart: pos,\n\t\t\tattributes: {\n\t\t\t\t\"class\": {type: \"string\", value: \"tc-tiddlylink-external\"},\n\t\t\t},\n\t\t\tchildren: [textNode]\n\t\t};\n\t// Skip whitespace\n\tpos = $tw.utils.skipWhiteSpace(source,pos);\n\t// Look for the `[ext[`\n\ttoken = $tw.utils.parseTokenString(source,pos,\"[ext[\");\n\tif(!token) {\n\t\treturn null;\n\t}\n\tpos = token.end;\n\t// Look ahead for the terminating `]]`\n\tvar closePos = source.indexOf(\"]]\",pos);\n\tif(closePos === -1) {\n\t\treturn null;\n\t}\n\t// Look for a `|` separating the tooltip\n\tvar splitPos = source.indexOf(\"|\",pos);\n\tif(splitPos === -1 || splitPos > closePos) {\n\t\tsplitPos = null;\n\t}\n\t// Pull out the tooltip and URL\n\tvar tooltip, URL;\n\tif(splitPos) {\n\t\tURL = source.substring(splitPos + 1,closePos).trim();\n\t\ttextNode.text = source.substring(pos,splitPos).trim();\n\t} else {\n\t\tURL = source.substring(pos,closePos).trim();\n\t\ttextNode.text = URL;\n\t}\n\tnode.attributes.href = {type: \"string\", value: URL};\n\tnode.attributes.target = {type: \"string\", value: \"_blank\"};\n\tnode.attributes.rel = {type: \"string\", value: \"noopener noreferrer\"};\n\t// Update the end position\n\tnode.end = closePos + 2;\n\treturn node;\n};\n\n})();\n", "title": "$:/core/modules/parsers/wikiparser/rules/prettyextlink.js", "type": "application/javascript", "module-type": "wikirule" }, "$:/core/modules/parsers/wikiparser/rules/prettylink.js": { "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/prettylink.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for pretty links. For example:\n\n```\n[[Introduction]]\n\n[[Link description|TiddlerTitle]]\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"prettylink\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /\\[\\[(.*?)(?:\\|(.*?))?\\]\\]/mg;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t// Process the link\n\tvar text = this.match[1],\n\t\tlink = this.match[2] || text;\n\tif($tw.utils.isLinkExternal(link)) {\n\t\treturn [{\n\t\t\ttype: \"element\",\n\t\t\ttag: \"a\",\n\t\t\tattributes: {\n\t\t\t\thref: {type: \"string\", value: link},\n\t\t\t\t\"class\": {type: \"string\", value: \"tc-tiddlylink-external\"},\n\t\t\t\ttarget: {type: \"string\", value: \"_blank\"},\n\t\t\t\trel: {type: \"string\", value: \"noopener noreferrer\"}\n\t\t\t},\n\t\t\tchildren: [{\n\t\t\t\ttype: \"text\", text: text\n\t\t\t}]\n\t\t}];\n\t} else {\n\t\treturn [{\n\t\t\ttype: \"link\",\n\t\t\tattributes: {\n\t\t\t\tto: {type: \"string\", value: link}\n\t\t\t},\n\t\t\tchildren: [{\n\t\t\t\ttype: \"text\", text: text\n\t\t\t}]\n\t\t}];\n\t}\n};\n\n})();\n", "title": "$:/core/modules/parsers/wikiparser/rules/prettylink.js", "type": "application/javascript", "module-type": "wikirule" }, "$:/core/modules/parsers/wikiparser/rules/quoteblock.js": { "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/quoteblock.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text rule for quote blocks. For example:\n\n```\n\t<<<.optionalClass(es) optional cited from\n\ta quote\n\t<<<\n\t\n\t<<<.optionalClass(es)\n\ta quote\n\t<<< optional cited from\n```\n\nQuotes can be quoted by putting more <s\n\n```\n\t<<<\n\tQuote Level 1\n\t\n\t<<<<\n\tQuoteLevel 2\n\t<<<<\n\t\n\t<<<\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"quoteblock\";\nexports.types = {block: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /(<<<+)/mg;\n};\n\nexports.parse = function() {\n\tvar classes = [\"tc-quote\"];\n\t// Get all the details of the match\n\tvar reEndString = \"^\" + this.match[1] + \"(?!<)\";\n\t// Move past the <s\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t\n\t// Parse any classes, whitespace and then the optional cite itself\n\tclasses.push.apply(classes, this.parser.parseClasses());\n\tthis.parser.skipWhitespace({treatNewlinesAsNonWhitespace: true});\n\tvar cite = this.parser.parseInlineRun(/(\\r?\\n)/mg);\n\t// before handling the cite, parse the body of the quote\n\tvar tree= this.parser.parseBlocks(reEndString);\n\t// If we got a cite, put it before the text\n\tif(cite.length > 0) {\n\t\ttree.unshift({\n\t\t\ttype: \"element\",\n\t\t\ttag: \"cite\",\n\t\t\tchildren: cite\n\t\t});\n\t}\n\t// Parse any optional cite\n\tthis.parser.skipWhitespace({treatNewlinesAsNonWhitespace: true});\n\tcite = this.parser.parseInlineRun(/(\\r?\\n)/mg);\n\t// If we got a cite, push it\n\tif(cite.length > 0) {\n\t\ttree.push({\n\t\t\ttype: \"element\",\n\t\t\ttag: \"cite\",\n\t\t\tchildren: cite\n\t\t});\n\t}\n\t// Return the blockquote element\n\treturn [{\n\t\ttype: \"element\",\n\t\ttag: \"blockquote\",\n\t\tattributes: {\n\t\t\tclass: { type: \"string\", value: classes.join(\" \") },\n\t\t},\n\t\tchildren: tree\n\t}];\n};\n\n})();\n", "title": "$:/core/modules/parsers/wikiparser/rules/quoteblock.js", "type": "application/javascript", "module-type": "wikirule" }, "$:/core/modules/parsers/wikiparser/rules/rules.js": { "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/rules.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki pragma rule for rules specifications\n\n```\n\\rules except ruleone ruletwo rulethree\n\\rules only ruleone ruletwo rulethree\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"rules\";\nexports.types = {pragma: true};\n\n/*\nInstantiate parse rule\n*/\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /^\\\\rules[^\\S\\n]/mg;\n};\n\n/*\nParse the most recent match\n*/\nexports.parse = function() {\n\t// Move past the pragma invocation\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t// Parse whitespace delimited tokens terminated by a line break\n\tvar reMatch = /[^\\S\\n]*(\\S+)|(\\r?\\n)/mg,\n\t\ttokens = [];\n\treMatch.lastIndex = this.parser.pos;\n\tvar match = reMatch.exec(this.parser.source);\n\twhile(match && match.index === this.parser.pos) {\n\t\tthis.parser.pos = reMatch.lastIndex;\n\t\t// Exit if we've got the line break\n\t\tif(match[2]) {\n\t\t\tbreak;\n\t\t}\n\t\t// Process the token\n\t\tif(match[1]) {\n\t\t\ttokens.push(match[1]);\n\t\t}\n\t\t// Match the next token\n\t\tmatch = reMatch.exec(this.parser.source);\n\t}\n\t// Process the tokens\n\tif(tokens.length > 0) {\n\t\tthis.parser.amendRules(tokens[0],tokens.slice(1));\n\t}\n\t// No parse tree nodes to return\n\treturn [];\n};\n\n})();\n", "title": "$:/core/modules/parsers/wikiparser/rules/rules.js", "type": "application/javascript", "module-type": "wikirule" }, "$:/core/modules/parsers/wikiparser/rules/styleblock.js": { "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/styleblock.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text block rule for assigning styles and classes to paragraphs and other blocks. For example:\n\n```\n@@.myClass\n@@background-color:red;\nThis paragraph will have the CSS class `myClass`.\n\n* The `<ul>` around this list will also have the class `myClass`\n* List item 2\n\n@@\n```\n\nNote that classes and styles can be mixed subject to the rule that styles must precede classes. For example\n\n```\n@@.myFirstClass.mySecondClass\n@@width:100px;.myThirdClass\nThis is a paragraph\n@@\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"styleblock\";\nexports.types = {block: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /@@((?:[^\\.\\r\\n\\s:]+:[^\\r\\n;]+;)+)?(?:\\.([^\\r\\n\\s]+))?\\r?\\n/mg;\n};\n\nexports.parse = function() {\n\tvar reEndString = \"^@@(?:\\\\r?\\\\n)?\";\n\tvar classes = [], styles = [];\n\tdo {\n\t\t// Get the class and style\n\t\tif(this.match[1]) {\n\t\t\tstyles.push(this.match[1]);\n\t\t}\n\t\tif(this.match[2]) {\n\t\t\tclasses.push(this.match[2].split(\".\").join(\" \"));\n\t\t}\n\t\t// Move past the match\n\t\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t\t// Look for another line of classes and styles\n\t\tthis.match = this.matchRegExp.exec(this.parser.source);\n\t} while(this.match && this.match.index === this.parser.pos);\n\t// Parse the body\n\tvar tree = this.parser.parseBlocks(reEndString);\n\tfor(var t=0; t<tree.length; t++) {\n\t\tif(classes.length > 0) {\n\t\t\t$tw.utils.addClassToParseTreeNode(tree[t],classes.join(\" \"));\n\t\t}\n\t\tif(styles.length > 0) {\n\t\t\t$tw.utils.addAttributeToParseTreeNode(tree[t],\"style\",styles.join(\"\"));\n\t\t}\n\t}\n\treturn tree;\n};\n\n})();\n", "title": "$:/core/modules/parsers/wikiparser/rules/styleblock.js", "type": "application/javascript", "module-type": "wikirule" }, "$:/core/modules/parsers/wikiparser/rules/styleinline.js": { "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/styleinline.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for assigning styles and classes to inline runs. For example:\n\n```\n@@.myClass This is some text with a class@@\n@@background-color:red;This is some text with a background colour@@\n@@width:100px;.myClass This is some text with a class and a width@@\n```\n\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"styleinline\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /@@((?:[^\\.\\r\\n\\s:]+:[^\\r\\n;]+;)+)?(\\.(?:[^\\r\\n\\s]+)\\s+)?/mg;\n};\n\nexports.parse = function() {\n\tvar reEnd = /@@/g;\n\t// Get the styles and class\n\tvar stylesString = this.match[1],\n\t\tclassString = this.match[2] ? this.match[2].split(\".\").join(\" \") : undefined;\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t// Parse the run up to the terminator\n\tvar tree = this.parser.parseInlineRun(reEnd,{eatTerminator: true});\n\t// Return the classed span\n\tvar node = {\n\t\ttype: \"element\",\n\t\ttag: \"span\",\n\t\tattributes: {\n\t\t\t\"class\": {type: \"string\", value: \"tc-inline-style\"}\n\t\t},\n\t\tchildren: tree\n\t};\n\tif(classString) {\n\t\t$tw.utils.addClassToParseTreeNode(node,classString);\n\t}\n\tif(stylesString) {\n\t\t$tw.utils.addAttributeToParseTreeNode(node,\"style\",stylesString);\n\t}\n\treturn [node];\n};\n\n})();\n", "title": "$:/core/modules/parsers/wikiparser/rules/styleinline.js", "type": "application/javascript", "module-type": "wikirule" }, "$:/core/modules/parsers/wikiparser/rules/syslink.js": { "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/syslink.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for system tiddler links.\nCan be suppressed preceding them with `~`.\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"syslink\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /~?\\$:\\/[a-zA-Z0-9/.\\-_]+/mg;\n};\n\nexports.parse = function() {\n\tvar match = this.match[0];\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t// Create the link unless it is suppressed\n\tif(match.substr(0,1) === \"~\") {\n\t\treturn [{type: \"text\", text: match.substr(1)}];\n\t} else {\n\t\treturn [{\n\t\t\ttype: \"link\",\n\t\t\tattributes: {\n\t\t\t\tto: {type: \"string\", value: match}\n\t\t\t},\n\t\t\tchildren: [{\n\t\t\t\ttype: \"text\",\n\t\t\t\ttext: match\n\t\t\t}]\n\t\t}];\n\t}\n};\n\n})();", "title": "$:/core/modules/parsers/wikiparser/rules/syslink.js", "type": "application/javascript", "module-type": "wikirule" }, "$:/core/modules/parsers/wikiparser/rules/table.js": { "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/table.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text block rule for tables.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"table\";\nexports.types = {block: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /^\\|(?:[^\\n]*)\\|(?:[fhck]?)\\r?(?:\\n|$)/mg;\n};\n\nvar processRow = function(prevColumns) {\n\tvar cellRegExp = /(?:\\|([^\\n\\|]*)\\|)|(\\|[fhck]?\\r?(?:\\n|$))/mg,\n\t\tcellTermRegExp = /((?:\\x20*)\\|)/mg,\n\t\ttree = [],\n\t\tcol = 0,\n\t\tcolSpanCount = 1,\n\t\tprevCell,\n\t\tvAlign;\n\t// Match a single cell\n\tcellRegExp.lastIndex = this.parser.pos;\n\tvar cellMatch = cellRegExp.exec(this.parser.source);\n\twhile(cellMatch && cellMatch.index === this.parser.pos) {\n\t\tif(cellMatch[1] === \"~\") {\n\t\t\t// Rowspan\n\t\t\tvar last = prevColumns[col];\n\t\t\tif(last) {\n\t\t\t\tlast.rowSpanCount++;\n\t\t\t\t$tw.utils.addAttributeToParseTreeNode(last.element,\"rowspan\",last.rowSpanCount);\n\t\t\t\tvAlign = $tw.utils.getAttributeValueFromParseTreeNode(last.element,\"valign\",\"center\");\n\t\t\t\t$tw.utils.addAttributeToParseTreeNode(last.element,\"valign\",vAlign);\n\t\t\t\tif(colSpanCount > 1) {\n\t\t\t\t\t$tw.utils.addAttributeToParseTreeNode(last.element,\"colspan\",colSpanCount);\n\t\t\t\t\tcolSpanCount = 1;\n\t\t\t\t}\n\t\t\t}\n\t\t\t// Move to just before the `|` terminating the cell\n\t\t\tthis.parser.pos = cellRegExp.lastIndex - 1;\n\t\t} else if(cellMatch[1] === \">\") {\n\t\t\t// Colspan\n\t\t\tcolSpanCount++;\n\t\t\t// Move to just before the `|` terminating the cell\n\t\t\tthis.parser.pos = cellRegExp.lastIndex - 1;\n\t\t} else if(cellMatch[1] === \"<\" && prevCell) {\n\t\t\tcolSpanCount = 1 + $tw.utils.getAttributeValueFromParseTreeNode(prevCell,\"colspan\",1);\n\t\t\t$tw.utils.addAttributeToParseTreeNode(prevCell,\"colspan\",colSpanCount);\n\t\t\tcolSpanCount = 1;\n\t\t\t// Move to just before the `|` terminating the cell\n\t\t\tthis.parser.pos = cellRegExp.lastIndex - 1;\n\t\t} else if(cellMatch[2]) {\n\t\t\t// End of row\n\t\t\tif(prevCell && colSpanCount > 1) {\n\t\t\t\tif(prevCell.attributes && prevCell.attributes && prevCell.attributes.colspan) {\n\t\t\t\t\t\tcolSpanCount += prevCell.attributes.colspan.value;\n\t\t\t\t} else {\n\t\t\t\t\tcolSpanCount -= 1;\n\t\t\t\t}\n\t\t\t\t$tw.utils.addAttributeToParseTreeNode(prevCell,\"colspan\",colSpanCount);\n\t\t\t}\n\t\t\tthis.parser.pos = cellRegExp.lastIndex - 1;\n\t\t\tbreak;\n\t\t} else {\n\t\t\t// For ordinary cells, step beyond the opening `|`\n\t\t\tthis.parser.pos++;\n\t\t\t// Look for a space at the start of the cell\n\t\t\tvar spaceLeft = false;\n\t\t\tvAlign = null;\n\t\t\tif(this.parser.source.substr(this.parser.pos).search(/^\\^([^\\^]|\\^\\^)/) === 0) {\n\t\t\t\tvAlign = \"top\";\n\t\t\t} else if(this.parser.source.substr(this.parser.pos).search(/^,([^,]|,,)/) === 0) {\n\t\t\t\tvAlign = \"bottom\";\n\t\t\t}\n\t\t\tif(vAlign) {\n\t\t\t\tthis.parser.pos++;\n\t\t\t}\n\t\t\tvar chr = this.parser.source.substr(this.parser.pos,1);\n\t\t\twhile(chr === \" \") {\n\t\t\t\tspaceLeft = true;\n\t\t\t\tthis.parser.pos++;\n\t\t\t\tchr = this.parser.source.substr(this.parser.pos,1);\n\t\t\t}\n\t\t\t// Check whether this is a heading cell\n\t\t\tvar cell;\n\t\t\tif(chr === \"!\") {\n\t\t\t\tthis.parser.pos++;\n\t\t\t\tcell = {type: \"element\", tag: \"th\", children: []};\n\t\t\t} else {\n\t\t\t\tcell = {type: \"element\", tag: \"td\", children: []};\n\t\t\t}\n\t\t\ttree.push(cell);\n\t\t\t// Record information about this cell\n\t\t\tprevCell = cell;\n\t\t\tprevColumns[col] = {rowSpanCount:1,element:cell};\n\t\t\t// Check for a colspan\n\t\t\tif(colSpanCount > 1) {\n\t\t\t\t$tw.utils.addAttributeToParseTreeNode(cell,\"colspan\",colSpanCount);\n\t\t\t\tcolSpanCount = 1;\n\t\t\t}\n\t\t\t// Parse the cell\n\t\t\tcell.children = this.parser.parseInlineRun(cellTermRegExp,{eatTerminator: true});\n\t\t\t// Set the alignment for the cell\n\t\t\tif(vAlign) {\n\t\t\t\t$tw.utils.addAttributeToParseTreeNode(cell,\"valign\",vAlign);\n\t\t\t}\n\t\t\tif(this.parser.source.substr(this.parser.pos - 2,1) === \" \") { // spaceRight\n\t\t\t\t$tw.utils.addAttributeToParseTreeNode(cell,\"align\",spaceLeft ? \"center\" : \"left\");\n\t\t\t} else if(spaceLeft) {\n\t\t\t\t$tw.utils.addAttributeToParseTreeNode(cell,\"align\",\"right\");\n\t\t\t}\n\t\t\t// Move back to the closing `|`\n\t\t\tthis.parser.pos--;\n\t\t}\n\t\tcol++;\n\t\tcellRegExp.lastIndex = this.parser.pos;\n\t\tcellMatch = cellRegExp.exec(this.parser.source);\n\t}\n\treturn tree;\n};\n\nexports.parse = function() {\n\tvar rowContainerTypes = {\"c\":\"caption\", \"h\":\"thead\", \"\":\"tbody\", \"f\":\"tfoot\"},\n\t\ttable = {type: \"element\", tag: \"table\", children: []},\n\t\trowRegExp = /^\\|([^\\n]*)\\|([fhck]?)\\r?(?:\\n|$)/mg,\n\t\trowTermRegExp = /(\\|(?:[fhck]?)\\r?(?:\\n|$))/mg,\n\t\tprevColumns = [],\n\t\tcurrRowType,\n\t\trowContainer,\n\t\trowCount = 0;\n\t// Match the row\n\trowRegExp.lastIndex = this.parser.pos;\n\tvar rowMatch = rowRegExp.exec(this.parser.source);\n\twhile(rowMatch && rowMatch.index === this.parser.pos) {\n\t\tvar rowType = rowMatch[2];\n\t\t// Check if it is a class assignment\n\t\tif(rowType === \"k\") {\n\t\t\t$tw.utils.addClassToParseTreeNode(table,rowMatch[1]);\n\t\t\tthis.parser.pos = rowMatch.index + rowMatch[0].length;\n\t\t} else {\n\t\t\t// Otherwise, create a new row if this one is of a different type\n\t\t\tif(rowType !== currRowType) {\n\t\t\t\trowContainer = {type: \"element\", tag: rowContainerTypes[rowType], children: []};\n\t\t\t\ttable.children.push(rowContainer);\n\t\t\t\tcurrRowType = rowType;\n\t\t\t}\n\t\t\t// Is this a caption row?\n\t\t\tif(currRowType === \"c\") {\n\t\t\t\t// If so, move past the opening `|` of the row\n\t\t\t\tthis.parser.pos++;\n\t\t\t\t// Move the caption to the first row if it isn't already\n\t\t\t\tif(table.children.length !== 1) {\n\t\t\t\t\ttable.children.pop(); // Take rowContainer out of the children array\n\t\t\t\t\ttable.children.splice(0,0,rowContainer); // Insert it at the bottom\t\t\t\t\t\t\n\t\t\t\t}\n\t\t\t\t// Set the alignment - TODO: figure out why TW did this\n//\t\t\t\trowContainer.attributes.align = rowCount === 0 ? \"top\" : \"bottom\";\n\t\t\t\t// Parse the caption\n\t\t\t\trowContainer.children = this.parser.parseInlineRun(rowTermRegExp,{eatTerminator: true});\n\t\t\t} else {\n\t\t\t\t// Create the row\n\t\t\t\tvar theRow = {type: \"element\", tag: \"tr\", children: []};\n\t\t\t\t$tw.utils.addClassToParseTreeNode(theRow,rowCount%2 ? \"oddRow\" : \"evenRow\");\n\t\t\t\trowContainer.children.push(theRow);\n\t\t\t\t// Process the row\n\t\t\t\ttheRow.children = processRow.call(this,prevColumns);\n\t\t\t\tthis.parser.pos = rowMatch.index + rowMatch[0].length;\n\t\t\t\t// Increment the row count\n\t\t\t\trowCount++;\n\t\t\t}\n\t\t}\n\t\trowMatch = rowRegExp.exec(this.parser.source);\n\t}\n\treturn [table];\n};\n\n})();\n", "title": "$:/core/modules/parsers/wikiparser/rules/table.js", "type": "application/javascript", "module-type": "wikirule" }, "$:/core/modules/parsers/wikiparser/rules/transcludeblock.js": { "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/transcludeblock.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text rule for block-level transclusion. For example:\n\n```\n{{MyTiddler}}\n{{MyTiddler||TemplateTitle}}\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"transcludeblock\";\nexports.types = {block: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /\\{\\{([^\\{\\}\\|]*)(?:\\|\\|([^\\|\\{\\}]+))?\\}\\}(?:\\r?\\n|$)/mg;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t// Get the match details\n\tvar template = $tw.utils.trim(this.match[2]),\n\t\ttextRef = $tw.utils.trim(this.match[1]);\n\t// Prepare the transclude widget\n\tvar transcludeNode = {\n\t\t\ttype: \"transclude\",\n\t\t\tattributes: {},\n\t\t\tisBlock: true\n\t\t};\n\t// Prepare the tiddler widget\n\tvar tr, targetTitle, targetField, targetIndex, tiddlerNode;\n\tif(textRef) {\n\t\ttr = $tw.utils.parseTextReference(textRef);\n\t\ttargetTitle = tr.title;\n\t\ttargetField = tr.field;\n\t\ttargetIndex = tr.index;\n\t\ttiddlerNode = {\n\t\t\ttype: \"tiddler\",\n\t\t\tattributes: {\n\t\t\t\ttiddler: {type: \"string\", value: targetTitle}\n\t\t\t},\n\t\t\tisBlock: true,\n\t\t\tchildren: [transcludeNode]\n\t\t};\n\t}\n\tif(template) {\n\t\ttranscludeNode.attributes.tiddler = {type: \"string\", value: template};\n\t\tif(textRef) {\n\t\t\treturn [tiddlerNode];\n\t\t} else {\n\t\t\treturn [transcludeNode];\n\t\t}\n\t} else {\n\t\tif(textRef) {\n\t\t\ttranscludeNode.attributes.tiddler = {type: \"string\", value: targetTitle};\n\t\t\tif(targetField) {\n\t\t\t\ttranscludeNode.attributes.field = {type: \"string\", value: targetField};\n\t\t\t}\n\t\t\tif(targetIndex) {\n\t\t\t\ttranscludeNode.attributes.index = {type: \"string\", value: targetIndex};\n\t\t\t}\n\t\t\treturn [tiddlerNode];\n\t\t} else {\n\t\t\treturn [transcludeNode];\n\t\t}\n\t}\n};\n\n})();\n", "title": "$:/core/modules/parsers/wikiparser/rules/transcludeblock.js", "type": "application/javascript", "module-type": "wikirule" }, "$:/core/modules/parsers/wikiparser/rules/transcludeinline.js": { "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/transcludeinline.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text rule for inline-level transclusion. For example:\n\n```\n{{MyTiddler}}\n{{MyTiddler||TemplateTitle}}\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"transcludeinline\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /\\{\\{([^\\{\\}\\|]*)(?:\\|\\|([^\\|\\{\\}]+))?\\}\\}/mg;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t// Get the match details\n\tvar template = $tw.utils.trim(this.match[2]),\n\t\ttextRef = $tw.utils.trim(this.match[1]);\n\t// Prepare the transclude widget\n\tvar transcludeNode = {\n\t\t\ttype: \"transclude\",\n\t\t\tattributes: {}\n\t\t};\n\t// Prepare the tiddler widget\n\tvar tr, targetTitle, targetField, targetIndex, tiddlerNode;\n\tif(textRef) {\n\t\ttr = $tw.utils.parseTextReference(textRef);\n\t\ttargetTitle = tr.title;\n\t\ttargetField = tr.field;\n\t\ttargetIndex = tr.index;\n\t\ttiddlerNode = {\n\t\t\ttype: \"tiddler\",\n\t\t\tattributes: {\n\t\t\t\ttiddler: {type: \"string\", value: targetTitle}\n\t\t\t},\n\t\t\tchildren: [transcludeNode]\n\t\t};\n\t}\n\tif(template) {\n\t\ttranscludeNode.attributes.tiddler = {type: \"string\", value: template};\n\t\tif(textRef) {\n\t\t\treturn [tiddlerNode];\n\t\t} else {\n\t\t\treturn [transcludeNode];\n\t\t}\n\t} else {\n\t\tif(textRef) {\n\t\t\ttranscludeNode.attributes.tiddler = {type: \"string\", value: targetTitle};\n\t\t\tif(targetField) {\n\t\t\t\ttranscludeNode.attributes.field = {type: \"string\", value: targetField};\n\t\t\t}\n\t\t\tif(targetIndex) {\n\t\t\t\ttranscludeNode.attributes.index = {type: \"string\", value: targetIndex};\n\t\t\t}\n\t\t\treturn [tiddlerNode];\n\t\t} else {\n\t\t\treturn [transcludeNode];\n\t\t}\n\t}\n};\n\n})();\n", "title": "$:/core/modules/parsers/wikiparser/rules/transcludeinline.js", "type": "application/javascript", "module-type": "wikirule" }, "$:/core/modules/parsers/wikiparser/rules/typedblock.js": { "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/typedblock.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text rule for typed blocks. For example:\n\n```\n$$$.js\nThis will be rendered as JavaScript\n$$$\n\n$$$.svg\n<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"150\" height=\"100\">\n <circle cx=\"100\" cy=\"50\" r=\"40\" stroke=\"black\" stroke-width=\"2\" fill=\"red\" />\n</svg>\n$$$\n\n$$$text/vnd.tiddlywiki>text/html\nThis will be rendered as an //HTML representation// of WikiText\n$$$\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar widget = require(\"$:/core/modules/widgets/widget.js\");\n\nexports.name = \"typedblock\";\nexports.types = {block: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /\\$\\$\\$([^ >\\r\\n]*)(?: *> *([^ \\r\\n]+))?\\r?\\n/mg;\n};\n\nexports.parse = function() {\n\tvar reEnd = /\\r?\\n\\$\\$\\$\\r?(?:\\n|$)/mg;\n\t// Save the type\n\tvar parseType = this.match[1],\n\t\trenderType = this.match[2];\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t// Look for the end of the block\n\treEnd.lastIndex = this.parser.pos;\n\tvar match = reEnd.exec(this.parser.source),\n\t\ttext;\n\t// Process the block\n\tif(match) {\n\t\ttext = this.parser.source.substring(this.parser.pos,match.index);\n\t\tthis.parser.pos = match.index + match[0].length;\n\t} else {\n\t\ttext = this.parser.source.substr(this.parser.pos);\n\t\tthis.parser.pos = this.parser.sourceLength;\n\t}\n\t// Parse the block according to the specified type\n\tvar parser = this.parser.wiki.parseText(parseType,text,{defaultType: \"text/plain\"});\n\t// If there's no render type, just return the parse tree\n\tif(!renderType) {\n\t\treturn parser.tree;\n\t} else {\n\t\t// Otherwise, render to the rendertype and return in a <PRE> tag\n\t\tvar widgetNode = this.parser.wiki.makeWidget(parser),\n\t\t\tcontainer = $tw.fakeDocument.createElement(\"div\");\n\t\twidgetNode.render(container,null);\n\t\ttext = renderType === \"text/html\" ? container.innerHTML : container.textContent;\n\t\treturn [{\n\t\t\ttype: \"element\",\n\t\t\ttag: \"pre\",\n\t\t\tchildren: [{\n\t\t\t\ttype: \"text\",\n\t\t\t\ttext: text\n\t\t\t}]\n\t\t}];\n\t}\n};\n\n})();\n", "title": "$:/core/modules/parsers/wikiparser/rules/typedblock.js", "type": "application/javascript", "module-type": "wikirule" }, "$:/core/modules/parsers/wikiparser/rules/wikilink.js": { "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/wikilink.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for wiki links. For example:\n\n```\nAWikiLink\nAnotherLink\n~SuppressedLink\n```\n\nPrecede a camel case word with `~` to prevent it from being recognised as a link.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"wikilink\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = new RegExp($tw.config.textPrimitives.unWikiLink + \"?\" + $tw.config.textPrimitives.wikiLink,\"mg\");\n};\n\n/*\nParse the most recent match\n*/\nexports.parse = function() {\n\t// Get the details of the match\n\tvar linkText = this.match[0];\n\t// Move past the macro call\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t// If the link starts with the unwikilink character then just output it as plain text\n\tif(linkText.substr(0,1) === $tw.config.textPrimitives.unWikiLink) {\n\t\treturn [{type: \"text\", text: linkText.substr(1)}];\n\t}\n\t// If the link has been preceded with a blocked letter then don't treat it as a link\n\tif(this.match.index > 0) {\n\t\tvar preRegExp = new RegExp($tw.config.textPrimitives.blockPrefixLetters,\"mg\");\n\t\tpreRegExp.lastIndex = this.match.index-1;\n\t\tvar preMatch = preRegExp.exec(this.parser.source);\n\t\tif(preMatch && preMatch.index === this.match.index-1) {\n\t\t\treturn [{type: \"text\", text: linkText}];\n\t\t}\n\t}\n\treturn [{\n\t\ttype: \"link\",\n\t\tattributes: {\n\t\t\tto: {type: \"string\", value: linkText}\n\t\t},\n\t\tchildren: [{\n\t\t\ttype: \"text\",\n\t\t\ttext: linkText\n\t\t}]\n\t}];\n};\n\n})();\n", "title": "$:/core/modules/parsers/wikiparser/rules/wikilink.js", "type": "application/javascript", "module-type": "wikirule" }, "$:/core/modules/parsers/wikiparser/wikiparser.js": { "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/wikiparser.js\ntype: application/javascript\nmodule-type: parser\n\nThe wiki text parser processes blocks of source text into a parse tree.\n\nThe parse tree is made up of nested arrays of these JavaScript objects:\n\n\t{type: \"element\", tag: <string>, attributes: {}, children: []} - an HTML element\n\t{type: \"text\", text: <string>} - a text node\n\t{type: \"entity\", value: <string>} - an entity\n\t{type: \"raw\", html: <string>} - raw HTML\n\nAttributes are stored as hashmaps of the following objects:\n\n\t{type: \"string\", value: <string>} - literal string\n\t{type: \"indirect\", textReference: <textReference>} - indirect through a text reference\n\t{type: \"macro\", macro: <TBD>} - indirect through a macro invocation\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar WikiParser = function(type,text,options) {\n\tthis.wiki = options.wiki;\n\tvar self = this;\n\t// Check for an externally linked tiddler\n\tif($tw.browser && (text || \"\") === \"\" && options._canonical_uri) {\n\t\tthis.loadRemoteTiddler(options._canonical_uri);\n\t\ttext = $tw.language.getRawString(\"LazyLoadingWarning\");\n\t}\n\t// Initialise the classes if we don't have them already\n\tif(!this.pragmaRuleClasses) {\n\t\tWikiParser.prototype.pragmaRuleClasses = $tw.modules.createClassesFromModules(\"wikirule\",\"pragma\",$tw.WikiRuleBase);\n\t\tthis.setupRules(WikiParser.prototype.pragmaRuleClasses,\"$:/config/WikiParserRules/Pragmas/\");\n\t}\n\tif(!this.blockRuleClasses) {\n\t\tWikiParser.prototype.blockRuleClasses = $tw.modules.createClassesFromModules(\"wikirule\",\"block\",$tw.WikiRuleBase);\n\t\tthis.setupRules(WikiParser.prototype.blockRuleClasses,\"$:/config/WikiParserRules/Block/\");\n\t}\n\tif(!this.inlineRuleClasses) {\n\t\tWikiParser.prototype.inlineRuleClasses = $tw.modules.createClassesFromModules(\"wikirule\",\"inline\",$tw.WikiRuleBase);\n\t\tthis.setupRules(WikiParser.prototype.inlineRuleClasses,\"$:/config/WikiParserRules/Inline/\");\n\t}\n\t// Save the parse text\n\tthis.type = type || \"text/vnd.tiddlywiki\";\n\tthis.source = text || \"\";\n\tthis.sourceLength = this.source.length;\n\t// Set current parse position\n\tthis.pos = 0;\n\t// Instantiate the pragma parse rules\n\tthis.pragmaRules = this.instantiateRules(this.pragmaRuleClasses,\"pragma\",0);\n\t// Instantiate the parser block and inline rules\n\tthis.blockRules = this.instantiateRules(this.blockRuleClasses,\"block\",0);\n\tthis.inlineRules = this.instantiateRules(this.inlineRuleClasses,\"inline\",0);\n\t// Parse any pragmas\n\tthis.tree = [];\n\tvar topBranch = this.parsePragmas();\n\t// Parse the text into inline runs or blocks\n\tif(options.parseAsInline) {\n\t\ttopBranch.push.apply(topBranch,this.parseInlineRun());\n\t} else {\n\t\ttopBranch.push.apply(topBranch,this.parseBlocks());\n\t}\n\t// Return the parse tree\n};\n\n/*\n*/\nWikiParser.prototype.loadRemoteTiddler = function(url) {\n\tvar self = this;\n\t$tw.utils.httpRequest({\n\t\turl: url,\n\t\ttype: \"GET\",\n\t\tcallback: function(err,data) {\n\t\t\tif(!err) {\n\t\t\t\tvar tiddlers = self.wiki.deserializeTiddlers(\".tid\",data,self.wiki.getCreationFields());\n\t\t\t\t$tw.utils.each(tiddlers,function(tiddler) {\n\t\t\t\t\ttiddler[\"_canonical_uri\"] = url;\n\t\t\t\t});\n\t\t\t\tif(tiddlers) {\n\t\t\t\t\tself.wiki.addTiddlers(tiddlers);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t});\n};\n\n/*\n*/\nWikiParser.prototype.setupRules = function(proto,configPrefix) {\n\tvar self = this;\n\tif(!$tw.safemode) {\n\t\t$tw.utils.each(proto,function(object,name) {\n\t\t\tif(self.wiki.getTiddlerText(configPrefix + name,\"enable\") !== \"enable\") {\n\t\t\t\tdelete proto[name];\n\t\t\t}\n\t\t});\n\t}\n};\n\n/*\nInstantiate an array of parse rules\n*/\nWikiParser.prototype.instantiateRules = function(classes,type,startPos) {\n\tvar rulesInfo = [],\n\t\tself = this;\n\t$tw.utils.each(classes,function(RuleClass) {\n\t\t// Instantiate the rule\n\t\tvar rule = new RuleClass(self);\n\t\trule.is = {};\n\t\trule.is[type] = true;\n\t\trule.init(self);\n\t\tvar matchIndex = rule.findNextMatch(startPos);\n\t\tif(matchIndex !== undefined) {\n\t\t\trulesInfo.push({\n\t\t\t\trule: rule,\n\t\t\t\tmatchIndex: matchIndex\n\t\t\t});\n\t\t}\n\t});\n\treturn rulesInfo;\n};\n\n/*\nSkip any whitespace at the current position. Options are:\n\ttreatNewlinesAsNonWhitespace: true if newlines are NOT to be treated as whitespace\n*/\nWikiParser.prototype.skipWhitespace = function(options) {\n\toptions = options || {};\n\tvar whitespaceRegExp = options.treatNewlinesAsNonWhitespace ? /([^\\S\\n]+)/mg : /(\\s+)/mg;\n\twhitespaceRegExp.lastIndex = this.pos;\n\tvar whitespaceMatch = whitespaceRegExp.exec(this.source);\n\tif(whitespaceMatch && whitespaceMatch.index === this.pos) {\n\t\tthis.pos = whitespaceRegExp.lastIndex;\n\t}\n};\n\n/*\nGet the next match out of an array of parse rule instances\n*/\nWikiParser.prototype.findNextMatch = function(rules,startPos) {\n\t// Find the best matching rule by finding the closest match position\n\tvar matchingRule,\n\t\tmatchingRulePos = this.sourceLength;\n\t// Step through each rule\n\tfor(var t=0; t<rules.length; t++) {\n\t\tvar ruleInfo = rules[t];\n\t\t// Ask the rule to get the next match if we've moved past the current one\n\t\tif(ruleInfo.matchIndex !== undefined && ruleInfo.matchIndex < startPos) {\n\t\t\truleInfo.matchIndex = ruleInfo.rule.findNextMatch(startPos);\n\t\t}\n\t\t// Adopt this match if it's closer than the current best match\n\t\tif(ruleInfo.matchIndex !== undefined && ruleInfo.matchIndex <= matchingRulePos) {\n\t\t\tmatchingRule = ruleInfo;\n\t\t\tmatchingRulePos = ruleInfo.matchIndex;\n\t\t}\n\t}\n\treturn matchingRule;\n};\n\n/*\nParse any pragmas at the beginning of a block of parse text\n*/\nWikiParser.prototype.parsePragmas = function() {\n\tvar currentTreeBranch = this.tree;\n\twhile(true) {\n\t\t// Skip whitespace\n\t\tthis.skipWhitespace();\n\t\t// Check for the end of the text\n\t\tif(this.pos >= this.sourceLength) {\n\t\t\tbreak;\n\t\t}\n\t\t// Check if we've arrived at a pragma rule match\n\t\tvar nextMatch = this.findNextMatch(this.pragmaRules,this.pos);\n\t\t// If not, just exit\n\t\tif(!nextMatch || nextMatch.matchIndex !== this.pos) {\n\t\t\tbreak;\n\t\t}\n\t\t// Process the pragma rule\n\t\tvar subTree = nextMatch.rule.parse();\n\t\tif(subTree.length > 0) {\n\t\t\t// Quick hack; we only cope with a single parse tree node being returned, which is true at the moment\n\t\t\tcurrentTreeBranch.push.apply(currentTreeBranch,subTree);\n\t\t\tsubTree[0].children = [];\n\t\t\tcurrentTreeBranch = subTree[0].children;\n\t\t}\n\t}\n\treturn currentTreeBranch;\n};\n\n/*\nParse a block from the current position\n\tterminatorRegExpString: optional regular expression string that identifies the end of plain paragraphs. Must not include capturing parenthesis\n*/\nWikiParser.prototype.parseBlock = function(terminatorRegExpString) {\n\tvar terminatorRegExp = terminatorRegExpString ? new RegExp(\"(\" + terminatorRegExpString + \"|\\\\r?\\\\n\\\\r?\\\\n)\",\"mg\") : /(\\r?\\n\\r?\\n)/mg;\n\tthis.skipWhitespace();\n\tif(this.pos >= this.sourceLength) {\n\t\treturn [];\n\t}\n\t// Look for a block rule that applies at the current position\n\tvar nextMatch = this.findNextMatch(this.blockRules,this.pos);\n\tif(nextMatch && nextMatch.matchIndex === this.pos) {\n\t\treturn nextMatch.rule.parse();\n\t}\n\t// Treat it as a paragraph if we didn't find a block rule\n\treturn [{type: \"element\", tag: \"p\", children: this.parseInlineRun(terminatorRegExp)}];\n};\n\n/*\nParse a series of blocks of text until a terminating regexp is encountered or the end of the text\n\tterminatorRegExpString: terminating regular expression\n*/\nWikiParser.prototype.parseBlocks = function(terminatorRegExpString) {\n\tif(terminatorRegExpString) {\n\t\treturn this.parseBlocksTerminated(terminatorRegExpString);\n\t} else {\n\t\treturn this.parseBlocksUnterminated();\n\t}\n};\n\n/*\nParse a block from the current position to the end of the text\n*/\nWikiParser.prototype.parseBlocksUnterminated = function() {\n\tvar tree = [];\n\twhile(this.pos < this.sourceLength) {\n\t\ttree.push.apply(tree,this.parseBlock());\n\t}\n\treturn tree;\n};\n\n/*\nParse blocks of text until a terminating regexp is encountered\n*/\nWikiParser.prototype.parseBlocksTerminated = function(terminatorRegExpString) {\n\tvar terminatorRegExp = new RegExp(\"(\" + terminatorRegExpString + \")\",\"mg\"),\n\t\ttree = [];\n\t// Skip any whitespace\n\tthis.skipWhitespace();\n\t// Check if we've got the end marker\n\tterminatorRegExp.lastIndex = this.pos;\n\tvar match = terminatorRegExp.exec(this.source);\n\t// Parse the text into blocks\n\twhile(this.pos < this.sourceLength && !(match && match.index === this.pos)) {\n\t\tvar blocks = this.parseBlock(terminatorRegExpString);\n\t\ttree.push.apply(tree,blocks);\n\t\t// Skip any whitespace\n\t\tthis.skipWhitespace();\n\t\t// Check if we've got the end marker\n\t\tterminatorRegExp.lastIndex = this.pos;\n\t\tmatch = terminatorRegExp.exec(this.source);\n\t}\n\tif(match && match.index === this.pos) {\n\t\tthis.pos = match.index + match[0].length;\n\t}\n\treturn tree;\n};\n\n/*\nParse a run of text at the current position\n\tterminatorRegExp: a regexp at which to stop the run\n\toptions: see below\nOptions available:\n\teatTerminator: move the parse position past any encountered terminator (default false)\n*/\nWikiParser.prototype.parseInlineRun = function(terminatorRegExp,options) {\n\tif(terminatorRegExp) {\n\t\treturn this.parseInlineRunTerminated(terminatorRegExp,options);\n\t} else {\n\t\treturn this.parseInlineRunUnterminated(options);\n\t}\n};\n\nWikiParser.prototype.parseInlineRunUnterminated = function(options) {\n\tvar tree = [];\n\t// Find the next occurrence of an inline rule\n\tvar nextMatch = this.findNextMatch(this.inlineRules,this.pos);\n\t// Loop around the matches until we've reached the end of the text\n\twhile(this.pos < this.sourceLength && nextMatch) {\n\t\t// Process the text preceding the run rule\n\t\tif(nextMatch.matchIndex > this.pos) {\n\t\t\ttree.push({type: \"text\", text: this.source.substring(this.pos,nextMatch.matchIndex)});\n\t\t\tthis.pos = nextMatch.matchIndex;\n\t\t}\n\t\t// Process the run rule\n\t\ttree.push.apply(tree,nextMatch.rule.parse());\n\t\t// Look for the next run rule\n\t\tnextMatch = this.findNextMatch(this.inlineRules,this.pos);\n\t}\n\t// Process the remaining text\n\tif(this.pos < this.sourceLength) {\n\t\ttree.push({type: \"text\", text: this.source.substr(this.pos)});\n\t}\n\tthis.pos = this.sourceLength;\n\treturn tree;\n};\n\nWikiParser.prototype.parseInlineRunTerminated = function(terminatorRegExp,options) {\n\toptions = options || {};\n\tvar tree = [];\n\t// Find the next occurrence of the terminator\n\tterminatorRegExp.lastIndex = this.pos;\n\tvar terminatorMatch = terminatorRegExp.exec(this.source);\n\t// Find the next occurrence of a inlinerule\n\tvar inlineRuleMatch = this.findNextMatch(this.inlineRules,this.pos);\n\t// Loop around until we've reached the end of the text\n\twhile(this.pos < this.sourceLength && (terminatorMatch || inlineRuleMatch)) {\n\t\t// Return if we've found the terminator, and it precedes any inline rule match\n\t\tif(terminatorMatch) {\n\t\t\tif(!inlineRuleMatch || inlineRuleMatch.matchIndex >= terminatorMatch.index) {\n\t\t\t\tif(terminatorMatch.index > this.pos) {\n\t\t\t\t\ttree.push({type: \"text\", text: this.source.substring(this.pos,terminatorMatch.index)});\n\t\t\t\t}\n\t\t\t\tthis.pos = terminatorMatch.index;\n\t\t\t\tif(options.eatTerminator) {\n\t\t\t\t\tthis.pos += terminatorMatch[0].length;\n\t\t\t\t}\n\t\t\t\treturn tree;\n\t\t\t}\n\t\t}\n\t\t// Process any inline rule, along with the text preceding it\n\t\tif(inlineRuleMatch) {\n\t\t\t// Preceding text\n\t\t\tif(inlineRuleMatch.matchIndex > this.pos) {\n\t\t\t\ttree.push({type: \"text\", text: this.source.substring(this.pos,inlineRuleMatch.matchIndex)});\n\t\t\t\tthis.pos = inlineRuleMatch.matchIndex;\n\t\t\t}\n\t\t\t// Process the inline rule\n\t\t\ttree.push.apply(tree,inlineRuleMatch.rule.parse());\n\t\t\t// Look for the next inline rule\n\t\t\tinlineRuleMatch = this.findNextMatch(this.inlineRules,this.pos);\n\t\t\t// Look for the next terminator match\n\t\t\tterminatorRegExp.lastIndex = this.pos;\n\t\t\tterminatorMatch = terminatorRegExp.exec(this.source);\n\t\t}\n\t}\n\t// Process the remaining text\n\tif(this.pos < this.sourceLength) {\n\t\ttree.push({type: \"text\", text: this.source.substr(this.pos)});\n\t}\n\tthis.pos = this.sourceLength;\n\treturn tree;\n};\n\n/*\nParse zero or more class specifiers `.classname`\n*/\nWikiParser.prototype.parseClasses = function() {\n\tvar classRegExp = /\\.([^\\s\\.]+)/mg,\n\t\tclassNames = [];\n\tclassRegExp.lastIndex = this.pos;\n\tvar match = classRegExp.exec(this.source);\n\twhile(match && match.index === this.pos) {\n\t\tthis.pos = match.index + match[0].length;\n\t\tclassNames.push(match[1]);\n\t\tmatch = classRegExp.exec(this.source);\n\t}\n\treturn classNames;\n};\n\n/*\nAmend the rules used by this instance of the parser\n\ttype: `only` keeps just the named rules, `except` keeps all but the named rules\n\tnames: array of rule names\n*/\nWikiParser.prototype.amendRules = function(type,names) {\n\tnames = names || [];\n\t// Define the filter function\n\tvar keepFilter;\n\tif(type === \"only\") {\n\t\tkeepFilter = function(name) {\n\t\t\treturn names.indexOf(name) !== -1;\n\t\t};\n\t} else if(type === \"except\") {\n\t\tkeepFilter = function(name) {\n\t\t\treturn names.indexOf(name) === -1;\n\t\t};\n\t} else {\n\t\treturn;\n\t}\n\t// Define a function to process each of our rule arrays\n\tvar processRuleArray = function(ruleArray) {\n\t\tfor(var t=ruleArray.length-1; t>=0; t--) {\n\t\t\tif(!keepFilter(ruleArray[t].rule.name)) {\n\t\t\t\truleArray.splice(t,1);\n\t\t\t}\n\t\t}\n\t};\n\t// Process each rule array\n\tprocessRuleArray(this.pragmaRules);\n\tprocessRuleArray(this.blockRules);\n\tprocessRuleArray(this.inlineRules);\n};\n\nexports[\"text/vnd.tiddlywiki\"] = WikiParser;\n\n})();\n\n", "title": "$:/core/modules/parsers/wikiparser/wikiparser.js", "type": "application/javascript", "module-type": "parser" }, "$:/core/modules/parsers/wikiparser/rules/wikirulebase.js": { "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/wikirulebase.js\ntype: application/javascript\nmodule-type: global\n\nBase class for wiki parser rules\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nThis constructor is always overridden with a blank constructor, and so shouldn't be used\n*/\nvar WikiRuleBase = function() {\n};\n\n/*\nTo be overridden by individual rules\n*/\nWikiRuleBase.prototype.init = function(parser) {\n\tthis.parser = parser;\n};\n\n/*\nDefault implementation of findNextMatch uses RegExp matching\n*/\nWikiRuleBase.prototype.findNextMatch = function(startPos) {\n\tthis.matchRegExp.lastIndex = startPos;\n\tthis.match = this.matchRegExp.exec(this.parser.source);\n\treturn this.match ? this.match.index : undefined;\n};\n\nexports.WikiRuleBase = WikiRuleBase;\n\n})();\n", "title": "$:/core/modules/parsers/wikiparser/rules/wikirulebase.js", "type": "application/javascript", "module-type": "global" }, "$:/core/modules/pluginswitcher.js": { "text": "/*\\\ntitle: $:/core/modules/pluginswitcher.js\ntype: application/javascript\nmodule-type: global\n\nManages switching plugins for themes and languages.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\noptions:\nwiki: wiki store to be used\npluginType: type of plugin to be switched\ncontrollerTitle: title of tiddler used to control switching of this resource\ndefaultPlugins: array of default plugins to be used if nominated plugin isn't found\n*/\nfunction PluginSwitcher(options) {\n\tthis.wiki = options.wiki;\n\tthis.pluginType = options.pluginType;\n\tthis.controllerTitle = options.controllerTitle;\n\tthis.defaultPlugins = options.defaultPlugins || [];\n\t// Switch to the current plugin\n\tthis.switchPlugins();\n\t// Listen for changes to the selected plugin\n\tvar self = this;\n\tthis.wiki.addEventListener(\"change\",function(changes) {\n\t\tif($tw.utils.hop(changes,self.controllerTitle)) {\n\t\t\tself.switchPlugins();\n\t\t}\n\t});\n}\n\nPluginSwitcher.prototype.switchPlugins = function() {\n\t// Get the name of the current theme\n\tvar selectedPluginTitle = this.wiki.getTiddlerText(this.controllerTitle);\n\t// If it doesn't exist, then fallback to one of the default themes\n\tvar index = 0;\n\twhile(!this.wiki.getTiddler(selectedPluginTitle) && index < this.defaultPlugins.length) {\n\t\tselectedPluginTitle = this.defaultPlugins[index++];\n\t}\n\t// Accumulate the titles of the plugins that we need to load\n\tvar plugins = [],\n\t\tself = this,\n\t\taccumulatePlugin = function(title) {\n\t\t\tvar tiddler = self.wiki.getTiddler(title);\n\t\t\tif(tiddler && tiddler.isPlugin() && plugins.indexOf(title) === -1) {\n\t\t\t\tplugins.push(title);\n\t\t\t\tvar pluginInfo = JSON.parse(self.wiki.getTiddlerText(title)),\n\t\t\t\t\tdependents = $tw.utils.parseStringArray(tiddler.fields.dependents || \"\");\n\t\t\t\t$tw.utils.each(dependents,function(title) {\n\t\t\t\t\taccumulatePlugin(title);\n\t\t\t\t});\n\t\t\t}\n\t\t};\n\taccumulatePlugin(selectedPluginTitle);\n\t// Unregister any existing theme tiddlers\n\tvar unregisteredTiddlers = $tw.wiki.unregisterPluginTiddlers(this.pluginType);\n\t// Register any new theme tiddlers\n\tvar registeredTiddlers = $tw.wiki.registerPluginTiddlers(this.pluginType,plugins);\n\t// Unpack the current theme tiddlers\n\t$tw.wiki.unpackPluginTiddlers();\n};\n\nexports.PluginSwitcher = PluginSwitcher;\n\n})();\n", "title": "$:/core/modules/pluginswitcher.js", "type": "application/javascript", "module-type": "global" }, "$:/core/modules/saver-handler.js": { "text": "/*\\\ntitle: $:/core/modules/saver-handler.js\ntype: application/javascript\nmodule-type: global\n\nThe saver handler tracks changes to the store and handles saving the entire wiki via saver modules.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nInstantiate the saver handler with the following options:\nwiki: wiki to be synced\ndirtyTracking: true if dirty tracking should be performed\n*/\nfunction SaverHandler(options) {\n\tvar self = this;\n\tthis.wiki = options.wiki;\n\tthis.dirtyTracking = options.dirtyTracking;\n\tthis.pendingAutoSave = false;\n\t// Make a logger\n\tthis.logger = new $tw.utils.Logger(\"saver-handler\");\n\t// Initialise our savers\n\tif($tw.browser) {\n\t\tthis.initSavers();\n\t}\n\t// Only do dirty tracking if required\n\tif($tw.browser && this.dirtyTracking) {\n\t\t// Compile the dirty tiddler filter\n\t\tthis.filterFn = this.wiki.compileFilter(this.wiki.getTiddlerText(this.titleSyncFilter));\n\t\t// Count of changes that have not yet been saved\n\t\tthis.numChanges = 0;\n\t\t// Listen out for changes to tiddlers\n\t\tthis.wiki.addEventListener(\"change\",function(changes) {\n\t\t\t// Filter the changes so that we only count changes to tiddlers that we care about\n\t\t\tvar filteredChanges = self.filterFn.call(self.wiki,function(callback) {\n\t\t\t\t$tw.utils.each(changes,function(change,title) {\n\t\t\t\t\tvar tiddler = self.wiki.getTiddler(title);\n\t\t\t\t\tcallback(tiddler,title);\n\t\t\t\t});\n\t\t\t});\n\t\t\t// Adjust the number of changes\n\t\t\tself.numChanges += filteredChanges.length;\n\t\t\tself.updateDirtyStatus();\n\t\t\t// Do any autosave if one is pending and there's no more change events\n\t\t\tif(self.pendingAutoSave && self.wiki.getSizeOfTiddlerEventQueue() === 0) {\n\t\t\t\t// Check if we're dirty\n\t\t\t\tif(self.numChanges > 0) {\n\t\t\t\t\tself.saveWiki({\n\t\t\t\t\t\tmethod: \"autosave\",\n\t\t\t\t\t\tdownloadType: \"text/plain\"\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\tself.pendingAutoSave = false;\n\t\t\t}\n\t\t});\n\t\t// Listen for the autosave event\n\t\t$tw.rootWidget.addEventListener(\"tm-auto-save-wiki\",function(event) {\n\t\t\t// Do the autosave unless there are outstanding tiddler change events\n\t\t\tif(self.wiki.getSizeOfTiddlerEventQueue() === 0) {\n\t\t\t\t// Check if we're dirty\n\t\t\t\tif(self.numChanges > 0) {\n\t\t\t\t\tself.saveWiki({\n\t\t\t\t\t\tmethod: \"autosave\",\n\t\t\t\t\t\tdownloadType: \"text/plain\"\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// Otherwise put ourselves in the \"pending autosave\" state and wait for the change event before we do the autosave\n\t\t\t\tself.pendingAutoSave = true;\n\t\t\t}\n\t\t});\n\t\t// Set up our beforeunload handler\n\t\t$tw.addUnloadTask(function(event) {\n\t\t\tvar confirmationMessage;\n\t\t\tif(self.isDirty()) {\n\t\t\t\tconfirmationMessage = $tw.language.getString(\"UnsavedChangesWarning\");\n\t\t\t\tevent.returnValue = confirmationMessage; // Gecko\n\t\t\t}\n\t\t\treturn confirmationMessage;\n\t\t});\n\t}\n\t// Install the save action handlers\n\tif($tw.browser) {\n\t\t$tw.rootWidget.addEventListener(\"tm-save-wiki\",function(event) {\n\t\t\tself.saveWiki({\n\t\t\t\ttemplate: event.param,\n\t\t\t\tdownloadType: \"text/plain\",\n\t\t\t\tvariables: event.paramObject\n\t\t\t});\n\t\t});\n\t\t$tw.rootWidget.addEventListener(\"tm-download-file\",function(event) {\n\t\t\tself.saveWiki({\n\t\t\t\tmethod: \"download\",\n\t\t\t\ttemplate: event.param,\n\t\t\t\tdownloadType: \"text/plain\",\n\t\t\t\tvariables: event.paramObject\n\t\t\t});\n\t\t});\n\t}\n}\n\nSaverHandler.prototype.titleSyncFilter = \"$:/config/SaverFilter\";\nSaverHandler.prototype.titleAutoSave = \"$:/config/AutoSave\";\nSaverHandler.prototype.titleSavedNotification = \"$:/language/Notifications/Save/Done\";\n\n/*\nSelect the appropriate saver modules and set them up\n*/\nSaverHandler.prototype.initSavers = function(moduleType) {\n\tmoduleType = moduleType || \"saver\";\n\t// Instantiate the available savers\n\tthis.savers = [];\n\tvar self = this;\n\t$tw.modules.forEachModuleOfType(moduleType,function(title,module) {\n\t\tif(module.canSave(self)) {\n\t\t\tself.savers.push(module.create(self.wiki));\n\t\t}\n\t});\n\t// Sort the savers into priority order\n\tthis.savers.sort(function(a,b) {\n\t\tif(a.info.priority < b.info.priority) {\n\t\t\treturn -1;\n\t\t} else {\n\t\t\tif(a.info.priority > b.info.priority) {\n\t\t\t\treturn +1;\n\t\t\t} else {\n\t\t\t\treturn 0;\n\t\t\t}\n\t\t}\n\t});\n};\n\n/*\nSave the wiki contents. Options are:\n\tmethod: \"save\", \"autosave\" or \"download\"\n\ttemplate: the tiddler containing the template to save\n\tdownloadType: the content type for the saved file\n*/\nSaverHandler.prototype.saveWiki = function(options) {\n\toptions = options || {};\n\tvar self = this,\n\t\tmethod = options.method || \"save\",\n\t\tvariables = options.variables || {},\n\t\ttemplate = options.template || \"$:/core/save/all\",\n\t\tdownloadType = options.downloadType || \"text/plain\",\n\t\ttext = this.wiki.renderTiddler(downloadType,template,options),\n\t\tcallback = function(err) {\n\t\t\tif(err) {\n\t\t\t\talert($tw.language.getString(\"Error/WhileSaving\") + \":\\n\\n\" + err);\n\t\t\t} else {\n\t\t\t\t// Clear the task queue if we're saving (rather than downloading)\n\t\t\t\tif(method !== \"download\") {\n\t\t\t\t\tself.numChanges = 0;\n\t\t\t\t\tself.updateDirtyStatus();\n\t\t\t\t}\n\t\t\t\t$tw.notifier.display(self.titleSavedNotification);\n\t\t\t\tif(options.callback) {\n\t\t\t\t\toptions.callback();\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t// Ignore autosave if disabled\n\tif(method === \"autosave\" && this.wiki.getTiddlerText(this.titleAutoSave,\"yes\") !== \"yes\") {\n\t\treturn false;\n\t}\n\t// Call the highest priority saver that supports this method\n\tfor(var t=this.savers.length-1; t>=0; t--) {\n\t\tvar saver = this.savers[t];\n\t\tif(saver.info.capabilities.indexOf(method) !== -1 && saver.save(text,method,callback,{variables: {filename: variables.filename}})) {\n\t\t\tthis.logger.log(\"Saving wiki with method\",method,\"through saver\",saver.info.name);\n\t\t\treturn true;\n\t\t}\n\t}\n\treturn false;\n};\n\n/*\nChecks whether the wiki is dirty (ie the window shouldn't be closed)\n*/\nSaverHandler.prototype.isDirty = function() {\n\treturn this.numChanges > 0;\n};\n\n/*\nUpdate the document body with the class \"tc-dirty\" if the wiki has unsaved/unsynced changes\n*/\nSaverHandler.prototype.updateDirtyStatus = function() {\n\tif($tw.browser) {\n\t\t$tw.utils.toggleClass(document.body,\"tc-dirty\",this.isDirty());\n\t}\n};\n\nexports.SaverHandler = SaverHandler;\n\n})();\n", "title": "$:/core/modules/saver-handler.js", "type": "application/javascript", "module-type": "global" }, "$:/core/modules/savers/andtidwiki.js": { "text": "/*\\\ntitle: $:/core/modules/savers/andtidwiki.js\ntype: application/javascript\nmodule-type: saver\n\nHandles saving changes via the AndTidWiki Android app\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false, netscape: false, Components: false */\n\"use strict\";\n\nvar AndTidWiki = function(wiki) {\n};\n\nAndTidWiki.prototype.save = function(text,method,callback) {\n\t// Get the pathname of this document\n\tvar pathname = decodeURIComponent(document.location.toString().split(\"#\")[0]);\n\t// Strip the file://\n\tif(pathname.indexOf(\"file://\") === 0) {\n\t\tpathname = pathname.substr(7);\n\t}\n\t// Strip any query or location part\n\tvar p = pathname.indexOf(\"?\");\n\tif(p !== -1) {\n\t\tpathname = pathname.substr(0,p);\n\t}\n\tp = pathname.indexOf(\"#\");\n\tif(p !== -1) {\n\t\tpathname = pathname.substr(0,p);\n\t}\n\t// Save the file\n\twindow.twi.saveFile(pathname,text);\n\t// Call the callback\n\tcallback(null);\n\treturn true;\n};\n\n/*\nInformation about this saver\n*/\nAndTidWiki.prototype.info = {\n\tname: \"andtidwiki\",\n\tpriority: 1600,\n\tcapabilities: [\"save\", \"autosave\"]\n};\n\n/*\nStatic method that returns true if this saver is capable of working\n*/\nexports.canSave = function(wiki) {\n\treturn !!window.twi && !!window.twi.saveFile;\n};\n\n/*\nCreate an instance of this saver\n*/\nexports.create = function(wiki) {\n\treturn new AndTidWiki(wiki);\n};\n\n})();\n", "title": "$:/core/modules/savers/andtidwiki.js", "type": "application/javascript", "module-type": "saver" }, "$:/core/modules/savers/download.js": { "text": "/*\\\ntitle: $:/core/modules/savers/download.js\ntype: application/javascript\nmodule-type: saver\n\nHandles saving changes via HTML5's download APIs\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nSelect the appropriate saver module and set it up\n*/\nvar DownloadSaver = function(wiki) {\n};\n\nDownloadSaver.prototype.save = function(text,method,callback,options) {\n\toptions = options || {};\n\t// Get the current filename\n\tvar filename = options.variables.filename;\n\tif(!filename) {\n\t\tvar p = document.location.pathname.lastIndexOf(\"/\");\n\t\tif(p !== -1) {\n\t\t\tfilename = document.location.pathname.substr(p+1);\n\t\t}\n\t}\n\tif(!filename) {\n\t\tfilename = \"tiddlywiki.html\";\n\t}\n\t// Set up the link\n\tvar link = document.createElement(\"a\");\n\tlink.setAttribute(\"target\",\"_blank\");\n\tlink.setAttribute(\"rel\",\"noopener noreferrer\");\n\tif(Blob !== undefined) {\n\t\tvar blob = new Blob([text], {type: \"text/html\"});\n\t\tlink.setAttribute(\"href\", URL.createObjectURL(blob));\n\t} else {\n\t\tlink.setAttribute(\"href\",\"data:text/html,\" + encodeURIComponent(text));\n\t}\n\tlink.setAttribute(\"download\",filename);\n\tdocument.body.appendChild(link);\n\tlink.click();\n\tdocument.body.removeChild(link);\n\t// Callback that we succeeded\n\tcallback(null);\n\treturn true;\n};\n\n/*\nInformation about this saver\n*/\nDownloadSaver.prototype.info = {\n\tname: \"download\",\n\tpriority: 100,\n\tcapabilities: [\"save\", \"download\"]\n};\n\n/*\nStatic method that returns true if this saver is capable of working\n*/\nexports.canSave = function(wiki) {\n\treturn document.createElement(\"a\").download !== undefined;\n};\n\n/*\nCreate an instance of this saver\n*/\nexports.create = function(wiki) {\n\treturn new DownloadSaver(wiki);\n};\n\n})();\n", "title": "$:/core/modules/savers/download.js", "type": "application/javascript", "module-type": "saver" }, "$:/core/modules/savers/fsosaver.js": { "text": "/*\\\ntitle: $:/core/modules/savers/fsosaver.js\ntype: application/javascript\nmodule-type: saver\n\nHandles saving changes via MS FileSystemObject ActiveXObject\n\nNote: Since TiddlyWiki's markup contains the MOTW, the FileSystemObject normally won't be available. \nHowever, if the wiki is loaded as an .HTA file (Windows HTML Applications) then the FSO can be used.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nSelect the appropriate saver module and set it up\n*/\nvar FSOSaver = function(wiki) {\n};\n\nFSOSaver.prototype.save = function(text,method,callback) {\n\t// Get the pathname of this document\n\tvar pathname = unescape(document.location.pathname);\n\t// Test for a Windows path of the form /x:\\blah...\n\tif(/^\\/[A-Z]\\:\\\\[^\\\\]+/i.test(pathname)) {\t// ie: ^/[a-z]:/[^/]+\n\t\t// Remove the leading slash\n\t\tpathname = pathname.substr(1);\n\t} else if(document.location.hostname !== \"\" && /^\\/\\\\[^\\\\]+\\\\[^\\\\]+/i.test(pathname)) {\t// test for \\\\server\\share\\blah... - ^/[^/]+/[^/]+\n\t\t// Remove the leading slash\n\t\tpathname = pathname.substr(1);\n\t\t// reconstruct UNC path\n\t\tpathname = \"\\\\\\\\\" + document.location.hostname + pathname;\n\t} else {\n\t\treturn false;\n\t}\n\t// Save the file (as UTF-16)\n\tvar fso = new ActiveXObject(\"Scripting.FileSystemObject\");\n\tvar file = fso.OpenTextFile(pathname,2,-1,-1);\n\tfile.Write(text);\n\tfile.Close();\n\t// Callback that we succeeded\n\tcallback(null);\n\treturn true;\n};\n\n/*\nInformation about this saver\n*/\nFSOSaver.prototype.info = {\n\tname: \"FSOSaver\",\n\tpriority: 120,\n\tcapabilities: [\"save\", \"autosave\"]\n};\n\n/*\nStatic method that returns true if this saver is capable of working\n*/\nexports.canSave = function(wiki) {\n\ttry {\n\t\treturn (window.location.protocol === \"file:\") && !!(new ActiveXObject(\"Scripting.FileSystemObject\"));\n\t} catch(e) { return false; }\n};\n\n/*\nCreate an instance of this saver\n*/\nexports.create = function(wiki) {\n\treturn new FSOSaver(wiki);\n};\n\n})();\n", "title": "$:/core/modules/savers/fsosaver.js", "type": "application/javascript", "module-type": "saver" }, "$:/core/modules/savers/manualdownload.js": { "text": "/*\\\ntitle: $:/core/modules/savers/manualdownload.js\ntype: application/javascript\nmodule-type: saver\n\nHandles saving changes via HTML5's download APIs\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n// Title of the tiddler containing the download message\nvar downloadInstructionsTitle = \"$:/language/Modals/Download\";\n\n/*\nSelect the appropriate saver module and set it up\n*/\nvar ManualDownloadSaver = function(wiki) {\n};\n\nManualDownloadSaver.prototype.save = function(text,method,callback) {\n\t$tw.modal.display(downloadInstructionsTitle,{\n\t\tdownloadLink: \"data:text/html,\" + encodeURIComponent(text)\n\t});\n\t// Callback that we succeeded\n\tcallback(null);\n\treturn true;\n};\n\n/*\nInformation about this saver\n*/\nManualDownloadSaver.prototype.info = {\n\tname: \"manualdownload\",\n\tpriority: 0,\n\tcapabilities: [\"save\", \"download\"]\n};\n\n/*\nStatic method that returns true if this saver is capable of working\n*/\nexports.canSave = function(wiki) {\n\treturn true;\n};\n\n/*\nCreate an instance of this saver\n*/\nexports.create = function(wiki) {\n\treturn new ManualDownloadSaver(wiki);\n};\n\n})();\n", "title": "$:/core/modules/savers/manualdownload.js", "type": "application/javascript", "module-type": "saver" }, "$:/core/modules/savers/msdownload.js": { "text": "/*\\\ntitle: $:/core/modules/savers/msdownload.js\ntype: application/javascript\nmodule-type: saver\n\nHandles saving changes via window.navigator.msSaveBlob()\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nSelect the appropriate saver module and set it up\n*/\nvar MsDownloadSaver = function(wiki) {\n};\n\nMsDownloadSaver.prototype.save = function(text,method,callback) {\n\t// Get the current filename\n\tvar filename = \"tiddlywiki.html\",\n\t\tp = document.location.pathname.lastIndexOf(\"/\");\n\tif(p !== -1) {\n\t\tfilename = document.location.pathname.substr(p+1);\n\t}\n\t// Set up the link\n\tvar blob = new Blob([text], {type: \"text/html\"});\n\twindow.navigator.msSaveBlob(blob,filename);\n\t// Callback that we succeeded\n\tcallback(null);\n\treturn true;\n};\n\n/*\nInformation about this saver\n*/\nMsDownloadSaver.prototype.info = {\n\tname: \"msdownload\",\n\tpriority: 110,\n\tcapabilities: [\"save\", \"download\"]\n};\n\n/*\nStatic method that returns true if this saver is capable of working\n*/\nexports.canSave = function(wiki) {\n\treturn !!window.navigator.msSaveBlob;\n};\n\n/*\nCreate an instance of this saver\n*/\nexports.create = function(wiki) {\n\treturn new MsDownloadSaver(wiki);\n};\n\n})();\n", "title": "$:/core/modules/savers/msdownload.js", "type": "application/javascript", "module-type": "saver" }, "$:/core/modules/savers/put.js": { "text": "/*\\\ntitle: $:/core/modules/savers/put.js\ntype: application/javascript\nmodule-type: saver\n\nSaves wiki by performing a PUT request to the server\n\nWorks with any server which accepts a PUT request\nto the current URL, such as a WebDAV server.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nSelect the appropriate saver module and set it up\n*/\nvar PutSaver = function(wiki) {\n\tthis.wiki = wiki;\n\tvar self = this;\n\t// Async server probe. Until probe finishes, save will fail fast\n\t// See also https://github.com/Jermolene/TiddlyWiki5/issues/2276\n\tvar req = new XMLHttpRequest();\n\treq.open(\"OPTIONS\",encodeURI(document.location.protocol + \"//\" + document.location.hostname + \":\" + document.location.port + document.location.pathname));\n\treq.onload = function() {\n\t\t// Check DAV header http://www.webdav.org/specs/rfc2518.html#rfc.section.9.1\n\t\tself.serverAcceptsPuts = (this.status === 200 && !!this.getResponseHeader('dav'));\n\t};\n\treq.send();\n};\n\nPutSaver.prototype.save = function(text,method,callback) {\n\tif (!this.serverAcceptsPuts) {\n\t\treturn false;\n\t}\n\tvar req = new XMLHttpRequest();\n\t// TODO: store/check ETags if supported by server, to protect against overwrites\n\t// Prompt: Do you want to save over this? Y/N\n\t// Merging would be ideal, and may be possible using future generic merge flow\n\treq.onload = function() {\n\t\tif (this.status === 200 || this.status === 201) {\n\t\t\tcallback(null); // success\n\t\t}\n\t\telse {\n\t\t\tcallback(this.responseText); // fail\n\t\t}\n\t};\n\treq.open(\"PUT\", encodeURI(window.location.href));\n\treq.setRequestHeader(\"Content-Type\", \"text/html;charset=UTF-8\");\n\treq.send(text);\n\treturn true;\n};\n\n/*\nInformation about this saver\n*/\nPutSaver.prototype.info = {\n\tname: \"put\",\n\tpriority: 2000,\n\tcapabilities: [\"save\", \"autosave\"]\n};\n\n/*\nStatic method that returns true if this saver is capable of working\n*/\nexports.canSave = function(wiki) {\n\treturn /^https?:/.test(location.protocol);\n};\n\n/*\nCreate an instance of this saver\n*/\nexports.create = function(wiki) {\n\treturn new PutSaver(wiki);\n};\n\n})();\n", "title": "$:/core/modules/savers/put.js", "type": "application/javascript", "module-type": "saver" }, "$:/core/modules/savers/tiddlyfox.js": { "text": "/*\\\ntitle: $:/core/modules/savers/tiddlyfox.js\ntype: application/javascript\nmodule-type: saver\n\nHandles saving changes via the TiddlyFox file extension\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false, netscape: false, Components: false */\n\"use strict\";\n\nvar TiddlyFoxSaver = function(wiki) {\n};\n\nTiddlyFoxSaver.prototype.save = function(text,method,callback) {\n\tvar messageBox = document.getElementById(\"tiddlyfox-message-box\");\n\tif(messageBox) {\n\t\t// Get the pathname of this document\n\t\tvar pathname = document.location.toString().split(\"#\")[0];\n\t\t// Replace file://localhost/ with file:///\n\t\tif(pathname.indexOf(\"file://localhost/\") === 0) {\n\t\t\tpathname = \"file://\" + pathname.substr(16);\n\t\t}\n\t\t// Windows path file:///x:/blah/blah --> x:\\blah\\blah\n\t\tif(/^file\\:\\/\\/\\/[A-Z]\\:\\//i.test(pathname)) {\n\t\t\t// Remove the leading slash and convert slashes to backslashes\n\t\t\tpathname = pathname.substr(8).replace(/\\//g,\"\\\\\");\n\t\t// Firefox Windows network path file://///server/share/blah/blah --> //server/share/blah/blah\n\t\t} else if(pathname.indexOf(\"file://///\") === 0) {\n\t\t\tpathname = \"\\\\\\\\\" + unescape(pathname.substr(10)).replace(/\\//g,\"\\\\\");\n\t\t// Mac/Unix local path file:///path/path --> /path/path\n\t\t} else if(pathname.indexOf(\"file:///\") === 0) {\n\t\t\tpathname = unescape(pathname.substr(7));\n\t\t// Mac/Unix local path file:/path/path --> /path/path\n\t\t} else if(pathname.indexOf(\"file:/\") === 0) {\n\t\t\tpathname = unescape(pathname.substr(5));\n\t\t// Otherwise Windows networth path file://server/share/path/path --> \\\\server\\share\\path\\path\n\t\t} else {\n\t\t\tpathname = \"\\\\\\\\\" + unescape(pathname.substr(7)).replace(new RegExp(\"/\",\"g\"),\"\\\\\");\n\t\t}\n\t\t// Create the message element and put it in the message box\n\t\tvar message = document.createElement(\"div\");\n\t\tmessage.setAttribute(\"data-tiddlyfox-path\",decodeURIComponent(pathname));\n\t\tmessage.setAttribute(\"data-tiddlyfox-content\",text);\n\t\tmessageBox.appendChild(message);\n\t\t// Add an event handler for when the file has been saved\n\t\tmessage.addEventListener(\"tiddlyfox-have-saved-file\",function(event) {\n\t\t\tcallback(null);\n\t\t}, false);\n\t\t// Create and dispatch the custom event to the extension\n\t\tvar event = document.createEvent(\"Events\");\n\t\tevent.initEvent(\"tiddlyfox-save-file\",true,false);\n\t\tmessage.dispatchEvent(event);\n\t\treturn true;\n\t} else {\n\t\treturn false;\n\t}\n};\n\n/*\nInformation about this saver\n*/\nTiddlyFoxSaver.prototype.info = {\n\tname: \"tiddlyfox\",\n\tpriority: 1500,\n\tcapabilities: [\"save\", \"autosave\"]\n};\n\n/*\nStatic method that returns true if this saver is capable of working\n*/\nexports.canSave = function(wiki) {\n\treturn (window.location.protocol === \"file:\");\n};\n\n/*\nCreate an instance of this saver\n*/\nexports.create = function(wiki) {\n\treturn new TiddlyFoxSaver(wiki);\n};\n\n})();\n", "title": "$:/core/modules/savers/tiddlyfox.js", "type": "application/javascript", "module-type": "saver" }, "$:/core/modules/savers/tiddlyie.js": { "text": "/*\\\ntitle: $:/core/modules/savers/tiddlyie.js\ntype: application/javascript\nmodule-type: saver\n\nHandles saving changes via Internet Explorer BHO extenion (TiddlyIE)\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nSelect the appropriate saver module and set it up\n*/\nvar TiddlyIESaver = function(wiki) {\n};\n\nTiddlyIESaver.prototype.save = function(text,method,callback) {\n\t// Check existence of TiddlyIE BHO extension (note: only works after document is complete)\n\tif(typeof(window.TiddlyIE) != \"undefined\") {\n\t\t// Get the pathname of this document\n\t\tvar pathname = unescape(document.location.pathname);\n\t\t// Test for a Windows path of the form /x:/blah...\n\t\tif(/^\\/[A-Z]\\:\\/[^\\/]+/i.test(pathname)) {\t// ie: ^/[a-z]:/[^/]+ (is this better?: ^/[a-z]:/[^/]+(/[^/]+)*\\.[^/]+ )\n\t\t\t// Remove the leading slash\n\t\t\tpathname = pathname.substr(1);\n\t\t\t// Convert slashes to backslashes\n\t\t\tpathname = pathname.replace(/\\//g,\"\\\\\");\n\t\t} else if(document.hostname !== \"\" && /^\\/[^\\/]+\\/[^\\/]+/i.test(pathname)) {\t// test for \\\\server\\share\\blah... - ^/[^/]+/[^/]+\n\t\t\t// Convert slashes to backslashes\n\t\t\tpathname = pathname.replace(/\\//g,\"\\\\\");\n\t\t\t// reconstruct UNC path\n\t\t\tpathname = \"\\\\\\\\\" + document.location.hostname + pathname;\n\t\t} else return false;\n\t\t// Prompt the user to save the file\n\t\twindow.TiddlyIE.save(pathname, text);\n\t\t// Callback that we succeeded\n\t\tcallback(null);\n\t\treturn true;\n\t} else {\n\t\treturn false;\n\t}\n};\n\n/*\nInformation about this saver\n*/\nTiddlyIESaver.prototype.info = {\n\tname: \"tiddlyiesaver\",\n\tpriority: 1500,\n\tcapabilities: [\"save\"]\n};\n\n/*\nStatic method that returns true if this saver is capable of working\n*/\nexports.canSave = function(wiki) {\n\treturn (window.location.protocol === \"file:\");\n};\n\n/*\nCreate an instance of this saver\n*/\nexports.create = function(wiki) {\n\treturn new TiddlyIESaver(wiki);\n};\n\n})();\n", "title": "$:/core/modules/savers/tiddlyie.js", "type": "application/javascript", "module-type": "saver" }, "$:/core/modules/savers/twedit.js": { "text": "/*\\\ntitle: $:/core/modules/savers/twedit.js\ntype: application/javascript\nmodule-type: saver\n\nHandles saving changes via the TWEdit iOS app\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false, netscape: false, Components: false */\n\"use strict\";\n\nvar TWEditSaver = function(wiki) {\n};\n\nTWEditSaver.prototype.save = function(text,method,callback) {\n\t// Bail if we're not running under TWEdit\n\tif(typeof DeviceInfo !== \"object\") {\n\t\treturn false;\n\t}\n\t// Get the pathname of this document\n\tvar pathname = decodeURIComponent(document.location.pathname);\n\t// Strip any query or location part\n\tvar p = pathname.indexOf(\"?\");\n\tif(p !== -1) {\n\t\tpathname = pathname.substr(0,p);\n\t}\n\tp = pathname.indexOf(\"#\");\n\tif(p !== -1) {\n\t\tpathname = pathname.substr(0,p);\n\t}\n\t// Remove the leading \"/Documents\" from path\n\tvar prefix = \"/Documents\";\n\tif(pathname.indexOf(prefix) === 0) {\n\t\tpathname = pathname.substr(prefix.length);\n\t}\n\t// Error handler\n\tvar errorHandler = function(event) {\n\t\t// Error\n\t\tcallback($tw.language.getString(\"Error/SavingToTWEdit\") + \": \" + event.target.error.code);\n\t};\n\t// Get the file system\n\twindow.requestFileSystem(LocalFileSystem.PERSISTENT,0,function(fileSystem) {\n\t\t// Now we've got the filesystem, get the fileEntry\n\t\tfileSystem.root.getFile(pathname, {create: true}, function(fileEntry) {\n\t\t\t// Now we've got the fileEntry, create the writer\n\t\t\tfileEntry.createWriter(function(writer) {\n\t\t\t\twriter.onerror = errorHandler;\n\t\t\t\twriter.onwrite = function() {\n\t\t\t\t\tcallback(null);\n\t\t\t\t};\n\t\t\t\twriter.position = 0;\n\t\t\t\twriter.write(text);\n\t\t\t},errorHandler);\n\t\t}, errorHandler);\n\t}, errorHandler);\n\treturn true;\n};\n\n/*\nInformation about this saver\n*/\nTWEditSaver.prototype.info = {\n\tname: \"twedit\",\n\tpriority: 1600,\n\tcapabilities: [\"save\", \"autosave\"]\n};\n\n/*\nStatic method that returns true if this saver is capable of working\n*/\nexports.canSave = function(wiki) {\n\treturn true;\n};\n\n/*\nCreate an instance of this saver\n*/\nexports.create = function(wiki) {\n\treturn new TWEditSaver(wiki);\n};\n\n/////////////////////////// Hack\n// HACK: This ensures that TWEdit recognises us as a TiddlyWiki document\nif($tw.browser) {\n\twindow.version = {title: \"TiddlyWiki\"};\n}\n\n})();\n", "title": "$:/core/modules/savers/twedit.js", "type": "application/javascript", "module-type": "saver" }, "$:/core/modules/savers/upload.js": { "text": "/*\\\ntitle: $:/core/modules/savers/upload.js\ntype: application/javascript\nmodule-type: saver\n\nHandles saving changes via upload to a server.\n\nDesigned to be compatible with BidiX's UploadPlugin at http://tiddlywiki.bidix.info/#UploadPlugin\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nSelect the appropriate saver module and set it up\n*/\nvar UploadSaver = function(wiki) {\n\tthis.wiki = wiki;\n};\n\nUploadSaver.prototype.save = function(text,method,callback) {\n\t// Get the various parameters we need\n\tvar backupDir = this.wiki.getTextReference(\"$:/UploadBackupDir\") || \".\",\n\t\tusername = this.wiki.getTextReference(\"$:/UploadName\"),\n\t\tpassword = $tw.utils.getPassword(\"upload\"),\n\t\tuploadDir = this.wiki.getTextReference(\"$:/UploadDir\") || \".\",\n\t\tuploadFilename = this.wiki.getTextReference(\"$:/UploadFilename\") || \"index.html\",\n\t\turl = this.wiki.getTextReference(\"$:/UploadURL\");\n\t// Bail out if we don't have the bits we need\n\tif(!username || username.toString().trim() === \"\" || !password || password.toString().trim() === \"\") {\n\t\treturn false;\n\t}\n\t// Construct the url if not provided\n\tif(!url) {\n\t\turl = \"http://\" + username + \".tiddlyspot.com/store.cgi\";\n\t}\n\t// Assemble the header\n\tvar boundary = \"---------------------------\" + \"AaB03x\";\t\n\tvar uploadFormName = \"UploadPlugin\";\n\tvar head = [];\n\thead.push(\"--\" + boundary + \"\\r\\nContent-disposition: form-data; name=\\\"UploadPlugin\\\"\\r\\n\");\n\thead.push(\"backupDir=\" + backupDir + \";user=\" + username + \";password=\" + password + \";uploaddir=\" + uploadDir + \";;\"); \n\thead.push(\"\\r\\n\" + \"--\" + boundary);\n\thead.push(\"Content-disposition: form-data; name=\\\"userfile\\\"; filename=\\\"\" + uploadFilename + \"\\\"\");\n\thead.push(\"Content-Type: text/html;charset=UTF-8\");\n\thead.push(\"Content-Length: \" + text.length + \"\\r\\n\");\n\thead.push(\"\");\n\t// Assemble the tail and the data itself\n\tvar tail = \"\\r\\n--\" + boundary + \"--\\r\\n\",\n\t\tdata = head.join(\"\\r\\n\") + text + tail;\n\t// Do the HTTP post\n\tvar http = new XMLHttpRequest();\n\thttp.open(\"POST\",url,true,username,password);\n\thttp.setRequestHeader(\"Content-Type\",\"multipart/form-data; charset=UTF-8; boundary=\" + boundary);\n\thttp.onreadystatechange = function() {\n\t\tif(http.readyState == 4 && http.status == 200) {\n\t\t\tif(http.responseText.substr(0,4) === \"0 - \") {\n\t\t\t\tcallback(null);\n\t\t\t} else {\n\t\t\t\tcallback(http.responseText);\n\t\t\t}\n\t\t}\n\t};\n\ttry {\n\t\thttp.send(data);\n\t} catch(ex) {\n\t\treturn callback($tw.language.getString(\"Error/Caption\") + \":\" + ex);\n\t}\n\t$tw.notifier.display(\"$:/language/Notifications/Save/Starting\");\n\treturn true;\n};\n\n/*\nInformation about this saver\n*/\nUploadSaver.prototype.info = {\n\tname: \"upload\",\n\tpriority: 2000,\n\tcapabilities: [\"save\", \"autosave\"]\n};\n\n/*\nStatic method that returns true if this saver is capable of working\n*/\nexports.canSave = function(wiki) {\n\treturn true;\n};\n\n/*\nCreate an instance of this saver\n*/\nexports.create = function(wiki) {\n\treturn new UploadSaver(wiki);\n};\n\n})();\n", "title": "$:/core/modules/savers/upload.js", "type": "application/javascript", "module-type": "saver" }, "$:/core/modules/browser-messaging.js": { "text": "/*\\\ntitle: $:/core/modules/browser-messaging.js\ntype: application/javascript\nmodule-type: startup\n\nBrowser message handling\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n// Export name and synchronous status\nexports.name = \"browser-messaging\";\nexports.platforms = [\"browser\"];\nexports.after = [\"startup\"];\nexports.synchronous = true;\n\n/*\nLoad a specified url as an iframe and call the callback when it is loaded. If the url is already loaded then the existing iframe instance is used\n*/\nfunction loadIFrame(url,callback) {\n\t// Check if iframe already exists\n\tvar iframeInfo = $tw.browserMessaging.iframeInfoMap[url];\n\tif(iframeInfo) {\n\t\t// We've already got the iframe\n\t\tcallback(null,iframeInfo);\n\t} else {\n\t\t// Create the iframe and save it in the list\n\t\tvar iframe = document.createElement(\"iframe\"),\n\t\t\tiframeInfo = {\n\t\t\t\turl: url,\n\t\t\t\tstatus: \"loading\",\n\t\t\t\tdomNode: iframe\n\t\t\t};\n\t\t$tw.browserMessaging.iframeInfoMap[url] = iframeInfo;\n\t\tsaveIFrameInfoTiddler(iframeInfo);\n\t\t// Add the iframe to the DOM and hide it\n\t\tiframe.style.display = \"none\";\n\t\tdocument.body.appendChild(iframe);\n\t\t// Set up onload\n\t\tiframe.onload = function() {\n\t\t\tiframeInfo.status = \"loaded\";\n\t\t\tsaveIFrameInfoTiddler(iframeInfo);\n\t\t\tcallback(null,iframeInfo);\n\t\t};\n\t\tiframe.onerror = function() {\n\t\t\tcallback(\"Cannot load iframe\");\n\t\t};\n\t\ttry {\n\t\t\tiframe.src = url;\n\t\t} catch(ex) {\n\t\t\tcallback(ex);\n\t\t}\n\t}\n}\n\nfunction saveIFrameInfoTiddler(iframeInfo) {\n\t$tw.wiki.addTiddler(new $tw.Tiddler($tw.wiki.getCreationFields(),{\n\t\ttitle: \"$:/temp/ServerConnection/\" + iframeInfo.url,\n\t\ttext: iframeInfo.status,\n\t\ttags: [\"$:/tags/ServerConnection\"],\n\t\turl: iframeInfo.url\n\t},$tw.wiki.getModificationFields()));\n}\n\nexports.startup = function() {\n\t// Initialise the store of iframes we've created\n\t$tw.browserMessaging = {\n\t\tiframeInfoMap: {} // Hashmap by URL of {url:,status:\"loading/loaded\",domNode:}\n\t};\n\t// Listen for widget messages to control loading the plugin library\n\t$tw.rootWidget.addEventListener(\"tm-load-plugin-library\",function(event) {\n\t\tvar paramObject = event.paramObject || {},\n\t\t\turl = paramObject.url;\n\t\tif(url) {\n\t\t\tloadIFrame(url,function(err,iframeInfo) {\n\t\t\t\tif(err) {\n\t\t\t\t\talert($tw.language.getString(\"Error/LoadingPluginLibrary\") + \": \" + url);\n\t\t\t\t} else {\n\t\t\t\t\tiframeInfo.domNode.contentWindow.postMessage({\n\t\t\t\t\t\tverb: \"GET\",\n\t\t\t\t\t\turl: \"recipes/library/tiddlers.json\",\n\t\t\t\t\t\tcookies: {\n\t\t\t\t\t\t\ttype: \"save-info\",\n\t\t\t\t\t\t\tinfoTitlePrefix: paramObject.infoTitlePrefix || \"$:/temp/RemoteAssetInfo/\",\n\t\t\t\t\t\t\turl: url\n\t\t\t\t\t\t}\n\t\t\t\t\t},\"*\");\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t});\n\t$tw.rootWidget.addEventListener(\"tm-load-plugin-from-library\",function(event) {\n\t\tvar paramObject = event.paramObject || {},\n\t\t\turl = paramObject.url,\n\t\t\ttitle = paramObject.title;\n\t\tif(url && title) {\n\t\t\tloadIFrame(url,function(err,iframeInfo) {\n\t\t\t\tif(err) {\n\t\t\t\t\talert($tw.language.getString(\"Error/LoadingPluginLibrary\") + \": \" + url);\n\t\t\t\t} else {\n\t\t\t\t\tiframeInfo.domNode.contentWindow.postMessage({\n\t\t\t\t\t\tverb: \"GET\",\n\t\t\t\t\t\turl: \"recipes/library/tiddlers/\" + encodeURIComponent(title) + \".json\",\n\t\t\t\t\t\tcookies: {\n\t\t\t\t\t\t\ttype: \"save-tiddler\",\n\t\t\t\t\t\t\turl: url\n\t\t\t\t\t\t}\n\t\t\t\t\t},\"*\");\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t});\n\t// Listen for window messages from other windows\n\twindow.addEventListener(\"message\",function listener(event){\n\t\tconsole.log(\"browser-messaging: \",document.location.toString())\n\t\tconsole.log(\"browser-messaging: Received message from\",event.origin);\n\t\tconsole.log(\"browser-messaging: Message content\",event.data);\n\t\tswitch(event.data.verb) {\n\t\t\tcase \"GET-RESPONSE\":\n\t\t\t\tif(event.data.status.charAt(0) === \"2\") {\n\t\t\t\t\tif(event.data.cookies) {\n\t\t\t\t\t\tif(event.data.cookies.type === \"save-info\") {\n\t\t\t\t\t\t\tvar tiddlers = JSON.parse(event.data.body);\n\t\t\t\t\t\t\t$tw.utils.each(tiddlers,function(tiddler) {\n\t\t\t\t\t\t\t\t$tw.wiki.addTiddler(new $tw.Tiddler($tw.wiki.getCreationFields(),tiddler,{\n\t\t\t\t\t\t\t\t\ttitle: event.data.cookies.infoTitlePrefix + event.data.cookies.url + \"/\" + tiddler.title,\n\t\t\t\t\t\t\t\t\t\"original-title\": tiddler.title,\n\t\t\t\t\t\t\t\t\ttext: \"\",\n\t\t\t\t\t\t\t\t\ttype: \"text/vnd.tiddlywiki\",\n\t\t\t\t\t\t\t\t\t\"original-type\": tiddler.type,\n\t\t\t\t\t\t\t\t\t\"plugin-type\": undefined,\n\t\t\t\t\t\t\t\t\t\"original-plugin-type\": tiddler[\"plugin-type\"],\n\t\t\t\t\t\t\t\t\t\"module-type\": undefined,\n\t\t\t\t\t\t\t\t\t\"original-module-type\": tiddler[\"module-type\"],\n\t\t\t\t\t\t\t\t\ttags: [\"$:/tags/RemoteAssetInfo\"],\n\t\t\t\t\t\t\t\t\t\"original-tags\": $tw.utils.stringifyList(tiddler.tags || []),\n\t\t\t\t\t\t\t\t\t\"server-url\": event.data.cookies.url\n\t\t\t\t\t\t\t\t},$tw.wiki.getModificationFields()));\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t} else if(event.data.cookies.type === \"save-tiddler\") {\n\t\t\t\t\t\t\tvar tiddler = JSON.parse(event.data.body);\n\t\t\t\t\t\t\t$tw.wiki.addTiddler(new $tw.Tiddler(tiddler));\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t}\n\t},false);\n};\n\n})();\n", "title": "$:/core/modules/browser-messaging.js", "type": "application/javascript", "module-type": "startup" }, "$:/core/modules/startup/commands.js": { "text": "/*\\\ntitle: $:/core/modules/startup/commands.js\ntype: application/javascript\nmodule-type: startup\n\nCommand processing\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n// Export name and synchronous status\nexports.name = \"commands\";\nexports.platforms = [\"node\"];\nexports.after = [\"story\"];\nexports.synchronous = false;\n\nexports.startup = function(callback) {\n\t// On the server, start a commander with the command line arguments\n\tvar commander = new $tw.Commander(\n\t\t$tw.boot.argv,\n\t\tfunction(err) {\n\t\t\tif(err) {\n\t\t\t\treturn $tw.utils.error(\"Error: \" + err);\n\t\t\t}\n\t\t\tcallback();\n\t\t},\n\t\t$tw.wiki,\n\t\t{output: process.stdout, error: process.stderr}\n\t);\n\tcommander.execute();\n};\n\n})();\n", "title": "$:/core/modules/startup/commands.js", "type": "application/javascript", "module-type": "startup" }, "$:/core/modules/startup/favicon.js": { "text": "/*\\\ntitle: $:/core/modules/startup/favicon.js\ntype: application/javascript\nmodule-type: startup\n\nFavicon handling\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n// Export name and synchronous status\nexports.name = \"favicon\";\nexports.platforms = [\"browser\"];\nexports.after = [\"startup\"];\nexports.synchronous = true;\n\t\t\n// Favicon tiddler\nvar FAVICON_TITLE = \"$:/favicon.ico\";\n\nexports.startup = function() {\n\t// Set up the favicon\n\tsetFavicon();\n\t// Reset the favicon when the tiddler changes\n\t$tw.wiki.addEventListener(\"change\",function(changes) {\n\t\tif($tw.utils.hop(changes,FAVICON_TITLE)) {\n\t\t\tsetFavicon();\n\t\t}\n\t});\n};\n\nfunction setFavicon() {\n\tvar tiddler = $tw.wiki.getTiddler(FAVICON_TITLE);\n\tif(tiddler) {\n\t\tvar faviconLink = document.getElementById(\"faviconLink\");\n\t\tfaviconLink.setAttribute(\"href\",\"data:\" + tiddler.fields.type + \";base64,\" + tiddler.fields.text);\n\t}\n}\n\n})();\n", "title": "$:/core/modules/startup/favicon.js", "type": "application/javascript", "module-type": "startup" }, "$:/core/modules/startup/info.js": { "text": "/*\\\ntitle: $:/core/modules/startup/info.js\ntype: application/javascript\nmodule-type: startup\n\nInitialise $:/info tiddlers via $:/temp/info-plugin pseudo-plugin\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n// Export name and synchronous status\nexports.name = \"info\";\nexports.before = [\"startup\"];\nexports.after = [\"load-modules\"];\nexports.synchronous = true;\n\nexports.startup = function() {\n\t// Collect up the info tiddlers\n\tvar infoTiddlerFields = {};\n\t// Give each info module a chance to fill in as many info tiddlers as they want\n\t$tw.modules.forEachModuleOfType(\"info\",function(title,moduleExports) {\n\t\tif(moduleExports && moduleExports.getInfoTiddlerFields) {\n\t\t\tvar tiddlerFieldsArray = moduleExports.getInfoTiddlerFields(infoTiddlerFields);\n\t\t\t$tw.utils.each(tiddlerFieldsArray,function(fields) {\n\t\t\t\tif(fields) {\n\t\t\t\t\tinfoTiddlerFields[fields.title] = fields;\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t});\n\t// Bake the info tiddlers into a plugin\n\tvar fields = {\n\t\ttitle: \"$:/temp/info-plugin\",\n\t\ttype: \"application/json\",\n\t\t\"plugin-type\": \"info\",\n\t\ttext: JSON.stringify({tiddlers: infoTiddlerFields},null,$tw.config.preferences.jsonSpaces)\n\t};\n\t$tw.wiki.addTiddler(new $tw.Tiddler(fields));\n\t$tw.wiki.readPluginInfo();\n\t$tw.wiki.registerPluginTiddlers(\"info\");\n\t$tw.wiki.unpackPluginTiddlers();\n};\n\n})();\n", "title": "$:/core/modules/startup/info.js", "type": "application/javascript", "module-type": "startup" }, "$:/core/modules/startup/load-modules.js": { "text": "/*\\\ntitle: $:/core/modules/startup/load-modules.js\ntype: application/javascript\nmodule-type: startup\n\nLoad core modules\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n// Export name and synchronous status\nexports.name = \"load-modules\";\nexports.synchronous = true;\n\nexports.startup = function() {\n\t// Load modules\n\t$tw.modules.applyMethods(\"utils\",$tw.utils);\n\tif($tw.node) {\n\t\t$tw.modules.applyMethods(\"utils-node\",$tw.utils);\n\t}\n\t$tw.modules.applyMethods(\"global\",$tw);\n\t$tw.modules.applyMethods(\"config\",$tw.config);\n\t$tw.Tiddler.fieldModules = $tw.modules.getModulesByTypeAsHashmap(\"tiddlerfield\");\n\t$tw.modules.applyMethods(\"tiddlermethod\",$tw.Tiddler.prototype);\n\t$tw.modules.applyMethods(\"wikimethod\",$tw.Wiki.prototype);\n\t$tw.modules.applyMethods(\"tiddlerdeserializer\",$tw.Wiki.tiddlerDeserializerModules);\n\t$tw.macros = $tw.modules.getModulesByTypeAsHashmap(\"macro\");\n\t$tw.wiki.initParsers();\n\t$tw.Commander.initCommands();\n};\n\n})();\n", "title": "$:/core/modules/startup/load-modules.js", "type": "application/javascript", "module-type": "startup" }, "$:/core/modules/startup/password.js": { "text": "/*\\\ntitle: $:/core/modules/startup/password.js\ntype: application/javascript\nmodule-type: startup\n\nPassword handling\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n// Export name and synchronous status\nexports.name = \"password\";\nexports.platforms = [\"browser\"];\nexports.after = [\"startup\"];\nexports.synchronous = true;\n\nexports.startup = function() {\n\t$tw.rootWidget.addEventListener(\"tm-set-password\",function(event) {\n\t\t$tw.passwordPrompt.createPrompt({\n\t\t\tserviceName: $tw.language.getString(\"Encryption/PromptSetPassword\"),\n\t\t\tnoUserName: true,\n\t\t\tsubmitText: $tw.language.getString(\"Encryption/SetPassword\"),\n\t\t\tcanCancel: true,\n\t\t\trepeatPassword: true,\n\t\t\tcallback: function(data) {\n\t\t\t\tif(data) {\n\t\t\t\t\t$tw.crypto.setPassword(data.password);\n\t\t\t\t}\n\t\t\t\treturn true; // Get rid of the password prompt\n\t\t\t}\n\t\t});\n\t});\n\t$tw.rootWidget.addEventListener(\"tm-clear-password\",function(event) {\n\t\tif($tw.browser) {\n\t\t\tif(!confirm($tw.language.getString(\"Encryption/ConfirmClearPassword\"))) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t\t$tw.crypto.setPassword(null);\n\t});\n\t// Ensure that $:/isEncrypted is maintained properly\n\t$tw.wiki.addEventListener(\"change\",function(changes) {\n\t\tif($tw.utils.hop(changes,\"$:/isEncrypted\")) {\n\t\t\t$tw.crypto.updateCryptoStateTiddler();\n\t\t}\n\t});\n};\n\n})();\n", "title": "$:/core/modules/startup/password.js", "type": "application/javascript", "module-type": "startup" }, "$:/core/modules/startup/render.js": { "text": "/*\\\ntitle: $:/core/modules/startup/render.js\ntype: application/javascript\nmodule-type: startup\n\nTitle, stylesheet and page rendering\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n// Export name and synchronous status\nexports.name = \"render\";\nexports.platforms = [\"browser\"];\nexports.after = [\"story\"];\nexports.synchronous = true;\n\n// Default story and history lists\nvar PAGE_TITLE_TITLE = \"$:/core/wiki/title\";\nvar PAGE_STYLESHEET_TITLE = \"$:/core/ui/PageStylesheet\";\nvar PAGE_TEMPLATE_TITLE = \"$:/core/ui/PageTemplate\";\n\n// Time (in ms) that we defer refreshing changes to draft tiddlers\nvar DRAFT_TIDDLER_TIMEOUT_TITLE = \"$:/config/Drafts/TypingTimeout\";\nvar DRAFT_TIDDLER_TIMEOUT = 400;\n\nexports.startup = function() {\n\t// Set up the title\n\t$tw.titleWidgetNode = $tw.wiki.makeTranscludeWidget(PAGE_TITLE_TITLE,{document: $tw.fakeDocument, parseAsInline: true});\n\t$tw.titleContainer = $tw.fakeDocument.createElement(\"div\");\n\t$tw.titleWidgetNode.render($tw.titleContainer,null);\n\tdocument.title = $tw.titleContainer.textContent;\n\t$tw.wiki.addEventListener(\"change\",function(changes) {\n\t\tif($tw.titleWidgetNode.refresh(changes,$tw.titleContainer,null)) {\n\t\t\tdocument.title = $tw.titleContainer.textContent;\n\t\t}\n\t});\n\t// Set up the styles\n\t$tw.styleWidgetNode = $tw.wiki.makeTranscludeWidget(PAGE_STYLESHEET_TITLE,{document: $tw.fakeDocument});\n\t$tw.styleContainer = $tw.fakeDocument.createElement(\"style\");\n\t$tw.styleWidgetNode.render($tw.styleContainer,null);\n\t$tw.styleElement = document.createElement(\"style\");\n\t$tw.styleElement.innerHTML = $tw.styleContainer.textContent;\n\tdocument.head.insertBefore($tw.styleElement,document.head.firstChild);\n\t$tw.wiki.addEventListener(\"change\",$tw.perf.report(\"styleRefresh\",function(changes) {\n\t\tif($tw.styleWidgetNode.refresh(changes,$tw.styleContainer,null)) {\n\t\t\t$tw.styleElement.innerHTML = $tw.styleContainer.textContent;\n\t\t}\n\t}));\n\t// Display the $:/core/ui/PageTemplate tiddler to kick off the display\n\t$tw.perf.report(\"mainRender\",function() {\n\t\t$tw.pageWidgetNode = $tw.wiki.makeTranscludeWidget(PAGE_TEMPLATE_TITLE,{document: document, parentWidget: $tw.rootWidget});\n\t\t$tw.pageContainer = document.createElement(\"div\");\n\t\t$tw.utils.addClass($tw.pageContainer,\"tc-page-container-wrapper\");\n\t\tdocument.body.insertBefore($tw.pageContainer,document.body.firstChild);\n\t\t$tw.pageWidgetNode.render($tw.pageContainer,null);\n\t})();\n\t// Prepare refresh mechanism\n\tvar deferredChanges = Object.create(null),\n\t\ttimerId;\n\tfunction refresh() {\n\t\t// Process the refresh\n\t\t$tw.pageWidgetNode.refresh(deferredChanges);\n\t\tdeferredChanges = Object.create(null);\n\t}\n\t// Add the change event handler\n\t$tw.wiki.addEventListener(\"change\",$tw.perf.report(\"mainRefresh\",function(changes) {\n\t\t// Check if only drafts have changed\n\t\tvar onlyDraftsHaveChanged = true;\n\t\tfor(var title in changes) {\n\t\t\tvar tiddler = $tw.wiki.getTiddler(title);\n\t\t\tif(!tiddler || !tiddler.hasField(\"draft.of\")) {\n\t\t\t\tonlyDraftsHaveChanged = false;\n\t\t\t}\n\t\t}\n\t\t// Defer the change if only drafts have changed\n\t\tif(timerId) {\n\t\t\tclearTimeout(timerId);\n\t\t}\n\t\ttimerId = null;\n\t\tif(onlyDraftsHaveChanged) {\n\t\t\tvar timeout = parseInt($tw.wiki.getTiddlerText(DRAFT_TIDDLER_TIMEOUT_TITLE,\"\"),10);\n\t\t\tif(isNaN(timeout)) {\n\t\t\t\ttimeout = DRAFT_TIDDLER_TIMEOUT;\n\t\t\t}\n\t\t\ttimerId = setTimeout(refresh,timeout);\n\t\t\t$tw.utils.extend(deferredChanges,changes);\n\t\t} else {\n\t\t\t$tw.utils.extend(deferredChanges,changes);\n\t\t\trefresh();\n\t\t}\n\t}));\n\t// Fix up the link between the root widget and the page container\n\t$tw.rootWidget.domNodes = [$tw.pageContainer];\n\t$tw.rootWidget.children = [$tw.pageWidgetNode];\n};\n\n})();\n", "title": "$:/core/modules/startup/render.js", "type": "application/javascript", "module-type": "startup" }, "$:/core/modules/startup/rootwidget.js": { "text": "/*\\\ntitle: $:/core/modules/startup/rootwidget.js\ntype: application/javascript\nmodule-type: startup\n\nSetup the root widget and the core root widget handlers\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n// Export name and synchronous status\nexports.name = \"rootwidget\";\nexports.platforms = [\"browser\"];\nexports.after = [\"startup\"];\nexports.before = [\"story\"];\nexports.synchronous = true;\n\nexports.startup = function() {\n\t// Install the modal message mechanism\n\t$tw.modal = new $tw.utils.Modal($tw.wiki);\n\t$tw.rootWidget.addEventListener(\"tm-modal\",function(event) {\n\t\t$tw.modal.display(event.param,{variables: event.paramObject});\n\t});\n\t// Install the notification mechanism\n\t$tw.notifier = new $tw.utils.Notifier($tw.wiki);\n\t$tw.rootWidget.addEventListener(\"tm-notify\",function(event) {\n\t\t$tw.notifier.display(event.param,{variables: event.paramObject});\n\t});\n\t// Install the scroller\n\t$tw.pageScroller = new $tw.utils.PageScroller();\n\t$tw.rootWidget.addEventListener(\"tm-scroll\",function(event) {\n\t\t$tw.pageScroller.handleEvent(event);\n\t});\n\tvar fullscreen = $tw.utils.getFullScreenApis();\n\tif(fullscreen) {\n\t\t$tw.rootWidget.addEventListener(\"tm-full-screen\",function(event) {\n\t\t\tif(document[fullscreen._fullscreenElement]) {\n\t\t\t\tdocument[fullscreen._exitFullscreen]();\n\t\t\t} else {\n\t\t\t\tdocument.documentElement[fullscreen._requestFullscreen](Element.ALLOW_KEYBOARD_INPUT);\n\t\t\t}\n\t\t});\n\t}\n\t// If we're being viewed on a data: URI then give instructions for how to save\n\tif(document.location.protocol === \"data:\") {\n\t\t$tw.rootWidget.dispatchEvent({\n\t\t\ttype: \"tm-modal\",\n\t\t\tparam: \"$:/language/Modals/SaveInstructions\"\n\t\t});\n\t}\n};\n\n})();\n", "title": "$:/core/modules/startup/rootwidget.js", "type": "application/javascript", "module-type": "startup" }, "$:/core/modules/startup.js": { "text": "/*\\\ntitle: $:/core/modules/startup.js\ntype: application/javascript\nmodule-type: startup\n\nMiscellaneous startup logic for both the client and server.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n// Export name and synchronous status\nexports.name = \"startup\";\nexports.after = [\"load-modules\"];\nexports.synchronous = true;\n\n// Set to `true` to enable performance instrumentation\nvar PERFORMANCE_INSTRUMENTATION_CONFIG_TITLE = \"$:/config/Performance/Instrumentation\";\n\nvar widget = require(\"$:/core/modules/widgets/widget.js\");\n\nexports.startup = function() {\n\tvar modules,n,m,f;\n\t// Minimal browser detection\n\tif($tw.browser) {\n\t\t$tw.browser.isIE = (/msie|trident/i.test(navigator.userAgent));\n\t\t$tw.browser.isFirefox = !!document.mozFullScreenEnabled;\n\t}\n\t// Platform detection\n\t$tw.platform = {};\n\tif($tw.browser) {\n\t\t$tw.platform.isMac = /Mac/.test(navigator.platform);\n\t\t$tw.platform.isWindows = /win/i.test(navigator.platform);\n\t\t$tw.platform.isLinux = /Linux/i.test(navigator.appVersion);\n\t} else {\n\t\tswitch(require(\"os\").platform()) {\n\t\t\tcase \"darwin\":\n\t\t\t\t$tw.platform.isMac = true;\n\t\t\t\tbreak;\n\t\t\tcase \"win32\":\n\t\t\t\t$tw.platform.isWindows = true;\n\t\t\t\tbreak;\n\t\t\tcase \"freebsd\":\n\t\t\t\t$tw.platform.isLinux = true;\n\t\t\t\tbreak;\n\t\t\tcase \"linux\":\n\t\t\t\t$tw.platform.isLinux = true;\n\t\t\t\tbreak;\n\t\t}\n\t}\n\t// Initialise version\n\t$tw.version = $tw.utils.extractVersionInfo();\n\t// Set up the performance framework\n\t$tw.perf = new $tw.Performance($tw.wiki.getTiddlerText(PERFORMANCE_INSTRUMENTATION_CONFIG_TITLE,\"no\") === \"yes\");\n\t// Kick off the language manager and switcher\n\t$tw.language = new $tw.Language();\n\t$tw.languageSwitcher = new $tw.PluginSwitcher({\n\t\twiki: $tw.wiki,\n\t\tpluginType: \"language\",\n\t\tcontrollerTitle: \"$:/language\",\n\t\tdefaultPlugins: [\n\t\t\t\"$:/languages/en-US\"\n\t\t]\n\t});\n\t// Kick off the theme manager\n\t$tw.themeManager = new $tw.PluginSwitcher({\n\t\twiki: $tw.wiki,\n\t\tpluginType: \"theme\",\n\t\tcontrollerTitle: \"$:/theme\",\n\t\tdefaultPlugins: [\n\t\t\t\"$:/themes/tiddlywiki/snowwhite\",\n\t\t\t\"$:/themes/tiddlywiki/vanilla\"\n\t\t]\n\t});\n\t// Kick off the keyboard manager\n\t$tw.keyboardManager = new $tw.KeyboardManager();\n\t// Clear outstanding tiddler store change events to avoid an unnecessary refresh cycle at startup\n\t$tw.wiki.clearTiddlerEventQueue();\n\t// Create a root widget for attaching event handlers. By using it as the parentWidget for another widget tree, one can reuse the event handlers\n\tif($tw.browser) {\n\t\t$tw.rootWidget = new widget.widget({\n\t\t\ttype: \"widget\",\n\t\t\tchildren: []\n\t\t},{\n\t\t\twiki: $tw.wiki,\n\t\t\tdocument: document\n\t\t});\n\t}\n\t// Find a working syncadaptor\n\t$tw.syncadaptor = undefined;\n\t$tw.modules.forEachModuleOfType(\"syncadaptor\",function(title,module) {\n\t\tif(!$tw.syncadaptor && module.adaptorClass) {\n\t\t\t$tw.syncadaptor = new module.adaptorClass({wiki: $tw.wiki});\n\t\t}\n\t});\n\t// Set up the syncer object if we've got a syncadaptor\n\tif($tw.syncadaptor) {\n\t\t$tw.syncer = new $tw.Syncer({wiki: $tw.wiki, syncadaptor: $tw.syncadaptor});\n\t} \n\t// Setup the saver handler\n\t$tw.saverHandler = new $tw.SaverHandler({wiki: $tw.wiki, dirtyTracking: !$tw.syncadaptor});\n\t// Host-specific startup\n\tif($tw.browser) {\n\t\t// Install the popup manager\n\t\t$tw.popup = new $tw.utils.Popup();\n\t\t// Install the animator\n\t\t$tw.anim = new $tw.utils.Animator();\n\t}\n};\n\n})();\n", "title": "$:/core/modules/startup.js", "type": "application/javascript", "module-type": "startup" }, "$:/core/modules/startup/story.js": { "text": "/*\\\ntitle: $:/core/modules/startup/story.js\ntype: application/javascript\nmodule-type: startup\n\nLoad core modules\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n// Export name and synchronous status\nexports.name = \"story\";\nexports.after = [\"startup\"];\nexports.synchronous = true;\n\n// Default story and history lists\nvar DEFAULT_STORY_TITLE = \"$:/StoryList\";\nvar DEFAULT_HISTORY_TITLE = \"$:/HistoryList\";\n\n// Default tiddlers\nvar DEFAULT_TIDDLERS_TITLE = \"$:/DefaultTiddlers\";\n\n// Config\nvar CONFIG_UPDATE_ADDRESS_BAR = \"$:/config/Navigation/UpdateAddressBar\"; // Can be \"no\", \"permalink\", \"permaview\"\nvar CONFIG_UPDATE_HISTORY = \"$:/config/Navigation/UpdateHistory\"; // Can be \"yes\" or \"no\"\n\nexports.startup = function() {\n\t// Open startup tiddlers\n\topenStartupTiddlers();\n\tif($tw.browser) {\n\t\t// Set up location hash update\n\t\t$tw.wiki.addEventListener(\"change\",function(changes) {\n\t\t\tif($tw.utils.hop(changes,DEFAULT_STORY_TITLE) || $tw.utils.hop(changes,DEFAULT_HISTORY_TITLE)) {\n\t\t\t\tupdateLocationHash({\n\t\t\t\t\tupdateAddressBar: $tw.wiki.getTiddlerText(CONFIG_UPDATE_ADDRESS_BAR,\"permaview\").trim(),\n\t\t\t\t\tupdateHistory: $tw.wiki.getTiddlerText(CONFIG_UPDATE_HISTORY,\"no\").trim()\n\t\t\t\t});\n\t\t\t}\n\t\t});\n\t\t// Listen for changes to the browser location hash\n\t\twindow.addEventListener(\"hashchange\",function() {\n\t\t\tvar hash = $tw.utils.getLocationHash();\n\t\t\tif(hash !== $tw.locationHash) {\n\t\t\t\t$tw.locationHash = hash;\n\t\t\t\topenStartupTiddlers({defaultToCurrentStory: true});\n\t\t\t}\n\t\t},false);\n\t\t// Listen for the tm-browser-refresh message\n\t\t$tw.rootWidget.addEventListener(\"tm-browser-refresh\",function(event) {\n\t\t\twindow.location.reload(true);\n\t\t});\n\t\t// Listen for the tm-home message\n\t\t$tw.rootWidget.addEventListener(\"tm-home\",function(event) {\n\t\t\twindow.location.hash = \"\";\n\t\t\tvar storyFilter = $tw.wiki.getTiddlerText(DEFAULT_TIDDLERS_TITLE),\n\t\t\t\tstoryList = $tw.wiki.filterTiddlers(storyFilter);\n\t\t\t//invoke any hooks that might change the default story list\n\t\t\tstoryList = $tw.hooks.invokeHook(\"th-opening-default-tiddlers-list\",storyList);\n\t\t\t$tw.wiki.addTiddler({title: DEFAULT_STORY_TITLE, text: \"\", list: storyList},$tw.wiki.getModificationFields());\n\t\t\tif(storyList[0]) {\n\t\t\t\t$tw.wiki.addToHistory(storyList[0]);\t\t\t\t\n\t\t\t}\n\t\t});\n\t\t// Listen for the tm-permalink message\n\t\t$tw.rootWidget.addEventListener(\"tm-permalink\",function(event) {\n\t\t\tupdateLocationHash({\n\t\t\t\tupdateAddressBar: \"permalink\",\n\t\t\t\tupdateHistory: $tw.wiki.getTiddlerText(CONFIG_UPDATE_HISTORY,\"no\").trim(),\n\t\t\t\ttargetTiddler: event.param || event.tiddlerTitle\n\t\t\t});\n\t\t});\n\t\t// Listen for the tm-permaview message\n\t\t$tw.rootWidget.addEventListener(\"tm-permaview\",function(event) {\n\t\t\tupdateLocationHash({\n\t\t\t\tupdateAddressBar: \"permaview\",\n\t\t\t\tupdateHistory: $tw.wiki.getTiddlerText(CONFIG_UPDATE_HISTORY,\"no\").trim(),\n\t\t\t\ttargetTiddler: event.param || event.tiddlerTitle\n\t\t\t});\n\t\t});\n\t}\n};\n\n/*\nProcess the location hash to open the specified tiddlers. Options:\ndefaultToCurrentStory: If true, the current story is retained as the default, instead of opening the default tiddlers\n*/\nfunction openStartupTiddlers(options) {\n\toptions = options || {};\n\t// Work out the target tiddler and the story filter. \"null\" means \"unspecified\"\n\tvar target = null,\n\t\tstoryFilter = null;\n\tif($tw.locationHash.length > 1) {\n\t\tvar hash = $tw.locationHash.substr(1),\n\t\t\tsplit = hash.indexOf(\":\");\n\t\tif(split === -1) {\n\t\t\ttarget = decodeURIComponent(hash.trim());\n\t\t} else {\n\t\t\ttarget = decodeURIComponent(hash.substr(0,split).trim());\n\t\t\tstoryFilter = decodeURIComponent(hash.substr(split + 1).trim());\n\t\t}\n\t}\n\t// If the story wasn't specified use the current tiddlers or a blank story\n\tif(storyFilter === null) {\n\t\tif(options.defaultToCurrentStory) {\n\t\t\tvar currStoryList = $tw.wiki.getTiddlerList(DEFAULT_STORY_TITLE);\n\t\t\tstoryFilter = $tw.utils.stringifyList(currStoryList);\n\t\t} else {\n\t\t\tif(target && target !== \"\") {\n\t\t\t\tstoryFilter = \"\";\n\t\t\t} else {\n\t\t\t\tstoryFilter = $tw.wiki.getTiddlerText(DEFAULT_TIDDLERS_TITLE);\n\t\t\t}\n\t\t}\n\t}\n\t// Process the story filter to get the story list\n\tvar storyList = $tw.wiki.filterTiddlers(storyFilter);\n\t// Invoke any hooks that want to change the default story list\n\tstoryList = $tw.hooks.invokeHook(\"th-opening-default-tiddlers-list\",storyList);\n\t// If the target tiddler isn't included then splice it in at the top\n\tif(target && storyList.indexOf(target) === -1) {\n\t\tstoryList.unshift(target);\n\t}\n\t// Save the story list\n\t$tw.wiki.addTiddler({title: DEFAULT_STORY_TITLE, text: \"\", list: storyList},$tw.wiki.getModificationFields());\n\t// If a target tiddler was specified add it to the history stack\n\tif(target && target !== \"\") {\n\t\t// The target tiddler doesn't need double square brackets, but we'll silently remove them if they're present\n\t\tif(target.indexOf(\"[[\") === 0 && target.substr(-2) === \"]]\") {\n\t\t\ttarget = target.substr(2,target.length - 4);\n\t\t}\n\t\t$tw.wiki.addToHistory(target);\n\t} else if(storyList.length > 0) {\n\t\t$tw.wiki.addToHistory(storyList[0]);\n\t}\n}\n\n/*\noptions: See below\noptions.updateAddressBar: \"permalink\", \"permaview\" or \"no\" (defaults to \"permaview\")\noptions.updateHistory: \"yes\" or \"no\" (defaults to \"no\")\noptions.targetTiddler: optional title of target tiddler for permalink\n*/\nfunction updateLocationHash(options) {\n\tif(options.updateAddressBar !== \"no\") {\n\t\t// Get the story and the history stack\n\t\tvar storyList = $tw.wiki.getTiddlerList(DEFAULT_STORY_TITLE),\n\t\t\thistoryList = $tw.wiki.getTiddlerData(DEFAULT_HISTORY_TITLE,[]),\n\t\t\ttargetTiddler = \"\";\n\t\tif(options.targetTiddler) {\n\t\t\ttargetTiddler = options.targetTiddler;\n\t\t} else {\n\t\t\t// The target tiddler is the one at the top of the stack\n\t\t\tif(historyList.length > 0) {\n\t\t\t\ttargetTiddler = historyList[historyList.length-1].title;\n\t\t\t}\n\t\t\t// Blank the target tiddler if it isn't present in the story\n\t\t\tif(storyList.indexOf(targetTiddler) === -1) {\n\t\t\t\ttargetTiddler = \"\";\n\t\t\t}\n\t\t}\n\t\t// Assemble the location hash\n\t\tif(options.updateAddressBar === \"permalink\") {\n\t\t\t$tw.locationHash = \"#\" + encodeURIComponent(targetTiddler);\n\t\t} else {\n\t\t\t$tw.locationHash = \"#\" + encodeURIComponent(targetTiddler) + \":\" + encodeURIComponent($tw.utils.stringifyList(storyList));\n\t\t}\n\t\t// Only change the location hash if we must, thus avoiding unnecessary onhashchange events\n\t\tif($tw.utils.getLocationHash() !== $tw.locationHash) {\n\t\t\tif(options.updateHistory === \"yes\") {\n\t\t\t\t// Assign the location hash so that history is updated\n\t\t\t\twindow.location.hash = $tw.locationHash;\n\t\t\t} else {\n\t\t\t\t// We use replace so that browser history isn't affected\n\t\t\t\twindow.location.replace(window.location.toString().split(\"#\")[0] + $tw.locationHash);\n\t\t\t}\n\t\t}\n\t}\n}\n\n})();\n", "title": "$:/core/modules/startup/story.js", "type": "application/javascript", "module-type": "startup" }, "$:/core/modules/startup/windows.js": { "text": "/*\\\ntitle: $:/core/modules/startup/windows.js\ntype: application/javascript\nmodule-type: startup\n\nSetup root widget handlers for the messages concerned with opening external browser windows\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n// Export name and synchronous status\nexports.name = \"windows\";\nexports.platforms = [\"browser\"];\nexports.after = [\"startup\"];\nexports.synchronous = true;\n\n// Global to keep track of open windows (hashmap by title)\nvar windows = {};\n\nexports.startup = function() {\n\t// Handle open window message\n\t$tw.rootWidget.addEventListener(\"tm-open-window\",function(event) {\n\t\t// Get the parameters\n\t\tvar refreshHandler,\n\t\t\ttitle = event.param || event.tiddlerTitle,\n\t\t\tparamObject = event.paramObject || {},\n\t\t\ttemplate = paramObject.template || \"$:/core/templates/single.tiddler.window\",\n\t\t\twidth = paramObject.width || \"700\",\n\t\t\theight = paramObject.height || \"600\",\n\t\t\tvariables = $tw.utils.extend({},paramObject,{currentTiddler: title});\n\t\t// Open the window\n\t\tvar srcWindow = window.open(\"\",\"external-\" + title,\"scrollbars,width=\" + width + \",height=\" + height),\n\t\t\tsrcDocument = srcWindow.document;\n\t\twindows[title] = srcWindow;\n\t\t// Check for reopening the same window\n\t\tif(srcWindow.haveInitialisedWindow) {\n\t\t\treturn;\n\t\t}\n\t\t// Initialise the document\n\t\tsrcDocument.write(\"<html><head></head><body class='tc-body tc-single-tiddler-window'></body></html>\");\n\t\tsrcDocument.close();\n\t\tsrcDocument.title = title;\n\t\tsrcWindow.addEventListener(\"beforeunload\",function(event) {\n\t\t\tdelete windows[title];\n\t\t\t$tw.wiki.removeEventListener(\"change\",refreshHandler);\n\t\t},false);\n\t\t// Set up the styles\n\t\tvar styleWidgetNode = $tw.wiki.makeTranscludeWidget(\"$:/core/ui/PageStylesheet\",{document: $tw.fakeDocument, variables: variables}),\n\t\t\tstyleContainer = $tw.fakeDocument.createElement(\"style\");\n\t\tstyleWidgetNode.render(styleContainer,null);\n\t\tvar styleElement = srcDocument.createElement(\"style\");\n\t\tstyleElement.innerHTML = styleContainer.textContent;\n\t\tsrcDocument.head.insertBefore(styleElement,srcDocument.head.firstChild);\n\t\t// Render the text of the tiddler\n\t\tvar parser = $tw.wiki.parseTiddler(template),\n\t\t\twidgetNode = $tw.wiki.makeWidget(parser,{document: srcDocument, parentWidget: $tw.rootWidget, variables: variables});\n\t\twidgetNode.render(srcDocument.body,srcDocument.body.firstChild);\n\t\t// Function to handle refreshes\n\t\trefreshHandler = function(changes) {\n\t\t\tif(styleWidgetNode.refresh(changes,styleContainer,null)) {\n\t\t\t\tstyleElement.innerHTML = styleContainer.textContent;\n\t\t\t}\n\t\t\twidgetNode.refresh(changes);\n\t\t};\n\t\t$tw.wiki.addEventListener(\"change\",refreshHandler);\n\t\tsrcWindow.haveInitialisedWindow = true;\n\t});\n\t// Close open windows when unloading main window\n\t$tw.addUnloadTask(function() {\n\t\t$tw.utils.each(windows,function(win) {\n\t\t\twin.close();\n\t\t});\n\t});\n\n};\n\n})();\n", "title": "$:/core/modules/startup/windows.js", "type": "application/javascript", "module-type": "startup" }, "$:/core/modules/story.js": { "text": "/*\\\ntitle: $:/core/modules/story.js\ntype: application/javascript\nmodule-type: global\n\nLightweight object for managing interactions with the story and history lists.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nConstruct Story object with options:\nwiki: reference to wiki object to use to resolve tiddler titles\nstoryTitle: title of story list tiddler\nhistoryTitle: title of history list tiddler\n*/\nfunction Story(options) {\n\toptions = options || {};\n\tthis.wiki = options.wiki || $tw.wiki;\n\tthis.storyTitle = options.storyTitle || \"$:/StoryList\";\n\tthis.historyTitle = options.historyTitle || \"$:/HistoryList\";\n};\n\nStory.prototype.navigateTiddler = function(navigateTo,navigateFromTitle,navigateFromClientRect) {\n\tthis.addToStory(navigateTo,navigateFromTitle);\n\tthis.addToHistory(navigateTo,navigateFromClientRect);\n};\n\nStory.prototype.getStoryList = function() {\n\treturn this.wiki.getTiddlerList(this.storyTitle) || [];\n};\n\nStory.prototype.addToStory = function(navigateTo,navigateFromTitle,options) {\n\toptions = options || {};\n\tvar storyList = this.getStoryList();\n\t// See if the tiddler is already there\n\tvar slot = storyList.indexOf(navigateTo);\n\t// Quit if it already exists in the story river\n\tif(slot >= 0) {\n\t\treturn;\n\t}\n\t// First we try to find the position of the story element we navigated from\n\tvar fromIndex = storyList.indexOf(navigateFromTitle);\n\tif(fromIndex >= 0) {\n\t\t// The tiddler is added from inside the river\n\t\t// Determine where to insert the tiddler; Fallback is \"below\"\n\t\tswitch(options.openLinkFromInsideRiver) {\n\t\t\tcase \"top\":\n\t\t\t\tslot = 0;\n\t\t\t\tbreak;\n\t\t\tcase \"bottom\":\n\t\t\t\tslot = storyList.length;\n\t\t\t\tbreak;\n\t\t\tcase \"above\":\n\t\t\t\tslot = fromIndex;\n\t\t\t\tbreak;\n\t\t\tcase \"below\": // Intentional fall-through\n\t\t\tdefault:\n\t\t\t\tslot = fromIndex + 1;\n\t\t\t\tbreak;\n\t\t}\n\t} else {\n\t\t// The tiddler is opened from outside the river. Determine where to insert the tiddler; default is \"top\"\n\t\tif(options.openLinkFromOutsideRiver === \"bottom\") {\n\t\t\t// Insert at bottom\n\t\t\tslot = storyList.length;\n\t\t} else {\n\t\t\t// Insert at top\n\t\t\tslot = 0;\n\t\t}\n\t}\n\t// Add the tiddler\n\tstoryList.splice(slot,0,navigateTo);\n\t// Save the story\n\tthis.saveStoryList(storyList);\n};\n\nStory.prototype.saveStoryList = function(storyList) {\n\tvar storyTiddler = this.wiki.getTiddler(this.storyTitle);\n\tthis.wiki.addTiddler(new $tw.Tiddler(\n\t\tthis.wiki.getCreationFields(),\n\t\t{title: this.storyTitle},\n\t\tstoryTiddler,\n\t\t{list: storyList},\n\t\tthis.wiki.getModificationFields()\n\t));\n};\n\nStory.prototype.addToHistory = function(navigateTo,navigateFromClientRect) {\n\tvar titles = $tw.utils.isArray(navigateTo) ? navigateTo : [navigateTo];\n\t// Add a new record to the top of the history stack\n\tvar historyList = this.wiki.getTiddlerData(this.historyTitle,[]);\n\t$tw.utils.each(titles,function(title) {\n\t\thistoryList.push({title: title, fromPageRect: navigateFromClientRect});\n\t});\n\tthis.wiki.setTiddlerData(this.historyTitle,historyList,{\"current-tiddler\": titles[titles.length-1]});\n};\n\nStory.prototype.storyCloseTiddler = function(targetTitle) {\n// TBD\n};\n\nStory.prototype.storyCloseAllTiddlers = function() {\n// TBD\n};\n\nStory.prototype.storyCloseOtherTiddlers = function(targetTitle) {\n// TBD\n};\n\nStory.prototype.storyEditTiddler = function(targetTitle) {\n// TBD\n};\n\nStory.prototype.storyDeleteTiddler = function(targetTitle) {\n// TBD\n};\n\nStory.prototype.storySaveTiddler = function(targetTitle) {\n// TBD\n};\n\nStory.prototype.storyCancelTiddler = function(targetTitle) {\n// TBD\n};\n\nStory.prototype.storyNewTiddler = function(targetTitle) {\n// TBD\n};\n\nexports.Story = Story;\n\n\n})();\n", "title": "$:/core/modules/story.js", "type": "application/javascript", "module-type": "global" }, "$:/core/modules/storyviews/classic.js": { "text": "/*\\\ntitle: $:/core/modules/storyviews/classic.js\ntype: application/javascript\nmodule-type: storyview\n\nViews the story as a linear sequence\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar easing = \"cubic-bezier(0.645, 0.045, 0.355, 1)\"; // From http://easings.net/#easeInOutCubic\n\nvar ClassicStoryView = function(listWidget) {\n\tthis.listWidget = listWidget;\n};\n\nClassicStoryView.prototype.navigateTo = function(historyInfo) {\n\tvar listElementIndex = this.listWidget.findListItem(0,historyInfo.title);\n\tif(listElementIndex === undefined) {\n\t\treturn;\n\t}\n\tvar listItemWidget = this.listWidget.children[listElementIndex],\n\t\ttargetElement = listItemWidget.findFirstDomNode();\n\t// Abandon if the list entry isn't a DOM element (it might be a text node)\n\tif(!(targetElement instanceof Element)) {\n\t\treturn;\n\t}\n\t// Scroll the node into view\n\tthis.listWidget.dispatchEvent({type: \"tm-scroll\", target: targetElement});\n};\n\nClassicStoryView.prototype.insert = function(widget) {\n\tvar targetElement = widget.findFirstDomNode(),\n\t\tduration = $tw.utils.getAnimationDuration();\n\t// Abandon if the list entry isn't a DOM element (it might be a text node)\n\tif(!(targetElement instanceof Element)) {\n\t\treturn;\n\t}\n\t// Get the current height of the tiddler\n\tvar computedStyle = window.getComputedStyle(targetElement),\n\t\tcurrMarginBottom = parseInt(computedStyle.marginBottom,10),\n\t\tcurrMarginTop = parseInt(computedStyle.marginTop,10),\n\t\tcurrHeight = targetElement.offsetHeight + currMarginTop;\n\t// Reset the margin once the transition is over\n\tsetTimeout(function() {\n\t\t$tw.utils.setStyle(targetElement,[\n\t\t\t{transition: \"none\"},\n\t\t\t{marginBottom: \"\"}\n\t\t]);\n\t},duration);\n\t// Set up the initial position of the element\n\t$tw.utils.setStyle(targetElement,[\n\t\t{transition: \"none\"},\n\t\t{marginBottom: (-currHeight) + \"px\"},\n\t\t{opacity: \"0.0\"}\n\t]);\n\t$tw.utils.forceLayout(targetElement);\n\t// Transition to the final position\n\t$tw.utils.setStyle(targetElement,[\n\t\t{transition: \"opacity \" + duration + \"ms \" + easing + \", \" +\n\t\t\t\t\t\"margin-bottom \" + duration + \"ms \" + easing},\n\t\t{marginBottom: currMarginBottom + \"px\"},\n\t\t{opacity: \"1.0\"}\n\t]);\n};\n\nClassicStoryView.prototype.remove = function(widget) {\n\tvar targetElement = widget.findFirstDomNode(),\n\t\tduration = $tw.utils.getAnimationDuration(),\n\t\tremoveElement = function() {\n\t\t\twidget.removeChildDomNodes();\n\t\t};\n\t// Abandon if the list entry isn't a DOM element (it might be a text node)\n\tif(!(targetElement instanceof Element)) {\n\t\tremoveElement();\n\t\treturn;\n\t}\n\t// Get the current height of the tiddler\n\tvar currWidth = targetElement.offsetWidth,\n\t\tcomputedStyle = window.getComputedStyle(targetElement),\n\t\tcurrMarginBottom = parseInt(computedStyle.marginBottom,10),\n\t\tcurrMarginTop = parseInt(computedStyle.marginTop,10),\n\t\tcurrHeight = targetElement.offsetHeight + currMarginTop;\n\t// Remove the dom nodes of the widget at the end of the transition\n\tsetTimeout(removeElement,duration);\n\t// Animate the closure\n\t$tw.utils.setStyle(targetElement,[\n\t\t{transition: \"none\"},\n\t\t{transform: \"translateX(0px)\"},\n\t\t{marginBottom: currMarginBottom + \"px\"},\n\t\t{opacity: \"1.0\"}\n\t]);\n\t$tw.utils.forceLayout(targetElement);\n\t$tw.utils.setStyle(targetElement,[\n\t\t{transition: $tw.utils.roundTripPropertyName(\"transform\") + \" \" + duration + \"ms \" + easing + \", \" +\n\t\t\t\t\t\"opacity \" + duration + \"ms \" + easing + \", \" +\n\t\t\t\t\t\"margin-bottom \" + duration + \"ms \" + easing},\n\t\t{transform: \"translateX(-\" + currWidth + \"px)\"},\n\t\t{marginBottom: (-currHeight) + \"px\"},\n\t\t{opacity: \"0.0\"}\n\t]);\n};\n\nexports.classic = ClassicStoryView;\n\n})();", "title": "$:/core/modules/storyviews/classic.js", "type": "application/javascript", "module-type": "storyview" }, "$:/core/modules/storyviews/pop.js": { "text": "/*\\\ntitle: $:/core/modules/storyviews/pop.js\ntype: application/javascript\nmodule-type: storyview\n\nAnimates list insertions and removals\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar PopStoryView = function(listWidget) {\n\tthis.listWidget = listWidget;\n};\n\nPopStoryView.prototype.navigateTo = function(historyInfo) {\n\tvar listElementIndex = this.listWidget.findListItem(0,historyInfo.title);\n\tif(listElementIndex === undefined) {\n\t\treturn;\n\t}\n\tvar listItemWidget = this.listWidget.children[listElementIndex],\n\t\ttargetElement = listItemWidget.findFirstDomNode();\n\t// Abandon if the list entry isn't a DOM element (it might be a text node)\n\tif(!(targetElement instanceof Element)) {\n\t\treturn;\n\t}\n\t// Scroll the node into view\n\tthis.listWidget.dispatchEvent({type: \"tm-scroll\", target: targetElement});\n};\n\nPopStoryView.prototype.insert = function(widget) {\n\tvar targetElement = widget.findFirstDomNode(),\n\t\tduration = $tw.utils.getAnimationDuration();\n\t// Abandon if the list entry isn't a DOM element (it might be a text node)\n\tif(!(targetElement instanceof Element)) {\n\t\treturn;\n\t}\n\t// Reset once the transition is over\n\tsetTimeout(function() {\n\t\t$tw.utils.setStyle(targetElement,[\n\t\t\t{transition: \"none\"},\n\t\t\t{transform: \"none\"}\n\t\t]);\n\t},duration);\n\t// Set up the initial position of the element\n\t$tw.utils.setStyle(targetElement,[\n\t\t{transition: \"none\"},\n\t\t{transform: \"scale(2)\"},\n\t\t{opacity: \"0.0\"}\n\t]);\n\t$tw.utils.forceLayout(targetElement);\n\t// Transition to the final position\n\t$tw.utils.setStyle(targetElement,[\n\t\t{transition: $tw.utils.roundTripPropertyName(\"transform\") + \" \" + duration + \"ms ease-in-out, \" +\n\t\t\t\t\t\"opacity \" + duration + \"ms ease-in-out\"},\n\t\t{transform: \"scale(1)\"},\n\t\t{opacity: \"1.0\"}\n\t]);\n};\n\nPopStoryView.prototype.remove = function(widget) {\n\tvar targetElement = widget.findFirstDomNode(),\n\t\tduration = $tw.utils.getAnimationDuration(),\n\t\tremoveElement = function() {\n\t\t\tif(targetElement.parentNode) {\n\t\t\t\twidget.removeChildDomNodes();\n\t\t\t}\n\t\t};\n\t// Abandon if the list entry isn't a DOM element (it might be a text node)\n\tif(!(targetElement instanceof Element)) {\n\t\tremoveElement();\n\t\treturn;\n\t}\n\t// Remove the element at the end of the transition\n\tsetTimeout(removeElement,duration);\n\t// Animate the closure\n\t$tw.utils.setStyle(targetElement,[\n\t\t{transition: \"none\"},\n\t\t{transform: \"scale(1)\"},\n\t\t{opacity: \"1.0\"}\n\t]);\n\t$tw.utils.forceLayout(targetElement);\n\t$tw.utils.setStyle(targetElement,[\n\t\t{transition: $tw.utils.roundTripPropertyName(\"transform\") + \" \" + duration + \"ms ease-in-out, \" +\n\t\t\t\t\t\"opacity \" + duration + \"ms ease-in-out\"},\n\t\t{transform: \"scale(0.1)\"},\n\t\t{opacity: \"0.0\"}\n\t]);\n};\n\nexports.pop = PopStoryView;\n\n})();\n", "title": "$:/core/modules/storyviews/pop.js", "type": "application/javascript", "module-type": "storyview" }, "$:/core/modules/storyviews/zoomin.js": { "text": "/*\\\ntitle: $:/core/modules/storyviews/zoomin.js\ntype: application/javascript\nmodule-type: storyview\n\nZooms between individual tiddlers\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar easing = \"cubic-bezier(0.645, 0.045, 0.355, 1)\"; // From http://easings.net/#easeInOutCubic\n\nvar ZoominListView = function(listWidget) {\n\tvar self = this;\n\tthis.listWidget = listWidget;\n\t// Get the index of the tiddler that is at the top of the history\n\tvar history = this.listWidget.wiki.getTiddlerDataCached(this.listWidget.historyTitle,[]),\n\t\ttargetTiddler;\n\tif(history.length > 0) {\n\t\ttargetTiddler = history[history.length-1].title;\n\t}\n\t// Make all the tiddlers position absolute, and hide all but the top (or first) one\n\t$tw.utils.each(this.listWidget.children,function(itemWidget,index) {\n\t\tvar domNode = itemWidget.findFirstDomNode();\n\t\t// Abandon if the list entry isn't a DOM element (it might be a text node)\n\t\tif(!(domNode instanceof Element)) {\n\t\t\treturn;\n\t\t}\n\t\tif((targetTiddler && targetTiddler !== itemWidget.parseTreeNode.itemTitle) || (!targetTiddler && index)) {\n\t\t\tdomNode.style.display = \"none\";\n\t\t} else {\n\t\t\tself.currentTiddlerDomNode = domNode;\n\t\t}\n\t\t$tw.utils.addClass(domNode,\"tc-storyview-zoomin-tiddler\");\n\t});\n};\n\nZoominListView.prototype.navigateTo = function(historyInfo) {\n\tvar duration = $tw.utils.getAnimationDuration(),\n\t\tlistElementIndex = this.listWidget.findListItem(0,historyInfo.title);\n\tif(listElementIndex === undefined) {\n\t\treturn;\n\t}\n\tvar listItemWidget = this.listWidget.children[listElementIndex],\n\t\ttargetElement = listItemWidget.findFirstDomNode();\n\t// Abandon if the list entry isn't a DOM element (it might be a text node)\n\tif(!(targetElement instanceof Element)) {\n\t\treturn;\n\t}\n\t// Make the new tiddler be position absolute and visible so that we can measure it\n\t$tw.utils.addClass(targetElement,\"tc-storyview-zoomin-tiddler\");\n\t$tw.utils.setStyle(targetElement,[\n\t\t{display: \"block\"},\n\t\t{transformOrigin: \"0 0\"},\n\t\t{transform: \"translateX(0px) translateY(0px) scale(1)\"},\n\t\t{transition: \"none\"},\n\t\t{opacity: \"0.0\"}\n\t]);\n\t// Get the position of the source node, or use the centre of the window as the source position\n\tvar sourceBounds = historyInfo.fromPageRect || {\n\t\t\tleft: window.innerWidth/2 - 2,\n\t\t\ttop: window.innerHeight/2 - 2,\n\t\t\twidth: window.innerWidth/8,\n\t\t\theight: window.innerHeight/8\n\t\t};\n\t// Try to find the title node in the target tiddler\n\tvar titleDomNode = findTitleDomNode(listItemWidget) || listItemWidget.findFirstDomNode(),\n\t\tzoomBounds = titleDomNode.getBoundingClientRect();\n\t// Compute the transform for the target tiddler to make the title lie over the source rectange\n\tvar targetBounds = targetElement.getBoundingClientRect(),\n\t\tscale = sourceBounds.width / zoomBounds.width,\n\t\tx = sourceBounds.left - targetBounds.left - (zoomBounds.left - targetBounds.left) * scale,\n\t\ty = sourceBounds.top - targetBounds.top - (zoomBounds.top - targetBounds.top) * scale;\n\t// Transform the target tiddler to its starting position\n\t$tw.utils.setStyle(targetElement,[\n\t\t{transform: \"translateX(\" + x + \"px) translateY(\" + y + \"px) scale(\" + scale + \")\"}\n\t]);\n\t// Force layout\n\t$tw.utils.forceLayout(targetElement);\n\t// Apply the ending transitions with a timeout to ensure that the previously applied transformations are applied first\n\tvar self = this,\n\t\tprevCurrentTiddler = this.currentTiddlerDomNode;\n\tthis.currentTiddlerDomNode = targetElement;\n\t// Transform the target tiddler to its natural size\n\t$tw.utils.setStyle(targetElement,[\n\t\t{transition: $tw.utils.roundTripPropertyName(\"transform\") + \" \" + duration + \"ms \" + easing + \", opacity \" + duration + \"ms \" + easing},\n\t\t{opacity: \"1.0\"},\n\t\t{transform: \"translateX(0px) translateY(0px) scale(1)\"},\n\t\t{zIndex: \"500\"},\n\t]);\n\t// Transform the previous tiddler out of the way and then hide it\n\tif(prevCurrentTiddler && prevCurrentTiddler !== targetElement) {\n\t\tscale = zoomBounds.width / sourceBounds.width;\n\t\tx = zoomBounds.left - targetBounds.left - (sourceBounds.left - targetBounds.left) * scale;\n\t\ty = zoomBounds.top - targetBounds.top - (sourceBounds.top - targetBounds.top) * scale;\n\t\t$tw.utils.setStyle(prevCurrentTiddler,[\n\t\t\t{transition: $tw.utils.roundTripPropertyName(\"transform\") + \" \" + duration + \"ms \" + easing + \", opacity \" + duration + \"ms \" + easing},\n\t\t\t{opacity: \"0.0\"},\n\t\t\t{transformOrigin: \"0 0\"},\n\t\t\t{transform: \"translateX(\" + x + \"px) translateY(\" + y + \"px) scale(\" + scale + \")\"},\n\t\t\t{zIndex: \"0\"}\n\t\t]);\n\t\t// Hide the tiddler when the transition has finished\n\t\tsetTimeout(function() {\n\t\t\tif(self.currentTiddlerDomNode !== prevCurrentTiddler) {\n\t\t\t\tprevCurrentTiddler.style.display = \"none\";\n\t\t\t}\n\t\t},duration);\n\t}\n\t// Scroll the target into view\n//\t$tw.pageScroller.scrollIntoView(targetElement);\n};\n\n/*\nFind the first child DOM node of a widget that has the class \"tc-title\"\n*/\nfunction findTitleDomNode(widget,targetClass) {\n\ttargetClass = targetClass || \"tc-title\";\n\tvar domNode = widget.findFirstDomNode();\n\tif(domNode && domNode.querySelector) {\n\t\treturn domNode.querySelector(\".\" + targetClass);\n\t}\n\treturn null;\n}\n\nZoominListView.prototype.insert = function(widget) {\n\tvar targetElement = widget.findFirstDomNode();\n\t// Abandon if the list entry isn't a DOM element (it might be a text node)\n\tif(!(targetElement instanceof Element)) {\n\t\treturn;\n\t}\n\t// Make the newly inserted node position absolute and hidden\n\t$tw.utils.addClass(targetElement,\"tc-storyview-zoomin-tiddler\");\n\t$tw.utils.setStyle(targetElement,[\n\t\t{display: \"none\"}\n\t]);\n};\n\nZoominListView.prototype.remove = function(widget) {\n\tvar targetElement = widget.findFirstDomNode(),\n\t\tduration = $tw.utils.getAnimationDuration(),\n\t\tremoveElement = function() {\n\t\t\twidget.removeChildDomNodes();\n\t\t};\n\t// Abandon if the list entry isn't a DOM element (it might be a text node)\n\tif(!(targetElement instanceof Element)) {\n\t\tremoveElement();\n\t\treturn;\n\t}\n\t// Abandon if hidden\n\tif(targetElement.style.display != \"block\" ) {\n\t\tremoveElement();\n\t\treturn;\n\t}\n\t// Set up the tiddler that is being closed\n\t$tw.utils.addClass(targetElement,\"tc-storyview-zoomin-tiddler\");\n\t$tw.utils.setStyle(targetElement,[\n\t\t{display: \"block\"},\n\t\t{transformOrigin: \"50% 50%\"},\n\t\t{transform: \"translateX(0px) translateY(0px) scale(1)\"},\n\t\t{transition: \"none\"},\n\t\t{zIndex: \"0\"}\n\t]);\n\t// We'll move back to the previous or next element in the story\n\tvar toWidget = widget.previousSibling();\n\tif(!toWidget) {\n\t\ttoWidget = widget.nextSibling();\n\t}\n\tvar toWidgetDomNode = toWidget && toWidget.findFirstDomNode();\n\t// Set up the tiddler we're moving back in\n\tif(toWidgetDomNode) {\n\t\t$tw.utils.addClass(toWidgetDomNode,\"tc-storyview-zoomin-tiddler\");\n\t\t$tw.utils.setStyle(toWidgetDomNode,[\n\t\t\t{display: \"block\"},\n\t\t\t{transformOrigin: \"50% 50%\"},\n\t\t\t{transform: \"translateX(0px) translateY(0px) scale(10)\"},\n\t\t\t{transition: $tw.utils.roundTripPropertyName(\"transform\") + \" \" + duration + \"ms \" + easing + \", opacity \" + duration + \"ms \" + easing},\n\t\t\t{opacity: \"0\"},\n\t\t\t{zIndex: \"500\"}\n\t\t]);\n\t\tthis.currentTiddlerDomNode = toWidgetDomNode;\n\t}\n\t// Animate them both\n\t// Force layout\n\t$tw.utils.forceLayout(this.listWidget.parentDomNode);\n\t// First, the tiddler we're closing\n\t$tw.utils.setStyle(targetElement,[\n\t\t{transformOrigin: \"50% 50%\"},\n\t\t{transform: \"translateX(0px) translateY(0px) scale(0.1)\"},\n\t\t{transition: $tw.utils.roundTripPropertyName(\"transform\") + \" \" + duration + \"ms \" + easing + \", opacity \" + duration + \"ms \" + easing},\n\t\t{opacity: \"0\"},\n\t\t{zIndex: \"0\"}\n\t]);\n\tsetTimeout(removeElement,duration);\n\t// Now the tiddler we're going back to\n\tif(toWidgetDomNode) {\n\t\t$tw.utils.setStyle(toWidgetDomNode,[\n\t\t\t{transform: \"translateX(0px) translateY(0px) scale(1)\"},\n\t\t\t{opacity: \"1\"}\n\t\t]);\n\t}\n\treturn true; // Indicate that we'll delete the DOM node\n};\n\nexports.zoomin = ZoominListView;\n\n})();\n", "title": "$:/core/modules/storyviews/zoomin.js", "type": "application/javascript", "module-type": "storyview" }, "$:/core/modules/syncer.js": { "text": "/*\\\ntitle: $:/core/modules/syncer.js\ntype: application/javascript\nmodule-type: global\n\nThe syncer tracks changes to the store. If a syncadaptor is used then individual tiddlers are synchronised through it. If there is no syncadaptor then the entire wiki is saved via saver modules.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nInstantiate the syncer with the following options:\nsyncadaptor: reference to syncadaptor to be used\nwiki: wiki to be synced\n*/\nfunction Syncer(options) {\n\tvar self = this;\n\tthis.wiki = options.wiki;\n\tthis.syncadaptor = options.syncadaptor;\n\t// Make a logger\n\tthis.logger = new $tw.utils.Logger(\"syncer\" + ($tw.browser ? \"-browser\" : \"\") + ($tw.node ? \"-server\" : \"\"));\n\t// Compile the dirty tiddler filter\n\tthis.filterFn = this.wiki.compileFilter(this.wiki.getTiddlerText(this.titleSyncFilter));\n\t// Record information for known tiddlers\n\tthis.readTiddlerInfo();\n\t// Tasks are {type: \"load\"/\"save\"/\"delete\", title:, queueTime:, lastModificationTime:}\n\tthis.taskQueue = {}; // Hashmap of tasks yet to be performed\n\tthis.taskInProgress = {}; // Hash of tasks in progress\n\tthis.taskTimerId = null; // Timer for task dispatch\n\tthis.pollTimerId = null; // Timer for polling server\n\t// Listen out for changes to tiddlers\n\tthis.wiki.addEventListener(\"change\",function(changes) {\n\t\tself.syncToServer(changes);\n\t});\n\t// Browser event handlers\n\tif($tw.browser) {\n\t\t// Set up our beforeunload handler\n\t\t$tw.addUnloadTask(function(event) {\n\t\t\tvar confirmationMessage;\n\t\t\tif(self.isDirty()) {\n\t\t\t\tconfirmationMessage = $tw.language.getString(\"UnsavedChangesWarning\");\n\t\t\t\tevent.returnValue = confirmationMessage; // Gecko\n\t\t\t}\n\t\t\treturn confirmationMessage;\n\t\t});\n\t\t// Listen out for login/logout/refresh events in the browser\n\t\t$tw.rootWidget.addEventListener(\"tm-login\",function() {\n\t\t\tself.handleLoginEvent();\n\t\t});\n\t\t$tw.rootWidget.addEventListener(\"tm-logout\",function() {\n\t\t\tself.handleLogoutEvent();\n\t\t});\n\t\t$tw.rootWidget.addEventListener(\"tm-server-refresh\",function() {\n\t\t\tself.handleRefreshEvent();\n\t\t});\n\t}\n\t// Listen out for lazyLoad events\n\tthis.wiki.addEventListener(\"lazyLoad\",function(title) {\n\t\tself.handleLazyLoadEvent(title);\n\t});\n\t// Get the login status\n\tthis.getStatus(function(err,isLoggedIn) {\n\t\t// Do a sync from the server\n\t\tself.syncFromServer();\n\t});\n}\n\n/*\nConstants\n*/\nSyncer.prototype.titleIsLoggedIn = \"$:/status/IsLoggedIn\";\nSyncer.prototype.titleUserName = \"$:/status/UserName\";\nSyncer.prototype.titleSyncFilter = \"$:/config/SyncFilter\";\nSyncer.prototype.titleSavedNotification = \"$:/language/Notifications/Save/Done\";\nSyncer.prototype.taskTimerInterval = 1 * 1000; // Interval for sync timer\nSyncer.prototype.throttleInterval = 1 * 1000; // Defer saving tiddlers if they've changed in the last 1s...\nSyncer.prototype.fallbackInterval = 10 * 1000; // Unless the task is older than 10s\nSyncer.prototype.pollTimerInterval = 60 * 1000; // Interval for polling for changes from the adaptor\n\n\n/*\nRead (or re-read) the latest tiddler info from the store\n*/\nSyncer.prototype.readTiddlerInfo = function() {\n\t// Hashmap by title of {revision:,changeCount:,adaptorInfo:}\n\tthis.tiddlerInfo = {};\n\t// Record information for known tiddlers\n\tvar self = this,\n\t\ttiddlers = this.filterFn.call(this.wiki);\n\t$tw.utils.each(tiddlers,function(title) {\n\t\tvar tiddler = self.wiki.getTiddler(title);\n\t\tself.tiddlerInfo[title] = {\n\t\t\trevision: tiddler.fields.revision,\n\t\t\tadaptorInfo: self.syncadaptor && self.syncadaptor.getTiddlerInfo(tiddler),\n\t\t\tchangeCount: self.wiki.getChangeCount(title),\n\t\t\thasBeenLazyLoaded: false\n\t\t};\n\t});\n};\n\n/*\nCreate an tiddlerInfo structure if it doesn't already exist\n*/\nSyncer.prototype.createTiddlerInfo = function(title) {\n\tif(!$tw.utils.hop(this.tiddlerInfo,title)) {\n\t\tthis.tiddlerInfo[title] = {\n\t\t\trevision: null,\n\t\t\tadaptorInfo: {},\n\t\t\tchangeCount: -1,\n\t\t\thasBeenLazyLoaded: false\n\t\t};\n\t}\n};\n\n/*\nChecks whether the wiki is dirty (ie the window shouldn't be closed)\n*/\nSyncer.prototype.isDirty = function() {\n\treturn (this.numTasksInQueue() > 0) || (this.numTasksInProgress() > 0);\n};\n\n/*\nUpdate the document body with the class \"tc-dirty\" if the wiki has unsaved/unsynced changes\n*/\nSyncer.prototype.updateDirtyStatus = function() {\n\tif($tw.browser) {\n\t\t$tw.utils.toggleClass(document.body,\"tc-dirty\",this.isDirty());\n\t}\n};\n\n/*\nSave an incoming tiddler in the store, and updates the associated tiddlerInfo\n*/\nSyncer.prototype.storeTiddler = function(tiddlerFields) {\n\t// Save the tiddler\n\tvar tiddler = new $tw.Tiddler(this.wiki.getTiddler(tiddlerFields.title),tiddlerFields);\n\tthis.wiki.addTiddler(tiddler);\n\t// Save the tiddler revision and changeCount details\n\tthis.tiddlerInfo[tiddlerFields.title] = {\n\t\trevision: tiddlerFields.revision,\n\t\tadaptorInfo: this.syncadaptor.getTiddlerInfo(tiddler),\n\t\tchangeCount: this.wiki.getChangeCount(tiddlerFields.title),\n\t\thasBeenLazyLoaded: true\n\t};\n};\n\nSyncer.prototype.getStatus = function(callback) {\n\tvar self = this;\n\t// Check if the adaptor supports getStatus()\n\tif(this.syncadaptor && this.syncadaptor.getStatus) {\n\t\t// Mark us as not logged in\n\t\tthis.wiki.addTiddler({title: this.titleIsLoggedIn,text: \"no\"});\n\t\t// Get login status\n\t\tthis.syncadaptor.getStatus(function(err,isLoggedIn,username) {\n\t\t\tif(err) {\n\t\t\t\tself.logger.alert(err);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\t// Set the various status tiddlers\n\t\t\tself.wiki.addTiddler({title: self.titleIsLoggedIn,text: isLoggedIn ? \"yes\" : \"no\"});\n\t\t\tif(isLoggedIn) {\n\t\t\t\tself.wiki.addTiddler({title: self.titleUserName,text: username || \"\"});\n\t\t\t} else {\n\t\t\t\tself.wiki.deleteTiddler(self.titleUserName);\n\t\t\t}\n\t\t\t// Invoke the callback\n\t\t\tif(callback) {\n\t\t\t\tcallback(err,isLoggedIn,username);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tcallback(null,true,\"UNAUTHENTICATED\");\n\t}\n};\n\n/*\nSynchronise from the server by reading the skinny tiddler list and queuing up loads for any tiddlers that we don't already have up to date\n*/\nSyncer.prototype.syncFromServer = function() {\n\tif(this.syncadaptor && this.syncadaptor.getSkinnyTiddlers) {\n\t\tthis.logger.log(\"Retrieving skinny tiddler list\");\n\t\tvar self = this;\n\t\tif(this.pollTimerId) {\n\t\t\tclearTimeout(this.pollTimerId);\n\t\t\tthis.pollTimerId = null;\n\t\t}\n\t\tthis.syncadaptor.getSkinnyTiddlers(function(err,tiddlers) {\n\t\t\t// Trigger the next sync\n\t\t\tself.pollTimerId = setTimeout(function() {\n\t\t\t\tself.pollTimerId = null;\n\t\t\t\tself.syncFromServer.call(self);\n\t\t\t},self.pollTimerInterval);\n\t\t\t// Check for errors\n\t\t\tif(err) {\n\t\t\t\tself.logger.alert($tw.language.getString(\"Error/RetrievingSkinny\") + \":\",err);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\t// Process each incoming tiddler\n\t\t\tfor(var t=0; t<tiddlers.length; t++) {\n\t\t\t\t// Get the incoming tiddler fields, and the existing tiddler\n\t\t\t\tvar tiddlerFields = tiddlers[t],\n\t\t\t\t\tincomingRevision = tiddlerFields.revision + \"\",\n\t\t\t\t\ttiddler = self.wiki.getTiddler(tiddlerFields.title),\n\t\t\t\t\ttiddlerInfo = self.tiddlerInfo[tiddlerFields.title],\n\t\t\t\t\tcurrRevision = tiddlerInfo ? tiddlerInfo.revision : null;\n\t\t\t\t// Ignore the incoming tiddler if it's the same as the revision we've already got\n\t\t\t\tif(currRevision !== incomingRevision) {\n\t\t\t\t\t// Do a full load if we've already got a fat version of the tiddler\n\t\t\t\t\tif(tiddler && tiddler.fields.text !== undefined) {\n\t\t\t\t\t\t// Do a full load of this tiddler\n\t\t\t\t\t\tself.enqueueSyncTask({\n\t\t\t\t\t\t\ttype: \"load\",\n\t\t\t\t\t\t\ttitle: tiddlerFields.title\n\t\t\t\t\t\t});\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// Load the skinny version of the tiddler\n\t\t\t\t\t\tself.storeTiddler(tiddlerFields);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n};\n\n/*\nSynchronise a set of changes to the server\n*/\nSyncer.prototype.syncToServer = function(changes) {\n\tvar self = this,\n\t\tnow = Date.now(),\n\t\tfilteredChanges = this.filterFn.call(this.wiki,function(callback) {\n\t\t\t$tw.utils.each(changes,function(change,title) {\n\t\t\t\tvar tiddler = self.wiki.getTiddler(title);\n\t\t\t\tcallback(tiddler,title);\n\t\t\t});\n\t\t});\n\t$tw.utils.each(changes,function(change,title,object) {\n\t\t// Process the change if it is a deletion of a tiddler we're already syncing, or is on the filtered change list\n\t\tif((change.deleted && $tw.utils.hop(self.tiddlerInfo,title)) || filteredChanges.indexOf(title) !== -1) {\n\t\t\t// Queue a task to sync this tiddler\n\t\t\tself.enqueueSyncTask({\n\t\t\t\ttype: change.deleted ? \"delete\" : \"save\",\n\t\t\t\ttitle: title\n\t\t\t});\n\t\t}\n\t});\n};\n\n/*\nLazily load a skinny tiddler if we can\n*/\nSyncer.prototype.handleLazyLoadEvent = function(title) {\n\t// Don't lazy load the same tiddler twice\n\tvar info = this.tiddlerInfo[title];\n\tif(!info || !info.hasBeenLazyLoaded) {\n\t\tthis.createTiddlerInfo(title);\n\t\tthis.tiddlerInfo[title].hasBeenLazyLoaded = true;\n\t\t// Queue up a sync task to load this tiddler\n\t\tthis.enqueueSyncTask({\n\t\t\ttype: \"load\",\n\t\t\ttitle: title\n\t\t});\t\t\n\t}\n};\n\n/*\nDispay a password prompt and allow the user to login\n*/\nSyncer.prototype.handleLoginEvent = function() {\n\tvar self = this;\n\tthis.getStatus(function(err,isLoggedIn,username) {\n\t\tif(!isLoggedIn) {\n\t\t\t$tw.passwordPrompt.createPrompt({\n\t\t\t\tserviceName: $tw.language.getString(\"LoginToTiddlySpace\"),\n\t\t\t\tcallback: function(data) {\n\t\t\t\t\tself.login(data.username,data.password,function(err,isLoggedIn) {\n\t\t\t\t\t\tself.syncFromServer();\n\t\t\t\t\t});\n\t\t\t\t\treturn true; // Get rid of the password prompt\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t});\n};\n\n/*\nAttempt to login to TiddlyWeb.\n\tusername: username\n\tpassword: password\n\tcallback: invoked with arguments (err,isLoggedIn)\n*/\nSyncer.prototype.login = function(username,password,callback) {\n\tthis.logger.log(\"Attempting to login as\",username);\n\tvar self = this;\n\tif(this.syncadaptor.login) {\n\t\tthis.syncadaptor.login(username,password,function(err) {\n\t\t\tif(err) {\n\t\t\t\treturn callback(err);\n\t\t\t}\n\t\t\tself.getStatus(function(err,isLoggedIn,username) {\n\t\t\t\tif(callback) {\n\t\t\t\t\tcallback(null,isLoggedIn);\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\t} else {\n\t\tcallback(null,true);\n\t}\n};\n\n/*\nAttempt to log out of TiddlyWeb\n*/\nSyncer.prototype.handleLogoutEvent = function() {\n\tthis.logger.log(\"Attempting to logout\");\n\tvar self = this;\n\tif(this.syncadaptor.logout) {\n\t\tthis.syncadaptor.logout(function(err) {\n\t\t\tif(err) {\n\t\t\t\tself.logger.alert(err);\n\t\t\t} else {\n\t\t\t\tself.getStatus();\n\t\t\t}\n\t\t});\n\t}\n};\n\n/*\nImmediately refresh from the server\n*/\nSyncer.prototype.handleRefreshEvent = function() {\n\tthis.syncFromServer();\n};\n\n/*\nQueue up a sync task. If there is already a pending task for the tiddler, just update the last modification time\n*/\nSyncer.prototype.enqueueSyncTask = function(task) {\n\tvar self = this,\n\t\tnow = Date.now();\n\t// Set the timestamps on this task\n\ttask.queueTime = now;\n\ttask.lastModificationTime = now;\n\t// Fill in some tiddlerInfo if the tiddler is one we haven't seen before\n\tthis.createTiddlerInfo(task.title);\n\t// Bail if this is a save and the tiddler is already at the changeCount that the server has\n\tif(task.type === \"save\" && this.wiki.getChangeCount(task.title) <= this.tiddlerInfo[task.title].changeCount) {\n\t\treturn;\n\t}\n\t// Check if this tiddler is already in the queue\n\tif($tw.utils.hop(this.taskQueue,task.title)) {\n\t\t// this.logger.log(\"Re-queueing up sync task with type:\",task.type,\"title:\",task.title);\n\t\tvar existingTask = this.taskQueue[task.title];\n\t\t// If so, just update the last modification time\n\t\texistingTask.lastModificationTime = task.lastModificationTime;\n\t\t// If the new task is a save then we upgrade the existing task to a save. Thus a pending load is turned into a save if the tiddler changes locally in the meantime. But a pending save is not modified to become a load\n\t\tif(task.type === \"save\" || task.type === \"delete\") {\n\t\t\texistingTask.type = task.type;\n\t\t}\n\t} else {\n\t\t// this.logger.log(\"Queuing up sync task with type:\",task.type,\"title:\",task.title);\n\t\t// If it is not in the queue, insert it\n\t\tthis.taskQueue[task.title] = task;\n\t\tthis.updateDirtyStatus();\n\t}\n\t// Process the queue\n\t$tw.utils.nextTick(function() {self.processTaskQueue.call(self);});\n};\n\n/*\nReturn the number of tasks in progress\n*/\nSyncer.prototype.numTasksInProgress = function() {\n\treturn $tw.utils.count(this.taskInProgress);\n};\n\n/*\nReturn the number of tasks in the queue\n*/\nSyncer.prototype.numTasksInQueue = function() {\n\treturn $tw.utils.count(this.taskQueue);\n};\n\n/*\nTrigger a timeout if one isn't already outstanding\n*/\nSyncer.prototype.triggerTimeout = function() {\n\tvar self = this;\n\tif(!this.taskTimerId) {\n\t\tthis.taskTimerId = setTimeout(function() {\n\t\t\tself.taskTimerId = null;\n\t\t\tself.processTaskQueue.call(self);\n\t\t},self.taskTimerInterval);\n\t}\n};\n\n/*\nProcess the task queue, performing the next task if appropriate\n*/\nSyncer.prototype.processTaskQueue = function() {\n\tvar self = this;\n\t// Only process a task if the sync adaptor is fully initialised and we're not already performing a task. If we are already performing a task then we'll dispatch the next one when it completes\n\tif(this.syncadaptor.isReady() && this.numTasksInProgress() === 0) {\n\t\t// Choose the next task to perform\n\t\tvar task = this.chooseNextTask();\n\t\t// Perform the task if we had one\n\t\tif(task) {\n\t\t\t// Remove the task from the queue and add it to the in progress list\n\t\t\tdelete this.taskQueue[task.title];\n\t\t\tthis.taskInProgress[task.title] = task;\n\t\t\tthis.updateDirtyStatus();\n\t\t\t// Dispatch the task\n\t\t\tthis.dispatchTask(task,function(err) {\n\t\t\t\tif(err) {\n\t\t\t\t\tself.logger.alert(\"Sync error while processing '\" + task.title + \"':\\n\" + err);\n\t\t\t\t}\n\t\t\t\t// Mark that this task is no longer in progress\n\t\t\t\tdelete self.taskInProgress[task.title];\n\t\t\t\tself.updateDirtyStatus();\n\t\t\t\t// Process the next task\n\t\t\t\tself.processTaskQueue.call(self);\n\t\t\t});\n\t\t} else {\n\t\t\t// Make sure we've set a time if there wasn't a task to perform, but we've still got tasks in the queue\n\t\t\tif(this.numTasksInQueue() > 0) {\n\t\t\t\tthis.triggerTimeout();\n\t\t\t}\n\t\t}\n\t}\n};\n\n/*\nChoose the next applicable task\n*/\nSyncer.prototype.chooseNextTask = function() {\n\tvar self = this,\n\t\tcandidateTask = null,\n\t\tnow = Date.now();\n\t// Select the best candidate task\n\t$tw.utils.each(this.taskQueue,function(task,title) {\n\t\t// Exclude the task if there's one of the same name in progress\n\t\tif($tw.utils.hop(self.taskInProgress,title)) {\n\t\t\treturn;\n\t\t}\n\t\t// Exclude the task if it is a save and the tiddler has been modified recently, but not hit the fallback time\n\t\tif(task.type === \"save\" && (now - task.lastModificationTime) < self.throttleInterval &&\n\t\t\t(now - task.queueTime) < self.fallbackInterval) {\n\t\t\treturn;\n\t\t}\n\t\t// Exclude the task if it is newer than the current best candidate\n\t\tif(candidateTask && candidateTask.queueTime < task.queueTime) {\n\t\t\treturn;\n\t\t}\n\t\t// Now this is our best candidate\n\t\tcandidateTask = task;\n\t});\n\treturn candidateTask;\n};\n\n/*\nDispatch a task and invoke the callback\n*/\nSyncer.prototype.dispatchTask = function(task,callback) {\n\tvar self = this;\n\tif(task.type === \"save\") {\n\t\tvar changeCount = this.wiki.getChangeCount(task.title),\n\t\t\ttiddler = this.wiki.getTiddler(task.title);\n\t\tthis.logger.log(\"Dispatching 'save' task:\",task.title);\n\t\tif(tiddler) {\n\t\t\tthis.syncadaptor.saveTiddler(tiddler,function(err,adaptorInfo,revision) {\n\t\t\t\tif(err) {\n\t\t\t\t\treturn callback(err);\n\t\t\t\t}\n\t\t\t\t// Adjust the info stored about this tiddler\n\t\t\t\tself.tiddlerInfo[task.title] = {\n\t\t\t\t\tchangeCount: changeCount,\n\t\t\t\t\tadaptorInfo: adaptorInfo,\n\t\t\t\t\trevision: revision\n\t\t\t\t};\n\t\t\t\t// Invoke the callback\n\t\t\t\tcallback(null);\n\t\t\t},{\n\t\t\t\ttiddlerInfo: self.tiddlerInfo[task.title]\n\t\t\t});\n\t\t} else {\n\t\t\tthis.logger.log(\" Not Dispatching 'save' task:\",task.title,\"tiddler does not exist\");\n\t\t\treturn callback(null);\n\t\t}\n\t} else if(task.type === \"load\") {\n\t\t// Load the tiddler\n\t\tthis.logger.log(\"Dispatching 'load' task:\",task.title);\n\t\tthis.syncadaptor.loadTiddler(task.title,function(err,tiddlerFields) {\n\t\t\tif(err) {\n\t\t\t\treturn callback(err);\n\t\t\t}\n\t\t\t// Store the tiddler\n\t\t\tif(tiddlerFields) {\n\t\t\t\tself.storeTiddler(tiddlerFields);\n\t\t\t}\n\t\t\t// Invoke the callback\n\t\t\tcallback(null);\n\t\t});\n\t} else if(task.type === \"delete\") {\n\t\t// Delete the tiddler\n\t\tthis.logger.log(\"Dispatching 'delete' task:\",task.title);\n\t\tthis.syncadaptor.deleteTiddler(task.title,function(err) {\n\t\t\tif(err) {\n\t\t\t\treturn callback(err);\n\t\t\t}\n\t\t\tdelete self.tiddlerInfo[task.title];\n\t\t\t// Invoke the callback\n\t\t\tcallback(null);\n\t\t},{\n\t\t\ttiddlerInfo: self.tiddlerInfo[task.title]\n\t\t});\n\t}\n};\n\nexports.Syncer = Syncer;\n\n})();\n", "title": "$:/core/modules/syncer.js", "type": "application/javascript", "module-type": "global" }, "$:/core/modules/tiddler.js": { "text": "/*\\\ntitle: $:/core/modules/tiddler.js\ntype: application/javascript\nmodule-type: tiddlermethod\n\nExtension methods for the $tw.Tiddler object (constructor and methods required at boot time are in boot/boot.js)\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.hasTag = function(tag) {\n\treturn this.fields.tags && this.fields.tags.indexOf(tag) !== -1;\n};\n\nexports.isPlugin = function() {\n\treturn this.fields.type === \"application/json\" && this.hasField(\"plugin-type\");\n};\n\nexports.isDraft = function() {\n\treturn this.hasField(\"draft.of\");\n};\n\nexports.getFieldString = function(field) {\n\tvar value = this.fields[field];\n\t// Check for a missing field\n\tif(value === undefined || value === null) {\n\t\treturn \"\";\n\t}\n\t// Parse the field with the associated module (if any)\n\tvar fieldModule = $tw.Tiddler.fieldModules[field];\n\tif(fieldModule && fieldModule.stringify) {\n\t\treturn fieldModule.stringify.call(this,value);\n\t} else {\n\t\treturn value.toString();\n\t}\n};\n\n/*\nGet all the fields as a name:value block. Options:\n\texclude: an array of field names to exclude\n*/\nexports.getFieldStringBlock = function(options) {\n\toptions = options || {};\n\tvar exclude = options.exclude || [];\n\tvar fields = [];\n\tfor(var field in this.fields) {\n\t\tif($tw.utils.hop(this.fields,field)) {\n\t\t\tif(exclude.indexOf(field) === -1) {\n\t\t\t\tfields.push(field + \": \" + this.getFieldString(field));\n\t\t\t}\n\t\t}\n\t}\n\treturn fields.join(\"\\n\");\n};\n\n/*\nCompare two tiddlers for equality\ntiddler: the tiddler to compare\nexcludeFields: array of field names to exclude from the comparison\n*/\nexports.isEqual = function(tiddler,excludeFields) {\n\tif(!(tiddler instanceof $tw.Tiddler)) {\n\t\treturn false;\n\t}\n\texcludeFields = excludeFields || [];\n\tvar self = this,\n\t\tdifferences = []; // Fields that have differences\n\t// Add to the differences array\n\tfunction addDifference(fieldName) {\n\t\t// Check for this field being excluded\n\t\tif(excludeFields.indexOf(fieldName) === -1) {\n\t\t\t// Save the field as a difference\n\t\t\t$tw.utils.pushTop(differences,fieldName);\n\t\t}\n\t}\n\t// Returns true if the two values of this field are equal\n\tfunction isFieldValueEqual(fieldName) {\n\t\tvar valueA = self.fields[fieldName],\n\t\t\tvalueB = tiddler.fields[fieldName];\n\t\t// Check for identical string values\n\t\tif(typeof(valueA) === \"string\" && typeof(valueB) === \"string\" && valueA === valueB) {\n\t\t\treturn true;\n\t\t}\n\t\t// Check for identical array values\n\t\tif($tw.utils.isArray(valueA) && $tw.utils.isArray(valueB) && $tw.utils.isArrayEqual(valueA,valueB)) {\n\t\t\treturn true;\n\t\t}\n\t\t// Otherwise the fields must be different\n\t\treturn false;\n\t}\n\t// Compare our fields\n\tfor(var fieldName in this.fields) {\n\t\tif(!isFieldValueEqual(fieldName)) {\n\t\t\taddDifference(fieldName);\n\t\t}\n\t}\n\t// There's a difference for every field in the other tiddler that we don't have\n\tfor(fieldName in tiddler.fields) {\n\t\tif(!(fieldName in this.fields)) {\n\t\t\taddDifference(fieldName);\n\t\t}\n\t}\n\t// Return whether there were any differences\n\treturn differences.length === 0;\n};\n\n})();\n", "title": "$:/core/modules/tiddler.js", "type": "application/javascript", "module-type": "tiddlermethod" }, "$:/core/modules/upgraders/plugins.js": { "text": "/*\\\ntitle: $:/core/modules/upgraders/plugins.js\ntype: application/javascript\nmodule-type: upgrader\n\nUpgrader module that checks that plugins are newer than any already installed version\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar UPGRADE_LIBRARY_TITLE = \"$:/UpgradeLibrary\";\n\nvar BLOCKED_PLUGINS = {\n\t\"$:/themes/tiddlywiki/stickytitles\": {\n\t\tversions: [\"*\"]\n\t},\n\t\"$:/plugins/tiddlywiki/fullscreen\": {\n\t\tversions: [\"*\"]\n\t}\n};\n\nexports.upgrade = function(wiki,titles,tiddlers) {\n\tvar self = this,\n\t\tmessages = {},\n\t\tupgradeLibrary,\n\t\tgetLibraryTiddler = function(title) {\n\t\t\tif(!upgradeLibrary) {\n\t\t\t\tupgradeLibrary = wiki.getTiddlerData(UPGRADE_LIBRARY_TITLE,{});\n\t\t\t\tupgradeLibrary.tiddlers = upgradeLibrary.tiddlers || {};\n\t\t\t}\n\t\t\treturn upgradeLibrary.tiddlers[title];\n\t\t};\n\n\t// Go through all the incoming tiddlers\n\t$tw.utils.each(titles,function(title) {\n\t\tvar incomingTiddler = tiddlers[title];\n\t\t// Check if we're dealing with a plugin\n\t\tif(incomingTiddler && incomingTiddler[\"plugin-type\"] && incomingTiddler.version) {\n\t\t\t// Upgrade the incoming plugin if it is in the upgrade library\n\t\t\tvar libraryTiddler = getLibraryTiddler(title);\n\t\t\tif(libraryTiddler && libraryTiddler[\"plugin-type\"] && libraryTiddler.version) {\n\t\t\t\ttiddlers[title] = libraryTiddler;\n\t\t\t\tmessages[title] = $tw.language.getString(\"Import/Upgrader/Plugins/Upgraded\",{variables: {incoming: incomingTiddler.version, upgraded: libraryTiddler.version}});\n\t\t\t\treturn;\n\t\t\t}\n\t\t\t// Suppress the incoming plugin if it is older than the currently installed one\n\t\t\tvar existingTiddler = wiki.getTiddler(title);\n\t\t\tif(existingTiddler && existingTiddler.hasField(\"plugin-type\") && existingTiddler.hasField(\"version\")) {\n\t\t\t\t// Reject the incoming plugin by blanking all its fields\n\t\t\t\tif($tw.utils.checkVersions(existingTiddler.fields.version,incomingTiddler.version)) {\n\t\t\t\t\ttiddlers[title] = Object.create(null);\n\t\t\t\t\tmessages[title] = $tw.language.getString(\"Import/Upgrader/Plugins/Suppressed/Version\",{variables: {incoming: incomingTiddler.version, existing: existingTiddler.fields.version}});\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tif(incomingTiddler && incomingTiddler[\"plugin-type\"]) {\n\t\t\t// Check whether the plugin is on the blocked list\n\t\t\tvar blockInfo = BLOCKED_PLUGINS[title];\n\t\t\tif(blockInfo) {\n\t\t\t\tif(blockInfo.versions.indexOf(\"*\") !== -1 || (incomingTiddler.version && blockInfo.versions.indexOf(incomingTiddler.version) !== -1)) {\n\t\t\t\t\ttiddlers[title] = Object.create(null);\n\t\t\t\t\tmessages[title] = $tw.language.getString(\"Import/Upgrader/Plugins/Suppressed/Incompatible\");\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t});\n\treturn messages;\n};\n\n})();\n", "title": "$:/core/modules/upgraders/plugins.js", "type": "application/javascript", "module-type": "upgrader" }, "$:/core/modules/upgraders/system.js": { "text": "/*\\\ntitle: $:/core/modules/upgraders/system.js\ntype: application/javascript\nmodule-type: upgrader\n\nUpgrader module that suppresses certain system tiddlers that shouldn't be imported\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar DONT_IMPORT_LIST = [\"$:/StoryList\",\"$:/HistoryList\"],\n\tDONT_IMPORT_PREFIX_LIST = [\"$:/temp/\",\"$:/state/\"];\n\nexports.upgrade = function(wiki,titles,tiddlers) {\n\tvar self = this,\n\t\tmessages = {};\n\t// Check for tiddlers on our list\n\t$tw.utils.each(titles,function(title) {\n\t\tif(DONT_IMPORT_LIST.indexOf(title) !== -1) {\n\t\t\ttiddlers[title] = Object.create(null);\n\t\t\tmessages[title] = $tw.language.getString(\"Import/Upgrader/System/Suppressed\");\n\t\t} else {\n\t\t\tfor(var t=0; t<DONT_IMPORT_PREFIX_LIST.length; t++) {\n\t\t\t\tvar prefix = DONT_IMPORT_PREFIX_LIST[t];\n\t\t\t\tif(title.substr(0,prefix.length) === prefix) {\n\t\t\t\t\ttiddlers[title] = Object.create(null);\n\t\t\t\t\tmessages[title] = $tw.language.getString(\"Import/Upgrader/State/Suppressed\");\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t});\n\treturn messages;\n};\n\n})();\n", "title": "$:/core/modules/upgraders/system.js", "type": "application/javascript", "module-type": "upgrader" }, "$:/core/modules/upgraders/themetweaks.js": { "text": "/*\\\ntitle: $:/core/modules/upgraders/themetweaks.js\ntype: application/javascript\nmodule-type: upgrader\n\nUpgrader module that handles the change in theme tweak storage introduced in 5.0.14-beta.\n\nPreviously, theme tweaks were stored in two data tiddlers:\n\n* $:/themes/tiddlywiki/vanilla/metrics\n* $:/themes/tiddlywiki/vanilla/settings\n\nNow, each tweak is stored in its own separate tiddler.\n\nThis upgrader copies any values from the old format to the new. The old data tiddlers are not deleted in case they have been used to store additional indexes.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar MAPPINGS = {\n\t\"$:/themes/tiddlywiki/vanilla/metrics\": {\n\t\t\"fontsize\": \"$:/themes/tiddlywiki/vanilla/metrics/fontsize\",\n\t\t\"lineheight\": \"$:/themes/tiddlywiki/vanilla/metrics/lineheight\",\n\t\t\"storyleft\": \"$:/themes/tiddlywiki/vanilla/metrics/storyleft\",\n\t\t\"storytop\": \"$:/themes/tiddlywiki/vanilla/metrics/storytop\",\n\t\t\"storyright\": \"$:/themes/tiddlywiki/vanilla/metrics/storyright\",\n\t\t\"storywidth\": \"$:/themes/tiddlywiki/vanilla/metrics/storywidth\",\n\t\t\"tiddlerwidth\": \"$:/themes/tiddlywiki/vanilla/metrics/tiddlerwidth\"\n\t},\n\t\"$:/themes/tiddlywiki/vanilla/settings\": {\n\t\t\"fontfamily\": \"$:/themes/tiddlywiki/vanilla/settings/fontfamily\"\n\t}\n};\n\nexports.upgrade = function(wiki,titles,tiddlers) {\n\tvar self = this,\n\t\tmessages = {};\n\t// Check for tiddlers on our list\n\t$tw.utils.each(titles,function(title) {\n\t\tvar mapping = MAPPINGS[title];\n\t\tif(mapping) {\n\t\t\tvar tiddler = new $tw.Tiddler(tiddlers[title]),\n\t\t\t\ttiddlerData = wiki.getTiddlerDataCached(tiddler,{});\n\t\t\tfor(var index in mapping) {\n\t\t\t\tvar mappedTitle = mapping[index];\n\t\t\t\tif(!tiddlers[mappedTitle] || tiddlers[mappedTitle].title !== mappedTitle) {\n\t\t\t\t\ttiddlers[mappedTitle] = {\n\t\t\t\t\t\ttitle: mappedTitle,\n\t\t\t\t\t\ttext: tiddlerData[index]\n\t\t\t\t\t};\n\t\t\t\t\tmessages[mappedTitle] = $tw.language.getString(\"Import/Upgrader/ThemeTweaks/Created\",{variables: {\n\t\t\t\t\t\tfrom: title + \"##\" + index\n\t\t\t\t\t}});\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t});\n\treturn messages;\n};\n\n})();\n", "title": "$:/core/modules/upgraders/themetweaks.js", "type": "application/javascript", "module-type": "upgrader" }, "$:/core/modules/utils/crypto.js": { "text": "/*\\\ntitle: $:/core/modules/utils/crypto.js\ntype: application/javascript\nmodule-type: utils\n\nUtility functions related to crypto.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nLook for an encrypted store area in the text of a TiddlyWiki file\n*/\nexports.extractEncryptedStoreArea = function(text) {\n\tvar encryptedStoreAreaStartMarker = \"<pre id=\\\"encryptedStoreArea\\\" type=\\\"text/plain\\\" style=\\\"display:none;\\\">\",\n\t\tencryptedStoreAreaStart = text.indexOf(encryptedStoreAreaStartMarker);\n\tif(encryptedStoreAreaStart !== -1) {\n\t\tvar encryptedStoreAreaEnd = text.indexOf(\"</pre>\",encryptedStoreAreaStart);\n\t\tif(encryptedStoreAreaEnd !== -1) {\n\t\t\treturn $tw.utils.htmlDecode(text.substring(encryptedStoreAreaStart + encryptedStoreAreaStartMarker.length,encryptedStoreAreaEnd-1));\n\t\t}\n\t}\n\treturn null;\n};\n\n/*\nAttempt to extract the tiddlers from an encrypted store area using the current password. If the password is not provided then the password in the password store will be used\n*/\nexports.decryptStoreArea = function(encryptedStoreArea,password) {\n\tvar decryptedText = $tw.crypto.decrypt(encryptedStoreArea,password);\n\tif(decryptedText) {\n\t\tvar json = JSON.parse(decryptedText),\n\t\t\ttiddlers = [];\n\t\tfor(var title in json) {\n\t\t\tif(title !== \"$:/isEncrypted\") {\n\t\t\t\ttiddlers.push(json[title]);\n\t\t\t}\n\t\t}\n\t\treturn tiddlers;\n\t} else {\n\t\treturn null;\n\t}\n};\n\n\n/*\nAttempt to extract the tiddlers from an encrypted store area using the current password. If that fails, the user is prompted for a password.\nencryptedStoreArea: text of the TiddlyWiki encrypted store area\ncallback: function(tiddlers) called with the array of decrypted tiddlers\n\nThe following configuration settings are supported:\n\n$tw.config.usePasswordVault: causes any password entered by the user to also be put into the system password vault\n*/\nexports.decryptStoreAreaInteractive = function(encryptedStoreArea,callback,options) {\n\t// Try to decrypt with the current password\n\tvar tiddlers = $tw.utils.decryptStoreArea(encryptedStoreArea);\n\tif(tiddlers) {\n\t\tcallback(tiddlers);\n\t} else {\n\t\t// Prompt for a new password and keep trying\n\t\t$tw.passwordPrompt.createPrompt({\n\t\t\tserviceName: \"Enter a password to decrypt the imported TiddlyWiki\",\n\t\t\tnoUserName: true,\n\t\t\tcanCancel: true,\n\t\t\tsubmitText: \"Decrypt\",\n\t\t\tcallback: function(data) {\n\t\t\t\t// Exit if the user cancelled\n\t\t\t\tif(!data) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t\t// Attempt to decrypt the tiddlers\n\t\t\t\tvar tiddlers = $tw.utils.decryptStoreArea(encryptedStoreArea,data.password);\n\t\t\t\tif(tiddlers) {\n\t\t\t\t\tif($tw.config.usePasswordVault) {\n\t\t\t\t\t\t$tw.crypto.setPassword(data.password);\n\t\t\t\t\t}\n\t\t\t\t\tcallback(tiddlers);\n\t\t\t\t\t// Exit and remove the password prompt\n\t\t\t\t\treturn true;\n\t\t\t\t} else {\n\t\t\t\t\t// We didn't decrypt everything, so continue to prompt for password\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n};\n\n})();\n", "title": "$:/core/modules/utils/crypto.js", "type": "application/javascript", "module-type": "utils" }, "$:/core/modules/utils/dom/animations/slide.js": { "text": "/*\\\ntitle: $:/core/modules/utils/dom/animations/slide.js\ntype: application/javascript\nmodule-type: animation\n\nA simple slide animation that varies the height of the element\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nfunction slideOpen(domNode,options) {\n\toptions = options || {};\n\tvar duration = options.duration || $tw.utils.getAnimationDuration();\n\t// Get the current height of the domNode\n\tvar computedStyle = window.getComputedStyle(domNode),\n\t\tcurrMarginBottom = parseInt(computedStyle.marginBottom,10),\n\t\tcurrMarginTop = parseInt(computedStyle.marginTop,10),\n\t\tcurrPaddingBottom = parseInt(computedStyle.paddingBottom,10),\n\t\tcurrPaddingTop = parseInt(computedStyle.paddingTop,10),\n\t\tcurrHeight = domNode.offsetHeight;\n\t// Reset the margin once the transition is over\n\tsetTimeout(function() {\n\t\t$tw.utils.setStyle(domNode,[\n\t\t\t{transition: \"none\"},\n\t\t\t{marginBottom: \"\"},\n\t\t\t{marginTop: \"\"},\n\t\t\t{paddingBottom: \"\"},\n\t\t\t{paddingTop: \"\"},\n\t\t\t{height: \"auto\"},\n\t\t\t{opacity: \"\"}\n\t\t]);\n\t\tif(options.callback) {\n\t\t\toptions.callback();\n\t\t}\n\t},duration);\n\t// Set up the initial position of the element\n\t$tw.utils.setStyle(domNode,[\n\t\t{transition: \"none\"},\n\t\t{marginTop: \"0px\"},\n\t\t{marginBottom: \"0px\"},\n\t\t{paddingTop: \"0px\"},\n\t\t{paddingBottom: \"0px\"},\n\t\t{height: \"0px\"},\n\t\t{opacity: \"0\"}\n\t]);\n\t$tw.utils.forceLayout(domNode);\n\t// Transition to the final position\n\t$tw.utils.setStyle(domNode,[\n\t\t{transition: \"margin-top \" + duration + \"ms ease-in-out, \" +\n\t\t\t\t\t\"margin-bottom \" + duration + \"ms ease-in-out, \" +\n\t\t\t\t\t\"padding-top \" + duration + \"ms ease-in-out, \" +\n\t\t\t\t\t\"padding-bottom \" + duration + \"ms ease-in-out, \" +\n\t\t\t\t\t\"height \" + duration + \"ms ease-in-out, \" +\n\t\t\t\t\t\"opacity \" + duration + \"ms ease-in-out\"},\n\t\t{marginBottom: currMarginBottom + \"px\"},\n\t\t{marginTop: currMarginTop + \"px\"},\n\t\t{paddingBottom: currPaddingBottom + \"px\"},\n\t\t{paddingTop: currPaddingTop + \"px\"},\n\t\t{height: currHeight + \"px\"},\n\t\t{opacity: \"1\"}\n\t]);\n}\n\nfunction slideClosed(domNode,options) {\n\toptions = options || {};\n\tvar duration = options.duration || $tw.utils.getAnimationDuration(),\n\t\tcurrHeight = domNode.offsetHeight;\n\t// Clear the properties we've set when the animation is over\n\tsetTimeout(function() {\n\t\t$tw.utils.setStyle(domNode,[\n\t\t\t{transition: \"none\"},\n\t\t\t{marginBottom: \"\"},\n\t\t\t{marginTop: \"\"},\n\t\t\t{paddingBottom: \"\"},\n\t\t\t{paddingTop: \"\"},\n\t\t\t{height: \"auto\"},\n\t\t\t{opacity: \"\"}\n\t\t]);\n\t\tif(options.callback) {\n\t\t\toptions.callback();\n\t\t}\n\t},duration);\n\t// Set up the initial position of the element\n\t$tw.utils.setStyle(domNode,[\n\t\t{height: currHeight + \"px\"},\n\t\t{opacity: \"1\"}\n\t]);\n\t$tw.utils.forceLayout(domNode);\n\t// Transition to the final position\n\t$tw.utils.setStyle(domNode,[\n\t\t{transition: \"margin-top \" + duration + \"ms ease-in-out, \" +\n\t\t\t\t\t\"margin-bottom \" + duration + \"ms ease-in-out, \" +\n\t\t\t\t\t\"padding-top \" + duration + \"ms ease-in-out, \" +\n\t\t\t\t\t\"padding-bottom \" + duration + \"ms ease-in-out, \" +\n\t\t\t\t\t\"height \" + duration + \"ms ease-in-out, \" +\n\t\t\t\t\t\"opacity \" + duration + \"ms ease-in-out\"},\n\t\t{marginTop: \"0px\"},\n\t\t{marginBottom: \"0px\"},\n\t\t{paddingTop: \"0px\"},\n\t\t{paddingBottom: \"0px\"},\n\t\t{height: \"0px\"},\n\t\t{opacity: \"0\"}\n\t]);\n}\n\nexports.slide = {\n\topen: slideOpen,\n\tclose: slideClosed\n};\n\n})();\n", "title": "$:/core/modules/utils/dom/animations/slide.js", "type": "application/javascript", "module-type": "animation" }, "$:/core/modules/utils/dom/animator.js": { "text": "/*\\\ntitle: $:/core/modules/utils/dom/animator.js\ntype: application/javascript\nmodule-type: utils\n\nOrchestrates animations and transitions\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nfunction Animator() {\n\t// Get the registered animation modules\n\tthis.animations = {};\n\t$tw.modules.applyMethods(\"animation\",this.animations);\n}\n\nAnimator.prototype.perform = function(type,domNode,options) {\n\toptions = options || {};\n\t// Find an animation that can handle this type\n\tvar chosenAnimation;\n\t$tw.utils.each(this.animations,function(animation,name) {\n\t\tif($tw.utils.hop(animation,type)) {\n\t\t\tchosenAnimation = animation[type];\n\t\t}\n\t});\n\tif(!chosenAnimation) {\n\t\tchosenAnimation = function(domNode,options) {\n\t\t\tif(options.callback) {\n\t\t\t\toptions.callback();\n\t\t\t}\n\t\t};\n\t}\n\t// Call the animation\n\tchosenAnimation(domNode,options);\n};\n\nexports.Animator = Animator;\n\n})();\n", "title": "$:/core/modules/utils/dom/animator.js", "type": "application/javascript", "module-type": "utils" }, "$:/core/modules/utils/dom/browser.js": { "text": "/*\\\ntitle: $:/core/modules/utils/dom/browser.js\ntype: application/javascript\nmodule-type: utils\n\nBrowser feature detection\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nSet style properties of an element\n\telement: dom node\n\tstyles: ordered array of {name: value} pairs\n*/\nexports.setStyle = function(element,styles) {\n\tif(element.nodeType === 1) { // Element.ELEMENT_NODE\n\t\tfor(var t=0; t<styles.length; t++) {\n\t\t\tfor(var styleName in styles[t]) {\n\t\t\t\telement.style[$tw.utils.convertStyleNameToPropertyName(styleName)] = styles[t][styleName];\n\t\t\t}\n\t\t}\n\t}\n};\n\n/*\nConverts a standard CSS property name into the local browser-specific equivalent. For example:\n\t\"background-color\" --> \"backgroundColor\"\n\t\"transition\" --> \"webkitTransition\"\n*/\n\nvar styleNameCache = {}; // We'll cache the style name conversions\n\nexports.convertStyleNameToPropertyName = function(styleName) {\n\t// Return from the cache if we can\n\tif(styleNameCache[styleName]) {\n\t\treturn styleNameCache[styleName];\n\t}\n\t// Convert it by first removing any hyphens\n\tvar propertyName = $tw.utils.unHyphenateCss(styleName);\n\t// Then check if it needs a prefix\n\tif($tw.browser && document.body.style[propertyName] === undefined) {\n\t\tvar prefixes = [\"O\",\"MS\",\"Moz\",\"webkit\"];\n\t\tfor(var t=0; t<prefixes.length; t++) {\n\t\t\tvar prefixedName = prefixes[t] + propertyName.substr(0,1).toUpperCase() + propertyName.substr(1);\n\t\t\tif(document.body.style[prefixedName] !== undefined) {\n\t\t\t\tpropertyName = prefixedName;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\t// Put it in the cache too\n\tstyleNameCache[styleName] = propertyName;\n\treturn propertyName;\n};\n\n/*\nConverts a JS format CSS property name back into the dashed form used in CSS declarations. For example:\n\t\"backgroundColor\" --> \"background-color\"\n\t\"webkitTransform\" --> \"-webkit-transform\"\n*/\nexports.convertPropertyNameToStyleName = function(propertyName) {\n\t// Rehyphenate the name\n\tvar styleName = $tw.utils.hyphenateCss(propertyName);\n\t// If there's a webkit prefix, add a dash (other browsers have uppercase prefixes, and so get the dash automatically)\n\tif(styleName.indexOf(\"webkit\") === 0) {\n\t\tstyleName = \"-\" + styleName;\n\t} else if(styleName.indexOf(\"-m-s\") === 0) {\n\t\tstyleName = \"-ms\" + styleName.substr(4);\n\t}\n\treturn styleName;\n};\n\n/*\nRound trip a stylename to a property name and back again. For example:\n\t\"transform\" --> \"webkitTransform\" --> \"-webkit-transform\"\n*/\nexports.roundTripPropertyName = function(propertyName) {\n\treturn $tw.utils.convertPropertyNameToStyleName($tw.utils.convertStyleNameToPropertyName(propertyName));\n};\n\n/*\nConverts a standard event name into the local browser specific equivalent. For example:\n\t\"animationEnd\" --> \"webkitAnimationEnd\"\n*/\n\nvar eventNameCache = {}; // We'll cache the conversions\n\nvar eventNameMappings = {\n\t\"transitionEnd\": {\n\t\tcorrespondingCssProperty: \"transition\",\n\t\tmappings: {\n\t\t\ttransition: \"transitionend\",\n\t\t\tOTransition: \"oTransitionEnd\",\n\t\t\tMSTransition: \"msTransitionEnd\",\n\t\t\tMozTransition: \"transitionend\",\n\t\t\twebkitTransition: \"webkitTransitionEnd\"\n\t\t}\n\t},\n\t\"animationEnd\": {\n\t\tcorrespondingCssProperty: \"animation\",\n\t\tmappings: {\n\t\t\tanimation: \"animationend\",\n\t\t\tOAnimation: \"oAnimationEnd\",\n\t\t\tMSAnimation: \"msAnimationEnd\",\n\t\t\tMozAnimation: \"animationend\",\n\t\t\twebkitAnimation: \"webkitAnimationEnd\"\n\t\t}\n\t}\n};\n\nexports.convertEventName = function(eventName) {\n\tif(eventNameCache[eventName]) {\n\t\treturn eventNameCache[eventName];\n\t}\n\tvar newEventName = eventName,\n\t\tmappings = eventNameMappings[eventName];\n\tif(mappings) {\n\t\tvar convertedProperty = $tw.utils.convertStyleNameToPropertyName(mappings.correspondingCssProperty);\n\t\tif(mappings.mappings[convertedProperty]) {\n\t\t\tnewEventName = mappings.mappings[convertedProperty];\n\t\t}\n\t}\n\t// Put it in the cache too\n\teventNameCache[eventName] = newEventName;\n\treturn newEventName;\n};\n\n/*\nReturn the names of the fullscreen APIs\n*/\nexports.getFullScreenApis = function() {\n\tvar d = document,\n\t\tdb = d.body,\n\t\tresult = {\n\t\t\"_requestFullscreen\": db.webkitRequestFullscreen !== undefined ? \"webkitRequestFullscreen\" :\n\t\t\t\t\t\t\tdb.mozRequestFullScreen !== undefined ? \"mozRequestFullScreen\" :\n\t\t\t\t\t\t\tdb.msRequestFullscreen !== undefined ? \"msRequestFullscreen\" :\n\t\t\t\t\t\t\tdb.requestFullscreen !== undefined ? \"requestFullscreen\" : \"\",\n\t\t\"_exitFullscreen\": d.webkitExitFullscreen !== undefined ? \"webkitExitFullscreen\" :\n\t\t\t\t\t\t\td.mozCancelFullScreen !== undefined ? \"mozCancelFullScreen\" :\n\t\t\t\t\t\t\td.msExitFullscreen !== undefined ? \"msExitFullscreen\" :\n\t\t\t\t\t\t\td.exitFullscreen !== undefined ? \"exitFullscreen\" : \"\",\n\t\t\"_fullscreenElement\": d.webkitFullscreenElement !== undefined ? \"webkitFullscreenElement\" :\n\t\t\t\t\t\t\td.mozFullScreenElement !== undefined ? \"mozFullScreenElement\" :\n\t\t\t\t\t\t\td.msFullscreenElement !== undefined ? \"msFullscreenElement\" :\n\t\t\t\t\t\t\td.fullscreenElement !== undefined ? \"fullscreenElement\" : \"\",\n\t\t\"_fullscreenChange\": d.webkitFullscreenElement !== undefined ? \"webkitfullscreenchange\" :\n\t\t\t\t\t\t\td.mozFullScreenElement !== undefined ? \"mozfullscreenchange\" :\n\t\t\t\t\t\t\td.msFullscreenElement !== undefined ? \"MSFullscreenChange\" :\n\t\t\t\t\t\t\td.fullscreenElement !== undefined ? \"fullscreenchange\" : \"\"\n\t};\n\tif(!result._requestFullscreen || !result._exitFullscreen || !result._fullscreenElement || !result._fullscreenChange) {\n\t\treturn null;\n\t} else {\n\t\treturn result;\n\t}\n};\n\n})();\n", "title": "$:/core/modules/utils/dom/browser.js", "type": "application/javascript", "module-type": "utils" }, "$:/core/modules/utils/dom/csscolorparser.js": { "text": "// (c) Dean McNamee <dean@gmail.com>, 2012.\n//\n// https://github.com/deanm/css-color-parser-js\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to\n// deal in the Software without restriction, including without limitation the\n// rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n// sell copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n// IN THE SOFTWARE.\n\n// http://www.w3.org/TR/css3-color/\nvar kCSSColorTable = {\n \"transparent\": [0,0,0,0], \"aliceblue\": [240,248,255,1],\n \"antiquewhite\": [250,235,215,1], \"aqua\": [0,255,255,1],\n \"aquamarine\": [127,255,212,1], \"azure\": [240,255,255,1],\n \"beige\": [245,245,220,1], \"bisque\": [255,228,196,1],\n \"black\": [0,0,0,1], \"blanchedalmond\": [255,235,205,1],\n \"blue\": [0,0,255,1], \"blueviolet\": [138,43,226,1],\n \"brown\": [165,42,42,1], \"burlywood\": [222,184,135,1],\n \"cadetblue\": [95,158,160,1], \"chartreuse\": [127,255,0,1],\n \"chocolate\": [210,105,30,1], \"coral\": [255,127,80,1],\n \"cornflowerblue\": [100,149,237,1], \"cornsilk\": [255,248,220,1],\n \"crimson\": [220,20,60,1], \"cyan\": [0,255,255,1],\n \"darkblue\": [0,0,139,1], \"darkcyan\": [0,139,139,1],\n \"darkgoldenrod\": [184,134,11,1], \"darkgray\": [169,169,169,1],\n \"darkgreen\": [0,100,0,1], \"darkgrey\": [169,169,169,1],\n \"darkkhaki\": [189,183,107,1], \"darkmagenta\": [139,0,139,1],\n \"darkolivegreen\": [85,107,47,1], \"darkorange\": [255,140,0,1],\n \"darkorchid\": [153,50,204,1], \"darkred\": [139,0,0,1],\n \"darksalmon\": [233,150,122,1], \"darkseagreen\": [143,188,143,1],\n \"darkslateblue\": [72,61,139,1], \"darkslategray\": [47,79,79,1],\n \"darkslategrey\": [47,79,79,1], \"darkturquoise\": [0,206,209,1],\n \"darkviolet\": [148,0,211,1], \"deeppink\": [255,20,147,1],\n \"deepskyblue\": [0,191,255,1], \"dimgray\": [105,105,105,1],\n \"dimgrey\": [105,105,105,1], \"dodgerblue\": [30,144,255,1],\n \"firebrick\": [178,34,34,1], \"floralwhite\": [255,250,240,1],\n \"forestgreen\": [34,139,34,1], \"fuchsia\": [255,0,255,1],\n \"gainsboro\": [220,220,220,1], \"ghostwhite\": [248,248,255,1],\n \"gold\": [255,215,0,1], \"goldenrod\": [218,165,32,1],\n \"gray\": [128,128,128,1], \"green\": [0,128,0,1],\n \"greenyellow\": [173,255,47,1], \"grey\": [128,128,128,1],\n \"honeydew\": [240,255,240,1], \"hotpink\": [255,105,180,1],\n \"indianred\": [205,92,92,1], \"indigo\": [75,0,130,1],\n \"ivory\": [255,255,240,1], \"khaki\": [240,230,140,1],\n \"lavender\": [230,230,250,1], \"lavenderblush\": [255,240,245,1],\n \"lawngreen\": [124,252,0,1], \"lemonchiffon\": [255,250,205,1],\n \"lightblue\": [173,216,230,1], \"lightcoral\": [240,128,128,1],\n \"lightcyan\": [224,255,255,1], \"lightgoldenrodyellow\": [250,250,210,1],\n \"lightgray\": [211,211,211,1], \"lightgreen\": [144,238,144,1],\n \"lightgrey\": [211,211,211,1], \"lightpink\": [255,182,193,1],\n \"lightsalmon\": [255,160,122,1], \"lightseagreen\": [32,178,170,1],\n \"lightskyblue\": [135,206,250,1], \"lightslategray\": [119,136,153,1],\n \"lightslategrey\": [119,136,153,1], \"lightsteelblue\": [176,196,222,1],\n \"lightyellow\": [255,255,224,1], \"lime\": [0,255,0,1],\n \"limegreen\": [50,205,50,1], \"linen\": [250,240,230,1],\n \"magenta\": [255,0,255,1], \"maroon\": [128,0,0,1],\n \"mediumaquamarine\": [102,205,170,1], \"mediumblue\": [0,0,205,1],\n \"mediumorchid\": [186,85,211,1], \"mediumpurple\": [147,112,219,1],\n \"mediumseagreen\": [60,179,113,1], \"mediumslateblue\": [123,104,238,1],\n \"mediumspringgreen\": [0,250,154,1], \"mediumturquoise\": [72,209,204,1],\n \"mediumvioletred\": [199,21,133,1], \"midnightblue\": [25,25,112,1],\n \"mintcream\": [245,255,250,1], \"mistyrose\": [255,228,225,1],\n \"moccasin\": [255,228,181,1], \"navajowhite\": [255,222,173,1],\n \"navy\": [0,0,128,1], \"oldlace\": [253,245,230,1],\n \"olive\": [128,128,0,1], \"olivedrab\": [107,142,35,1],\n \"orange\": [255,165,0,1], \"orangered\": [255,69,0,1],\n \"orchid\": [218,112,214,1], \"palegoldenrod\": [238,232,170,1],\n \"palegreen\": [152,251,152,1], \"paleturquoise\": [175,238,238,1],\n \"palevioletred\": [219,112,147,1], \"papayawhip\": [255,239,213,1],\n \"peachpuff\": [255,218,185,1], \"peru\": [205,133,63,1],\n \"pink\": [255,192,203,1], \"plum\": [221,160,221,1],\n \"powderblue\": [176,224,230,1], \"purple\": [128,0,128,1],\n \"red\": [255,0,0,1], \"rosybrown\": [188,143,143,1],\n \"royalblue\": [65,105,225,1], \"saddlebrown\": [139,69,19,1],\n \"salmon\": [250,128,114,1], \"sandybrown\": [244,164,96,1],\n \"seagreen\": [46,139,87,1], \"seashell\": [255,245,238,1],\n \"sienna\": [160,82,45,1], \"silver\": [192,192,192,1],\n \"skyblue\": [135,206,235,1], \"slateblue\": [106,90,205,1],\n \"slategray\": [112,128,144,1], \"slategrey\": [112,128,144,1],\n \"snow\": [255,250,250,1], \"springgreen\": [0,255,127,1],\n \"steelblue\": [70,130,180,1], \"tan\": [210,180,140,1],\n \"teal\": [0,128,128,1], \"thistle\": [216,191,216,1],\n \"tomato\": [255,99,71,1], \"turquoise\": [64,224,208,1],\n \"violet\": [238,130,238,1], \"wheat\": [245,222,179,1],\n \"white\": [255,255,255,1], \"whitesmoke\": [245,245,245,1],\n \"yellow\": [255,255,0,1], \"yellowgreen\": [154,205,50,1]}\n\nfunction clamp_css_byte(i) { // Clamp to integer 0 .. 255.\n i = Math.round(i); // Seems to be what Chrome does (vs truncation).\n return i < 0 ? 0 : i > 255 ? 255 : i;\n}\n\nfunction clamp_css_float(f) { // Clamp to float 0.0 .. 1.0.\n return f < 0 ? 0 : f > 1 ? 1 : f;\n}\n\nfunction parse_css_int(str) { // int or percentage.\n if (str[str.length - 1] === '%')\n return clamp_css_byte(parseFloat(str) / 100 * 255);\n return clamp_css_byte(parseInt(str));\n}\n\nfunction parse_css_float(str) { // float or percentage.\n if (str[str.length - 1] === '%')\n return clamp_css_float(parseFloat(str) / 100);\n return clamp_css_float(parseFloat(str));\n}\n\nfunction css_hue_to_rgb(m1, m2, h) {\n if (h < 0) h += 1;\n else if (h > 1) h -= 1;\n\n if (h * 6 < 1) return m1 + (m2 - m1) * h * 6;\n if (h * 2 < 1) return m2;\n if (h * 3 < 2) return m1 + (m2 - m1) * (2/3 - h) * 6;\n return m1;\n}\n\nfunction parseCSSColor(css_str) {\n // Remove all whitespace, not compliant, but should just be more accepting.\n var str = css_str.replace(/ /g, '').toLowerCase();\n\n // Color keywords (and transparent) lookup.\n if (str in kCSSColorTable) return kCSSColorTable[str].slice(); // dup.\n\n // #abc and #abc123 syntax.\n if (str[0] === '#') {\n if (str.length === 4) {\n var iv = parseInt(str.substr(1), 16); // TODO(deanm): Stricter parsing.\n if (!(iv >= 0 && iv <= 0xfff)) return null; // Covers NaN.\n return [((iv & 0xf00) >> 4) | ((iv & 0xf00) >> 8),\n (iv & 0xf0) | ((iv & 0xf0) >> 4),\n (iv & 0xf) | ((iv & 0xf) << 4),\n 1];\n } else if (str.length === 7) {\n var iv = parseInt(str.substr(1), 16); // TODO(deanm): Stricter parsing.\n if (!(iv >= 0 && iv <= 0xffffff)) return null; // Covers NaN.\n return [(iv & 0xff0000) >> 16,\n (iv & 0xff00) >> 8,\n iv & 0xff,\n 1];\n }\n\n return null;\n }\n\n var op = str.indexOf('('), ep = str.indexOf(')');\n if (op !== -1 && ep + 1 === str.length) {\n var fname = str.substr(0, op);\n var params = str.substr(op+1, ep-(op+1)).split(',');\n var alpha = 1; // To allow case fallthrough.\n switch (fname) {\n case 'rgba':\n if (params.length !== 4) return null;\n alpha = parse_css_float(params.pop());\n // Fall through.\n case 'rgb':\n if (params.length !== 3) return null;\n return [parse_css_int(params[0]),\n parse_css_int(params[1]),\n parse_css_int(params[2]),\n alpha];\n case 'hsla':\n if (params.length !== 4) return null;\n alpha = parse_css_float(params.pop());\n // Fall through.\n case 'hsl':\n if (params.length !== 3) return null;\n var h = (((parseFloat(params[0]) % 360) + 360) % 360) / 360; // 0 .. 1\n // NOTE(deanm): According to the CSS spec s/l should only be\n // percentages, but we don't bother and let float or percentage.\n var s = parse_css_float(params[1]);\n var l = parse_css_float(params[2]);\n var m2 = l <= 0.5 ? l * (s + 1) : l + s - l * s;\n var m1 = l * 2 - m2;\n return [clamp_css_byte(css_hue_to_rgb(m1, m2, h+1/3) * 255),\n clamp_css_byte(css_hue_to_rgb(m1, m2, h) * 255),\n clamp_css_byte(css_hue_to_rgb(m1, m2, h-1/3) * 255),\n alpha];\n default:\n return null;\n }\n }\n\n return null;\n}\n\ntry { exports.parseCSSColor = parseCSSColor } catch(e) { }\n", "title": "$:/core/modules/utils/dom/csscolorparser.js", "type": "application/javascript", "module-type": "utils" }, "$:/core/modules/utils/dom.js": { "text": "/*\\\ntitle: $:/core/modules/utils/dom.js\ntype: application/javascript\nmodule-type: utils\n\nVarious static DOM-related utility functions.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nDetermines whether element 'a' contains element 'b'\nCode thanks to John Resig, http://ejohn.org/blog/comparing-document-position/\n*/\nexports.domContains = function(a,b) {\n\treturn a.contains ?\n\t\ta !== b && a.contains(b) :\n\t\t!!(a.compareDocumentPosition(b) & 16);\n};\n\nexports.removeChildren = function(node) {\n\twhile(node.hasChildNodes()) {\n\t\tnode.removeChild(node.firstChild);\n\t}\n};\n\nexports.hasClass = function(el,className) {\n\treturn el && el.className && el.className.toString().split(\" \").indexOf(className) !== -1;\n};\n\nexports.addClass = function(el,className) {\n\tvar c = el.className.split(\" \");\n\tif(c.indexOf(className) === -1) {\n\t\tc.push(className);\n\t}\n\tel.className = c.join(\" \");\n};\n\nexports.removeClass = function(el,className) {\n\tvar c = el.className.split(\" \"),\n\t\tp = c.indexOf(className);\n\tif(p !== -1) {\n\t\tc.splice(p,1);\n\t\tel.className = c.join(\" \");\n\t}\n};\n\nexports.toggleClass = function(el,className,status) {\n\tif(status === undefined) {\n\t\tstatus = !exports.hasClass(el,className);\n\t}\n\tif(status) {\n\t\texports.addClass(el,className);\n\t} else {\n\t\texports.removeClass(el,className);\n\t}\n};\n\n/*\nGet the first parent element that has scrollbars or use the body as fallback.\n*/\nexports.getScrollContainer = function(el) {\n\tvar doc = el.ownerDocument;\n\twhile(el.parentNode) {\t\n\t\tel = el.parentNode;\n\t\tif(el.scrollTop) {\n\t\t\treturn el;\n\t\t}\n\t}\n\treturn doc.body;\n};\n\n/*\nGet the scroll position of the viewport\nReturns:\n\t{\n\t\tx: horizontal scroll position in pixels,\n\t\ty: vertical scroll position in pixels\n\t}\n*/\nexports.getScrollPosition = function() {\n\tif(\"scrollX\" in window) {\n\t\treturn {x: window.scrollX, y: window.scrollY};\n\t} else {\n\t\treturn {x: document.documentElement.scrollLeft, y: document.documentElement.scrollTop};\n\t}\n};\n\n/*\nAdjust the height of a textarea to fit its content, preserving scroll position, and return the height\n*/\nexports.resizeTextAreaToFit = function(domNode,minHeight) {\n\t// Get the scroll container and register the current scroll position\n\tvar container = $tw.utils.getScrollContainer(domNode),\n\t\tscrollTop = container.scrollTop;\n // Measure the specified minimum height\n\tdomNode.style.height = minHeight;\n\tvar measuredHeight = domNode.offsetHeight;\n\t// Set its height to auto so that it snaps to the correct height\n\tdomNode.style.height = \"auto\";\n\t// Calculate the revised height\n\tvar newHeight = Math.max(domNode.scrollHeight + domNode.offsetHeight - domNode.clientHeight,measuredHeight);\n\t// Only try to change the height if it has changed\n\tif(newHeight !== domNode.offsetHeight) {\n\t\tdomNode.style.height = newHeight + \"px\";\n\t\t// Make sure that the dimensions of the textarea are recalculated\n\t\t$tw.utils.forceLayout(domNode);\n\t\t// Set the container to the position we registered at the beginning\n\t\tcontainer.scrollTop = scrollTop;\n\t}\n\treturn newHeight;\n};\n\n/*\nGets the bounding rectangle of an element in absolute page coordinates\n*/\nexports.getBoundingPageRect = function(element) {\n\tvar scrollPos = $tw.utils.getScrollPosition(),\n\t\tclientRect = element.getBoundingClientRect();\n\treturn {\n\t\tleft: clientRect.left + scrollPos.x,\n\t\twidth: clientRect.width,\n\t\tright: clientRect.right + scrollPos.x,\n\t\ttop: clientRect.top + scrollPos.y,\n\t\theight: clientRect.height,\n\t\tbottom: clientRect.bottom + scrollPos.y\n\t};\n};\n\n/*\nSaves a named password in the browser\n*/\nexports.savePassword = function(name,password) {\n\ttry {\n\t\tif(window.localStorage) {\n\t\t\tlocalStorage.setItem(\"tw5-password-\" + name,password);\n\t\t}\n\t} catch(e) {\n\t}\n};\n\n/*\nRetrieve a named password from the browser\n*/\nexports.getPassword = function(name) {\n\ttry {\n\t\treturn window.localStorage ? localStorage.getItem(\"tw5-password-\" + name) : \"\";\n\t} catch(e) {\n\t\treturn \"\";\n\t}\n};\n\n/*\nForce layout of a dom node and its descendents\n*/\nexports.forceLayout = function(element) {\n\tvar dummy = element.offsetWidth;\n};\n\n/*\nPulse an element for debugging purposes\n*/\nexports.pulseElement = function(element) {\n\t// Event handler to remove the class at the end\n\telement.addEventListener($tw.browser.animationEnd,function handler(event) {\n\t\telement.removeEventListener($tw.browser.animationEnd,handler,false);\n\t\t$tw.utils.removeClass(element,\"pulse\");\n\t},false);\n\t// Apply the pulse class\n\t$tw.utils.removeClass(element,\"pulse\");\n\t$tw.utils.forceLayout(element);\n\t$tw.utils.addClass(element,\"pulse\");\n};\n\n/*\nAttach specified event handlers to a DOM node\ndomNode: where to attach the event handlers\nevents: array of event handlers to be added (see below)\nEach entry in the events array is an object with these properties:\nhandlerFunction: optional event handler function\nhandlerObject: optional event handler object\nhandlerMethod: optionally specifies object handler method name (defaults to `handleEvent`)\n*/\nexports.addEventListeners = function(domNode,events) {\n\t$tw.utils.each(events,function(eventInfo) {\n\t\tvar handler;\n\t\tif(eventInfo.handlerFunction) {\n\t\t\thandler = eventInfo.handlerFunction;\n\t\t} else if(eventInfo.handlerObject) {\n\t\t\tif(eventInfo.handlerMethod) {\n\t\t\t\thandler = function(event) {\n\t\t\t\t\teventInfo.handlerObject[eventInfo.handlerMethod].call(eventInfo.handlerObject,event);\n\t\t\t\t};\t\n\t\t\t} else {\n\t\t\t\thandler = eventInfo.handlerObject;\n\t\t\t}\n\t\t}\n\t\tdomNode.addEventListener(eventInfo.name,handler,false);\n\t});\n};\n\n/*\nGet the computed styles applied to an element as an array of strings of individual CSS properties\n*/\nexports.getComputedStyles = function(domNode) {\n\tvar textAreaStyles = window.getComputedStyle(domNode,null),\n\t\tstyleDefs = [],\n\t\tname;\n\tfor(var t=0; t<textAreaStyles.length; t++) {\n\t\tname = textAreaStyles[t];\n\t\tstyleDefs.push(name + \": \" + textAreaStyles.getPropertyValue(name) + \";\");\n\t}\n\treturn styleDefs;\n};\n\n/*\nApply a set of styles passed as an array of strings of individual CSS properties\n*/\nexports.setStyles = function(domNode,styleDefs) {\n\tdomNode.style.cssText = styleDefs.join(\"\");\n};\n\n/*\nCopy the computed styles from a source element to a destination element\n*/\nexports.copyStyles = function(srcDomNode,dstDomNode) {\n\t$tw.utils.setStyles(dstDomNode,$tw.utils.getComputedStyles(srcDomNode));\n};\n\n})();\n", "title": "$:/core/modules/utils/dom.js", "type": "application/javascript", "module-type": "utils" }, "$:/core/modules/utils/dom/http.js": { "text": "/*\\\ntitle: $:/core/modules/utils/dom/http.js\ntype: application/javascript\nmodule-type: utils\n\nBrowser HTTP support\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nA quick and dirty HTTP function; to be refactored later. Options are:\n\turl: URL to retrieve\n\ttype: GET, PUT, POST etc\n\tcallback: function invoked with (err,data)\n*/\nexports.httpRequest = function(options) {\n\tvar type = options.type || \"GET\",\n\t\theaders = options.headers || {accept: \"application/json\"},\n\t\trequest = new XMLHttpRequest(),\n\t\tdata = \"\",\n\t\tf,results;\n\t// Massage the data hashmap into a string\n\tif(options.data) {\n\t\tif(typeof options.data === \"string\") { // Already a string\n\t\t\tdata = options.data;\n\t\t} else { // A hashmap of strings\n\t\t\tresults = [];\n\t\t\t$tw.utils.each(options.data,function(dataItem,dataItemTitle) {\n\t\t\t\tresults.push(dataItemTitle + \"=\" + encodeURIComponent(dataItem));\n\t\t\t});\n\t\t\tdata = results.join(\"&\");\n\t\t}\n\t}\n\t// Set up the state change handler\n\trequest.onreadystatechange = function() {\n\t\tif(this.readyState === 4) {\n\t\t\tif(this.status === 200 || this.status === 201 || this.status === 204) {\n\t\t\t\t// Success!\n\t\t\t\toptions.callback(null,this.responseText,this);\n\t\t\t\treturn;\n\t\t\t}\n\t\t// Something went wrong\n\t\toptions.callback($tw.language.getString(\"Error/XMLHttpRequest\") + \": \" + this.status);\n\t\t}\n\t};\n\t// Make the request\n\trequest.open(type,options.url,true);\n\tif(headers) {\n\t\t$tw.utils.each(headers,function(header,headerTitle,object) {\n\t\t\trequest.setRequestHeader(headerTitle,header);\n\t\t});\n\t}\n\tif(data && !$tw.utils.hop(headers,\"Content-type\")) {\n\t\trequest.setRequestHeader(\"Content-type\",\"application/x-www-form-urlencoded; charset=UTF-8\");\n\t}\n\ttry {\n\t\trequest.send(data);\n\t} catch(e) {\n\t\toptions.callback(e);\n\t}\n\treturn request;\n};\n\n})();\n", "title": "$:/core/modules/utils/dom/http.js", "type": "application/javascript", "module-type": "utils" }, "$:/core/modules/utils/dom/keyboard.js": { "text": "/*\\\ntitle: $:/core/modules/utils/dom/keyboard.js\ntype: application/javascript\nmodule-type: utils\n\nKeyboard utilities; now deprecated. Instead, use $tw.keyboardManager\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n[\"parseKeyDescriptor\",\"checkKeyDescriptor\"].forEach(function(method) {\n\texports[method] = function() {\n\t\tif($tw.keyboardManager) {\n\t\t\treturn $tw.keyboardManager[method].apply($tw.keyboardManager,Array.prototype.slice.call(arguments,0));\n\t\t} else {\n\t\t\treturn null\n\t\t}\n\t};\n});\n\n})();\n", "title": "$:/core/modules/utils/dom/keyboard.js", "type": "application/javascript", "module-type": "utils" }, "$:/core/modules/utils/dom/modal.js": { "text": "/*\\\ntitle: $:/core/modules/utils/dom/modal.js\ntype: application/javascript\nmodule-type: utils\n\nModal message mechanism\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar widget = require(\"$:/core/modules/widgets/widget.js\");\n\nvar Modal = function(wiki) {\n\tthis.wiki = wiki;\n\tthis.modalCount = 0;\n};\n\n/*\nDisplay a modal dialogue\n\ttitle: Title of tiddler to display\n\toptions: see below\nOptions include:\n\tdownloadLink: Text of a big download link to include\n*/\nModal.prototype.display = function(title,options) {\n\toptions = options || {};\n\tvar self = this,\n\t\trefreshHandler,\n\t\tduration = $tw.utils.getAnimationDuration(),\n\t\ttiddler = this.wiki.getTiddler(title);\n\t// Don't do anything if the tiddler doesn't exist\n\tif(!tiddler) {\n\t\treturn;\n\t}\n\t// Create the variables\n\tvar variables = $tw.utils.extend({currentTiddler: title},options.variables);\n\t// Create the wrapper divs\n\tvar wrapper = document.createElement(\"div\"),\n\t\tmodalBackdrop = document.createElement(\"div\"),\n\t\tmodalWrapper = document.createElement(\"div\"),\n\t\tmodalHeader = document.createElement(\"div\"),\n\t\theaderTitle = document.createElement(\"h3\"),\n\t\tmodalBody = document.createElement(\"div\"),\n\t\tmodalLink = document.createElement(\"a\"),\n\t\tmodalFooter = document.createElement(\"div\"),\n\t\tmodalFooterHelp = document.createElement(\"span\"),\n\t\tmodalFooterButtons = document.createElement(\"span\");\n\t// Up the modal count and adjust the body class\n\tthis.modalCount++;\n\tthis.adjustPageClass();\n\t// Add classes\n\t$tw.utils.addClass(wrapper,\"tc-modal-wrapper\");\n\t$tw.utils.addClass(modalBackdrop,\"tc-modal-backdrop\");\n\t$tw.utils.addClass(modalWrapper,\"tc-modal\");\n\t$tw.utils.addClass(modalHeader,\"tc-modal-header\");\n\t$tw.utils.addClass(modalBody,\"tc-modal-body\");\n\t$tw.utils.addClass(modalFooter,\"tc-modal-footer\");\n\t// Join them together\n\twrapper.appendChild(modalBackdrop);\n\twrapper.appendChild(modalWrapper);\n\tmodalHeader.appendChild(headerTitle);\n\tmodalWrapper.appendChild(modalHeader);\n\tmodalWrapper.appendChild(modalBody);\n\tmodalFooter.appendChild(modalFooterHelp);\n\tmodalFooter.appendChild(modalFooterButtons);\n\tmodalWrapper.appendChild(modalFooter);\n\t// Render the title of the message\n\tvar headerWidgetNode = this.wiki.makeTranscludeWidget(title,{\n\t\tfield: \"subtitle\",\n\t\tmode: \"inline\",\n\t\tchildren: [{\n\t\t\ttype: \"text\",\n\t\t\tattributes: {\n\t\t\t\ttext: {\n\t\t\t\t\ttype: \"string\",\n\t\t\t\t\tvalue: title\n\t\t}}}],\n\t\tparentWidget: $tw.rootWidget,\n\t\tdocument: document,\n\t\tvariables: variables\n\t});\n\theaderWidgetNode.render(headerTitle,null);\n\t// Render the body of the message\n\tvar bodyWidgetNode = this.wiki.makeTranscludeWidget(title,{\n\t\tparentWidget: $tw.rootWidget,\n\t\tdocument: document,\n\t\tvariables: variables\n\t});\n\tbodyWidgetNode.render(modalBody,null);\n\t// Setup the link if present\n\tif(options.downloadLink) {\n\t\tmodalLink.href = options.downloadLink;\n\t\tmodalLink.appendChild(document.createTextNode(\"Right-click to save changes\"));\n\t\tmodalBody.appendChild(modalLink);\n\t}\n\t// Render the footer of the message\n\tif(tiddler && tiddler.fields && tiddler.fields.help) {\n\t\tvar link = document.createElement(\"a\");\n\t\tlink.setAttribute(\"href\",tiddler.fields.help);\n\t\tlink.setAttribute(\"target\",\"_blank\");\n\t\tlink.setAttribute(\"rel\",\"noopener noreferrer\");\n\t\tlink.appendChild(document.createTextNode(\"Help\"));\n\t\tmodalFooterHelp.appendChild(link);\n\t\tmodalFooterHelp.style.float = \"left\";\n\t}\n\tvar footerWidgetNode = this.wiki.makeTranscludeWidget(title,{\n\t\tfield: \"footer\",\n\t\tmode: \"inline\",\n\t\tchildren: [{\n\t\t\ttype: \"button\",\n\t\t\tattributes: {\n\t\t\t\tmessage: {\n\t\t\t\t\ttype: \"string\",\n\t\t\t\t\tvalue: \"tm-close-tiddler\"\n\t\t\t\t}\n\t\t\t},\n\t\t\tchildren: [{\n\t\t\t\ttype: \"text\",\n\t\t\t\tattributes: {\n\t\t\t\t\ttext: {\n\t\t\t\t\t\ttype: \"string\",\n\t\t\t\t\t\tvalue: $tw.language.getString(\"Buttons/Close/Caption\")\n\t\t\t}}}\n\t\t]}],\n\t\tparentWidget: $tw.rootWidget,\n\t\tdocument: document,\n\t\tvariables: variables\n\t});\n\tfooterWidgetNode.render(modalFooterButtons,null);\n\t// Set up the refresh handler\n\trefreshHandler = function(changes) {\n\t\theaderWidgetNode.refresh(changes,modalHeader,null);\n\t\tbodyWidgetNode.refresh(changes,modalBody,null);\n\t\tfooterWidgetNode.refresh(changes,modalFooterButtons,null);\n\t};\n\tthis.wiki.addEventListener(\"change\",refreshHandler);\n\t// Add the close event handler\n\tvar closeHandler = function(event) {\n\t\t// Remove our refresh handler\n\t\tself.wiki.removeEventListener(\"change\",refreshHandler);\n\t\t// Decrease the modal count and adjust the body class\n\t\tself.modalCount--;\n\t\tself.adjustPageClass();\n\t\t// Force layout and animate the modal message away\n\t\t$tw.utils.forceLayout(modalBackdrop);\n\t\t$tw.utils.forceLayout(modalWrapper);\n\t\t$tw.utils.setStyle(modalBackdrop,[\n\t\t\t{opacity: \"0\"}\n\t\t]);\n\t\t$tw.utils.setStyle(modalWrapper,[\n\t\t\t{transform: \"translateY(\" + window.innerHeight + \"px)\"}\n\t\t]);\n\t\t// Set up an event for the transition end\n\t\twindow.setTimeout(function() {\n\t\t\tif(wrapper.parentNode) {\n\t\t\t\t// Remove the modal message from the DOM\n\t\t\t\tdocument.body.removeChild(wrapper);\n\t\t\t}\n\t\t},duration);\n\t\t// Don't let anyone else handle the tm-close-tiddler message\n\t\treturn false;\n\t};\n\theaderWidgetNode.addEventListener(\"tm-close-tiddler\",closeHandler,false);\n\tbodyWidgetNode.addEventListener(\"tm-close-tiddler\",closeHandler,false);\n\tfooterWidgetNode.addEventListener(\"tm-close-tiddler\",closeHandler,false);\n\t// Set the initial styles for the message\n\t$tw.utils.setStyle(modalBackdrop,[\n\t\t{opacity: \"0\"}\n\t]);\n\t$tw.utils.setStyle(modalWrapper,[\n\t\t{transformOrigin: \"0% 0%\"},\n\t\t{transform: \"translateY(\" + (-window.innerHeight) + \"px)\"}\n\t]);\n\t// Put the message into the document\n\tdocument.body.appendChild(wrapper);\n\t// Set up animation for the styles\n\t$tw.utils.setStyle(modalBackdrop,[\n\t\t{transition: \"opacity \" + duration + \"ms ease-out\"}\n\t]);\n\t$tw.utils.setStyle(modalWrapper,[\n\t\t{transition: $tw.utils.roundTripPropertyName(\"transform\") + \" \" + duration + \"ms ease-in-out\"}\n\t]);\n\t// Force layout\n\t$tw.utils.forceLayout(modalBackdrop);\n\t$tw.utils.forceLayout(modalWrapper);\n\t// Set final animated styles\n\t$tw.utils.setStyle(modalBackdrop,[\n\t\t{opacity: \"0.7\"}\n\t]);\n\t$tw.utils.setStyle(modalWrapper,[\n\t\t{transform: \"translateY(0px)\"}\n\t]);\n};\n\nModal.prototype.adjustPageClass = function() {\n\tif($tw.pageContainer) {\n\t\t$tw.utils.toggleClass($tw.pageContainer,\"tc-modal-displayed\",this.modalCount > 0);\n\t}\n};\n\nexports.Modal = Modal;\n\n})();\n", "title": "$:/core/modules/utils/dom/modal.js", "type": "application/javascript", "module-type": "utils" }, "$:/core/modules/utils/dom/notifier.js": { "text": "/*\\\ntitle: $:/core/modules/utils/dom/notifier.js\ntype: application/javascript\nmodule-type: utils\n\nNotifier mechanism\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar widget = require(\"$:/core/modules/widgets/widget.js\");\n\nvar Notifier = function(wiki) {\n\tthis.wiki = wiki;\n};\n\n/*\nDisplay a notification\n\ttitle: Title of tiddler containing the notification text\n\toptions: see below\nOptions include:\n*/\nNotifier.prototype.display = function(title,options) {\n\toptions = options || {};\n\t// Create the wrapper divs\n\tvar self = this,\n\t\tnotification = document.createElement(\"div\"),\n\t\ttiddler = this.wiki.getTiddler(title),\n\t\tduration = $tw.utils.getAnimationDuration(),\n\t\trefreshHandler;\n\t// Don't do anything if the tiddler doesn't exist\n\tif(!tiddler) {\n\t\treturn;\n\t}\n\t// Add classes\n\t$tw.utils.addClass(notification,\"tc-notification\");\n\t// Create the variables\n\tvar variables = $tw.utils.extend({currentTiddler: title},options.variables);\n\t// Render the body of the notification\n\tvar widgetNode = this.wiki.makeTranscludeWidget(title,{parentWidget: $tw.rootWidget, document: document, variables: variables});\n\twidgetNode.render(notification,null);\n\trefreshHandler = function(changes) {\n\t\twidgetNode.refresh(changes,notification,null);\n\t};\n\tthis.wiki.addEventListener(\"change\",refreshHandler);\n\t// Set the initial styles for the notification\n\t$tw.utils.setStyle(notification,[\n\t\t{opacity: \"0\"},\n\t\t{transformOrigin: \"0% 0%\"},\n\t\t{transform: \"translateY(\" + (-window.innerHeight) + \"px)\"},\n\t\t{transition: \"opacity \" + duration + \"ms ease-out, \" + $tw.utils.roundTripPropertyName(\"transform\") + \" \" + duration + \"ms ease-in-out\"}\n\t]);\n\t// Add the notification to the DOM\n\tdocument.body.appendChild(notification);\n\t// Force layout\n\t$tw.utils.forceLayout(notification);\n\t// Set final animated styles\n\t$tw.utils.setStyle(notification,[\n\t\t{opacity: \"1.0\"},\n\t\t{transform: \"translateY(0px)\"}\n\t]);\n\t// Set a timer to remove the notification\n\twindow.setTimeout(function() {\n\t\t// Remove our change event handler\n\t\tself.wiki.removeEventListener(\"change\",refreshHandler);\n\t\t// Force layout and animate the notification away\n\t\t$tw.utils.forceLayout(notification);\n\t\t$tw.utils.setStyle(notification,[\n\t\t\t{opacity: \"0.0\"},\n\t\t\t{transform: \"translateX(\" + (notification.offsetWidth) + \"px)\"}\n\t\t]);\n\t\t// Remove the modal message from the DOM once the transition ends\n\t\tsetTimeout(function() {\n\t\t\tif(notification.parentNode) {\n\t\t\t\tdocument.body.removeChild(notification);\n\t\t\t}\n\t\t},duration);\n\t},$tw.config.preferences.notificationDuration);\n};\n\nexports.Notifier = Notifier;\n\n})();\n", "title": "$:/core/modules/utils/dom/notifier.js", "type": "application/javascript", "module-type": "utils" }, "$:/core/modules/utils/dom/popup.js": { "text": "/*\\\ntitle: $:/core/modules/utils/dom/popup.js\ntype: application/javascript\nmodule-type: utils\n\nModule that creates a $tw.utils.Popup object prototype that manages popups in the browser\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nCreates a Popup object with these options:\n\trootElement: the DOM element to which the popup zapper should be attached\n*/\nvar Popup = function(options) {\n\toptions = options || {};\n\tthis.rootElement = options.rootElement || document.documentElement;\n\tthis.popups = []; // Array of {title:,wiki:,domNode:} objects\n};\n\n/*\nTrigger a popup open or closed. Parameters are in a hashmap:\n\ttitle: title of the tiddler where the popup details are stored\n\tdomNode: dom node to which the popup will be positioned\n\twiki: wiki\n\tforce: if specified, forces the popup state to true or false (instead of toggling it)\n*/\nPopup.prototype.triggerPopup = function(options) {\n\t// Check if this popup is already active\n\tvar index = this.findPopup(options.title);\n\t// Compute the new state\n\tvar state = index === -1;\n\tif(options.force !== undefined) {\n\t\tstate = options.force;\n\t}\n\t// Show or cancel the popup according to the new state\n\tif(state) {\n\t\tthis.show(options);\n\t} else {\n\t\tthis.cancel(index);\n\t}\n};\n\nPopup.prototype.findPopup = function(title) {\n\tvar index = -1;\n\tfor(var t=0; t<this.popups.length; t++) {\n\t\tif(this.popups[t].title === title) {\n\t\t\tindex = t;\n\t\t}\n\t}\n\treturn index;\n};\n\nPopup.prototype.handleEvent = function(event) {\n\tif(event.type === \"click\") {\n\t\t// Find out what was clicked on\n\t\tvar info = this.popupInfo(event.target),\n\t\t\tcancelLevel = info.popupLevel - 1;\n\t\t// Don't remove the level that was clicked on if we clicked on a handle\n\t\tif(info.isHandle) {\n\t\t\tcancelLevel++;\n\t\t}\n\t\t// Cancel\n\t\tthis.cancel(cancelLevel);\n\t}\n};\n\n/*\nFind the popup level containing a DOM node. Returns:\npopupLevel: count of the number of nested popups containing the specified element\nisHandle: true if the specified element is within a popup handle\n*/\nPopup.prototype.popupInfo = function(domNode) {\n\tvar isHandle = false,\n\t\tpopupCount = 0,\n\t\tnode = domNode;\n\t// First check ancestors to see if we're within a popup handle\n\twhile(node) {\n\t\tif($tw.utils.hasClass(node,\"tc-popup-handle\")) {\n\t\t\tisHandle = true;\n\t\t\tpopupCount++;\n\t\t}\n\t\tif($tw.utils.hasClass(node,\"tc-popup-keep\")) {\n\t\t\tisHandle = true;\n\t\t}\n\t\tnode = node.parentNode;\n\t}\n\t// Then count the number of ancestor popups\n\tnode = domNode;\n\twhile(node) {\n\t\tif($tw.utils.hasClass(node,\"tc-popup\")) {\n\t\t\tpopupCount++;\n\t\t}\n\t\tnode = node.parentNode;\n\t}\n\tvar info = {\n\t\tpopupLevel: popupCount,\n\t\tisHandle: isHandle\n\t};\n\treturn info;\n};\n\n/*\nDisplay a popup by adding it to the stack\n*/\nPopup.prototype.show = function(options) {\n\t// Find out what was clicked on\n\tvar info = this.popupInfo(options.domNode);\n\t// Cancel any higher level popups\n\tthis.cancel(info.popupLevel);\n\t// Store the popup details if not already there\n\tif(this.findPopup(options.title) === -1) {\n\t\tthis.popups.push({\n\t\t\ttitle: options.title,\n\t\t\twiki: options.wiki,\n\t\t\tdomNode: options.domNode\n\t\t});\n\t}\n\t// Set the state tiddler\n\toptions.wiki.setTextReference(options.title,\n\t\t\t\"(\" + options.domNode.offsetLeft + \",\" + options.domNode.offsetTop + \",\" + \n\t\t\t\toptions.domNode.offsetWidth + \",\" + options.domNode.offsetHeight + \")\");\n\t// Add the click handler if we have any popups\n\tif(this.popups.length > 0) {\n\t\tthis.rootElement.addEventListener(\"click\",this,true);\t\t\n\t}\n};\n\n/*\nCancel all popups at or above a specified level or DOM node\nlevel: popup level to cancel (0 cancels all popups)\n*/\nPopup.prototype.cancel = function(level) {\n\tvar numPopups = this.popups.length;\n\tlevel = Math.max(0,Math.min(level,numPopups));\n\tfor(var t=level; t<numPopups; t++) {\n\t\tvar popup = this.popups.pop();\n\t\tif(popup.title) {\n\t\t\tpopup.wiki.deleteTiddler(popup.title);\n\t\t}\n\t}\n\tif(this.popups.length === 0) {\n\t\tthis.rootElement.removeEventListener(\"click\",this,false);\n\t}\n};\n\n/*\nReturns true if the specified title and text identifies an active popup\n*/\nPopup.prototype.readPopupState = function(text) {\n\tvar popupLocationRegExp = /^\\((-?[0-9\\.E]+),(-?[0-9\\.E]+),(-?[0-9\\.E]+),(-?[0-9\\.E]+)\\)$/;\n\treturn popupLocationRegExp.test(text);\n};\n\nexports.Popup = Popup;\n\n})();\n", "title": "$:/core/modules/utils/dom/popup.js", "type": "application/javascript", "module-type": "utils" }, "$:/core/modules/utils/dom/scroller.js": { "text": "/*\\\ntitle: $:/core/modules/utils/dom/scroller.js\ntype: application/javascript\nmodule-type: utils\n\nModule that creates a $tw.utils.Scroller object prototype that manages scrolling in the browser\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nEvent handler for when the `tm-scroll` event hits the document body\n*/\nvar PageScroller = function() {\n\tthis.idRequestFrame = null;\n\tthis.requestAnimationFrame = window.requestAnimationFrame ||\n\t\twindow.webkitRequestAnimationFrame ||\n\t\twindow.mozRequestAnimationFrame ||\n\t\tfunction(callback) {\n\t\t\treturn window.setTimeout(callback, 1000/60);\n\t\t};\n\tthis.cancelAnimationFrame = window.cancelAnimationFrame ||\n\t\twindow.webkitCancelAnimationFrame ||\n\t\twindow.webkitCancelRequestAnimationFrame ||\n\t\twindow.mozCancelAnimationFrame ||\n\t\twindow.mozCancelRequestAnimationFrame ||\n\t\tfunction(id) {\n\t\t\twindow.clearTimeout(id);\n\t\t};\n};\n\nPageScroller.prototype.cancelScroll = function() {\n\tif(this.idRequestFrame) {\n\t\tthis.cancelAnimationFrame.call(window,this.idRequestFrame);\n\t\tthis.idRequestFrame = null;\n\t}\n};\n\n/*\nHandle an event\n*/\nPageScroller.prototype.handleEvent = function(event) {\n\tif(event.type === \"tm-scroll\") {\n\t\treturn this.scrollIntoView(event.target);\n\t}\n\treturn true;\n};\n\n/*\nHandle a scroll event hitting the page document\n*/\nPageScroller.prototype.scrollIntoView = function(element) {\n\tvar duration = $tw.utils.getAnimationDuration();\n\t// Now get ready to scroll the body\n\tthis.cancelScroll();\n\tthis.startTime = Date.now();\n\tvar scrollPosition = $tw.utils.getScrollPosition();\n\t// Get the client bounds of the element and adjust by the scroll position\n\tvar clientBounds = element.getBoundingClientRect(),\n\t\tbounds = {\n\t\t\tleft: clientBounds.left + scrollPosition.x,\n\t\t\ttop: clientBounds.top + scrollPosition.y,\n\t\t\twidth: clientBounds.width,\n\t\t\theight: clientBounds.height\n\t\t};\n\t// We'll consider the horizontal and vertical scroll directions separately via this function\n\t// targetPos/targetSize - position and size of the target element\n\t// currentPos/currentSize - position and size of the current scroll viewport\n\t// returns: new position of the scroll viewport\n\tvar getEndPos = function(targetPos,targetSize,currentPos,currentSize) {\n\t\t\tvar newPos = currentPos;\n\t\t\t// If the target is above/left of the current view, then scroll to it's top/left\n\t\t\tif(targetPos <= currentPos) {\n\t\t\t\tnewPos = targetPos;\n\t\t\t// If the target is smaller than the window and the scroll position is too far up, then scroll till the target is at the bottom of the window\n\t\t\t} else if(targetSize < currentSize && currentPos < (targetPos + targetSize - currentSize)) {\n\t\t\t\tnewPos = targetPos + targetSize - currentSize;\n\t\t\t// If the target is big, then just scroll to the top\n\t\t\t} else if(currentPos < targetPos) {\n\t\t\t\tnewPos = targetPos;\n\t\t\t// Otherwise, stay where we are\n\t\t\t} else {\n\t\t\t\tnewPos = currentPos;\n\t\t\t}\n\t\t\t// If we are scrolling within 50 pixels of the top/left then snap to zero\n\t\t\tif(newPos < 50) {\n\t\t\t\tnewPos = 0;\n\t\t\t}\n\t\t\treturn newPos;\n\t\t},\n\t\tendX = getEndPos(bounds.left,bounds.width,scrollPosition.x,window.innerWidth),\n\t\tendY = getEndPos(bounds.top,bounds.height,scrollPosition.y,window.innerHeight);\n\t// Only scroll if the position has changed\n\tif(endX !== scrollPosition.x || endY !== scrollPosition.y) {\n\t\tvar self = this,\n\t\t\tdrawFrame;\n\t\tdrawFrame = function () {\n\t\t\tvar t;\n\t\t\tif(duration <= 0) {\n\t\t\t\tt = 1;\n\t\t\t} else {\n\t\t\t\tt = ((Date.now()) - self.startTime) / duration;\t\n\t\t\t}\n\t\t\tif(t >= 1) {\n\t\t\t\tself.cancelScroll();\n\t\t\t\tt = 1;\n\t\t\t}\n\t\t\tt = $tw.utils.slowInSlowOut(t);\n\t\t\twindow.scrollTo(scrollPosition.x + (endX - scrollPosition.x) * t,scrollPosition.y + (endY - scrollPosition.y) * t);\n\t\t\tif(t < 1) {\n\t\t\t\tself.idRequestFrame = self.requestAnimationFrame.call(window,drawFrame);\n\t\t\t}\n\t\t};\n\t\tdrawFrame();\n\t}\n};\n\nexports.PageScroller = PageScroller;\n\n})();\n", "title": "$:/core/modules/utils/dom/scroller.js", "type": "application/javascript", "module-type": "utils" }, "$:/core/modules/utils/edition-info.js": { "text": "/*\\\ntitle: $:/core/modules/utils/edition-info.js\ntype: application/javascript\nmodule-type: utils-node\n\nInformation about the available editions\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar fs = require(\"fs\"),\n\tpath = require(\"path\");\n\nvar editionInfo;\n\nexports.getEditionInfo = function() {\n\tif(!editionInfo) {\n\t\t// Enumerate the edition paths\n\t\tvar editionPaths = $tw.getLibraryItemSearchPaths($tw.config.editionsPath,$tw.config.editionsEnvVar);\n\t\teditionInfo = {};\n\t\tfor(var editionIndex=0; editionIndex<editionPaths.length; editionIndex++) {\n\t\t\tvar editionPath = editionPaths[editionIndex];\n\t\t\t// Enumerate the folders\n\t\t\tvar entries = fs.readdirSync(editionPath);\n\t\t\tfor(var entryIndex=0; entryIndex<entries.length; entryIndex++) {\n\t\t\t\tvar entry = entries[entryIndex];\n\t\t\t\t// Check if directories have a valid tiddlywiki.info\n\t\t\t\tif(!editionInfo[entry] && $tw.utils.isDirectory(path.resolve(editionPath,entry))) {\n\t\t\t\t\tvar info;\n\t\t\t\t\ttry {\n\t\t\t\t\t\tinfo = JSON.parse(fs.readFileSync(path.resolve(editionPath,entry,\"tiddlywiki.info\"),\"utf8\"));\n\t\t\t\t\t} catch(ex) {\n\t\t\t\t\t}\n\t\t\t\t\tif(info) {\n\t\t\t\t\t\teditionInfo[entry] = info;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn editionInfo;\n};\n\n})();\n", "title": "$:/core/modules/utils/edition-info.js", "type": "application/javascript", "module-type": "utils-node" }, "$:/core/modules/utils/fakedom.js": { "text": "/*\\\ntitle: $:/core/modules/utils/fakedom.js\ntype: application/javascript\nmodule-type: global\n\nA barebones implementation of DOM interfaces needed by the rendering mechanism.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n// Sequence number used to enable us to track objects for testing\nvar sequenceNumber = null;\n\nvar bumpSequenceNumber = function(object) {\n\tif(sequenceNumber !== null) {\n\t\tobject.sequenceNumber = sequenceNumber++;\n\t}\n};\n\nvar TW_TextNode = function(text) {\n\tbumpSequenceNumber(this);\n\tthis.textContent = text;\n};\n\nObject.defineProperty(TW_TextNode.prototype, \"nodeType\", {\n\tget: function() {\n\t\treturn 3;\n\t}\n});\n\nObject.defineProperty(TW_TextNode.prototype, \"formattedTextContent\", {\n\tget: function() {\n\t\treturn this.textContent.replace(/(\\r?\\n)/g,\"\");\n\t}\n});\n\nvar TW_Element = function(tag,namespace) {\n\tbumpSequenceNumber(this);\n\tthis.isTiddlyWikiFakeDom = true;\n\tthis.tag = tag;\n\tthis.attributes = {};\n\tthis.isRaw = false;\n\tthis.children = [];\n\tthis.style = {};\n\tthis.namespaceURI = namespace || \"http://www.w3.org/1999/xhtml\";\n};\n\nObject.defineProperty(TW_Element.prototype, \"nodeType\", {\n\tget: function() {\n\t\treturn 1;\n\t}\n});\n\nTW_Element.prototype.getAttribute = function(name) {\n\tif(this.isRaw) {\n\t\tthrow \"Cannot getAttribute on a raw TW_Element\";\n\t}\n\treturn this.attributes[name];\n};\n\nTW_Element.prototype.setAttribute = function(name,value) {\n\tif(this.isRaw) {\n\t\tthrow \"Cannot setAttribute on a raw TW_Element\";\n\t}\n\tthis.attributes[name] = value;\n};\n\nTW_Element.prototype.setAttributeNS = function(namespace,name,value) {\n\tthis.setAttribute(name,value);\n};\n\nTW_Element.prototype.removeAttribute = function(name) {\n\tif(this.isRaw) {\n\t\tthrow \"Cannot removeAttribute on a raw TW_Element\";\n\t}\n\tif($tw.utils.hop(this.attributes,name)) {\n\t\tdelete this.attributes[name];\n\t}\n};\n\nTW_Element.prototype.appendChild = function(node) {\n\tthis.children.push(node);\n\tnode.parentNode = this;\n};\n\nTW_Element.prototype.insertBefore = function(node,nextSibling) {\n\tif(nextSibling) {\n\t\tvar p = this.children.indexOf(nextSibling);\n\t\tif(p !== -1) {\n\t\t\tthis.children.splice(p,0,node);\n\t\t\tnode.parentNode = this;\n\t\t} else {\n\t\t\tthis.appendChild(node);\n\t\t}\n\t} else {\n\t\tthis.appendChild(node);\n\t}\n};\n\nTW_Element.prototype.removeChild = function(node) {\n\tvar p = this.children.indexOf(node);\n\tif(p !== -1) {\n\t\tthis.children.splice(p,1);\n\t}\n};\n\nTW_Element.prototype.hasChildNodes = function() {\n\treturn !!this.children.length;\n};\n\nObject.defineProperty(TW_Element.prototype, \"childNodes\", {\n\tget: function() {\n\t\treturn this.children;\n\t}\n});\n\nObject.defineProperty(TW_Element.prototype, \"firstChild\", {\n\tget: function() {\n\t\treturn this.children[0];\n\t}\n});\n\nTW_Element.prototype.addEventListener = function(type,listener,useCapture) {\n\t// Do nothing\n};\n\nObject.defineProperty(TW_Element.prototype, \"tagName\", {\n\tget: function() {\n\t\treturn this.tag || \"\";\n\t}\n});\n\nObject.defineProperty(TW_Element.prototype, \"className\", {\n\tget: function() {\n\t\treturn this.attributes[\"class\"] || \"\";\n\t},\n\tset: function(value) {\n\t\tthis.attributes[\"class\"] = value;\n\t}\n});\n\nObject.defineProperty(TW_Element.prototype, \"value\", {\n\tget: function() {\n\t\treturn this.attributes.value || \"\";\n\t},\n\tset: function(value) {\n\t\tthis.attributes.value = value;\n\t}\n});\n\nObject.defineProperty(TW_Element.prototype, \"outerHTML\", {\n\tget: function() {\n\t\tvar output = [],attr,a,v;\n\t\toutput.push(\"<\",this.tag);\n\t\tif(this.attributes) {\n\t\t\tattr = [];\n\t\t\tfor(a in this.attributes) {\n\t\t\t\tattr.push(a);\n\t\t\t}\n\t\t\tattr.sort();\n\t\t\tfor(a=0; a<attr.length; a++) {\n\t\t\t\tv = this.attributes[attr[a]];\n\t\t\t\tif(v !== undefined) {\n\t\t\t\t\toutput.push(\" \",attr[a],\"=\\\"\",$tw.utils.htmlEncode(v),\"\\\"\");\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tif(this.style) {\n\t\t\tvar style = [];\n\t\t\tfor(var s in this.style) {\n\t\t\t\tstyle.push(s + \":\" + this.style[s] + \";\");\n\t\t\t}\n\t\t\tif(style.length > 0) {\n\t\t\t\toutput.push(\" style=\\\"\",style.join(\"\"),\"\\\"\")\n\t\t\t}\n\t\t}\n\t\toutput.push(\">\");\n\t\tif($tw.config.htmlVoidElements.indexOf(this.tag) === -1) {\n\t\t\toutput.push(this.innerHTML);\n\t\t\toutput.push(\"</\",this.tag,\">\");\n\t\t}\n\t\treturn output.join(\"\");\n\t}\n});\n\nObject.defineProperty(TW_Element.prototype, \"innerHTML\", {\n\tget: function() {\n\t\tif(this.isRaw) {\n\t\t\treturn this.rawHTML;\n\t\t} else {\n\t\t\tvar b = [];\n\t\t\t$tw.utils.each(this.children,function(node) {\n\t\t\t\tif(node instanceof TW_Element) {\n\t\t\t\t\tb.push(node.outerHTML);\n\t\t\t\t} else if(node instanceof TW_TextNode) {\n\t\t\t\t\tb.push($tw.utils.htmlEncode(node.textContent));\n\t\t\t\t}\n\t\t\t});\n\t\t\treturn b.join(\"\");\n\t\t}\n\t},\n\tset: function(value) {\n\t\tthis.isRaw = true;\n\t\tthis.rawHTML = value;\n\t}\n});\n\nObject.defineProperty(TW_Element.prototype, \"textContent\", {\n\tget: function() {\n\t\tif(this.isRaw) {\n\t\t\tthrow \"Cannot get textContent on a raw TW_Element\";\n\t\t} else {\n\t\t\tvar b = [];\n\t\t\t$tw.utils.each(this.children,function(node) {\n\t\t\t\tb.push(node.textContent);\n\t\t\t});\n\t\t\treturn b.join(\"\");\n\t\t}\n\t},\n\tset: function(value) {\n\t\tthis.children = [new TW_TextNode(value)];\n\t}\n});\n\nObject.defineProperty(TW_Element.prototype, \"formattedTextContent\", {\n\tget: function() {\n\t\tif(this.isRaw) {\n\t\t\tthrow \"Cannot get formattedTextContent on a raw TW_Element\";\n\t\t} else {\n\t\t\tvar b = [],\n\t\t\t\tisBlock = $tw.config.htmlBlockElements.indexOf(this.tag) !== -1;\n\t\t\tif(isBlock) {\n\t\t\t\tb.push(\"\\n\");\n\t\t\t}\n\t\t\tif(this.tag === \"li\") {\n\t\t\t\tb.push(\"* \");\n\t\t\t}\n\t\t\t$tw.utils.each(this.children,function(node) {\n\t\t\t\tb.push(node.formattedTextContent);\n\t\t\t});\n\t\t\tif(isBlock) {\n\t\t\t\tb.push(\"\\n\");\n\t\t\t}\n\t\t\treturn b.join(\"\");\n\t\t}\n\t}\n});\n\nvar document = {\n\tsetSequenceNumber: function(value) {\n\t\tsequenceNumber = value;\n\t},\n\tcreateElementNS: function(namespace,tag) {\n\t\treturn new TW_Element(tag,namespace);\n\t},\n\tcreateElement: function(tag) {\n\t\treturn new TW_Element(tag);\n\t},\n\tcreateTextNode: function(text) {\n\t\treturn new TW_TextNode(text);\n\t},\n\tcompatMode: \"CSS1Compat\", // For KaTeX to know that we're not a browser in quirks mode\n\tisTiddlyWikiFakeDom: true\n};\n\nexports.fakeDocument = document;\n\n})();\n", "title": "$:/core/modules/utils/fakedom.js", "type": "application/javascript", "module-type": "global" }, "$:/core/modules/utils/filesystem.js": { "text": "/*\\\ntitle: $:/core/modules/utils/filesystem.js\ntype: application/javascript\nmodule-type: utils-node\n\nFile system utilities\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar fs = require(\"fs\"),\n\tpath = require(\"path\");\n\n/*\nRecursively (and synchronously) copy a directory and all its content\n*/\nexports.copyDirectory = function(srcPath,dstPath) {\n\t// Remove any trailing path separators\n\tsrcPath = $tw.utils.removeTrailingSeparator(srcPath);\n\tdstPath = $tw.utils.removeTrailingSeparator(dstPath);\n\t// Create the destination directory\n\tvar err = $tw.utils.createDirectory(dstPath);\n\tif(err) {\n\t\treturn err;\n\t}\n\t// Function to copy a folder full of files\n\tvar copy = function(srcPath,dstPath) {\n\t\tvar srcStats = fs.lstatSync(srcPath),\n\t\t\tdstExists = fs.existsSync(dstPath);\n\t\tif(srcStats.isFile()) {\n\t\t\t$tw.utils.copyFile(srcPath,dstPath);\n\t\t} else if(srcStats.isDirectory()) {\n\t\t\tvar items = fs.readdirSync(srcPath);\n\t\t\tfor(var t=0; t<items.length; t++) {\n\t\t\t\tvar item = items[t],\n\t\t\t\t\terr = copy(srcPath + path.sep + item,dstPath + path.sep + item);\n\t\t\t\tif(err) {\n\t\t\t\t\treturn err;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t};\n\tcopy(srcPath,dstPath);\n\treturn null;\n};\n\n/*\nCopy a file\n*/\nvar FILE_BUFFER_LENGTH = 64 * 1024,\n\tfileBuffer;\n\nexports.copyFile = function(srcPath,dstPath) {\n\t// Create buffer if required\n\tif(!fileBuffer) {\n\t\tfileBuffer = new Buffer(FILE_BUFFER_LENGTH);\n\t}\n\t// Create any directories in the destination\n\t$tw.utils.createDirectory(path.dirname(dstPath));\n\t// Copy the file\n\tvar srcFile = fs.openSync(srcPath,\"r\"),\n\t\tdstFile = fs.openSync(dstPath,\"w\"),\n\t\tbytesRead = 1,\n\t\tpos = 0;\n\twhile (bytesRead > 0) {\n\t\tbytesRead = fs.readSync(srcFile,fileBuffer,0,FILE_BUFFER_LENGTH,pos);\n\t\tfs.writeSync(dstFile,fileBuffer,0,bytesRead);\n\t\tpos += bytesRead;\n\t}\n\tfs.closeSync(srcFile);\n\tfs.closeSync(dstFile);\n\treturn null;\n};\n\n/*\nRemove trailing path separator\n*/\nexports.removeTrailingSeparator = function(dirPath) {\n\tvar len = dirPath.length;\n\tif(dirPath.charAt(len-1) === path.sep) {\n\t\tdirPath = dirPath.substr(0,len-1);\n\t}\n\treturn dirPath;\n};\n\n/*\nRecursively create a directory\n*/\nexports.createDirectory = function(dirPath) {\n\tif(dirPath.substr(dirPath.length-1,1) !== path.sep) {\n\t\tdirPath = dirPath + path.sep;\n\t}\n\tvar pos = 1;\n\tpos = dirPath.indexOf(path.sep,pos);\n\twhile(pos !== -1) {\n\t\tvar subDirPath = dirPath.substr(0,pos);\n\t\tif(!$tw.utils.isDirectory(subDirPath)) {\n\t\t\ttry {\n\t\t\t\tfs.mkdirSync(subDirPath);\n\t\t\t} catch(e) {\n\t\t\t\treturn \"Error creating directory '\" + subDirPath + \"'\";\n\t\t\t}\n\t\t}\n\t\tpos = dirPath.indexOf(path.sep,pos + 1);\n\t}\n\treturn null;\n};\n\n/*\nRecursively create directories needed to contain a specified file\n*/\nexports.createFileDirectories = function(filePath) {\n\treturn $tw.utils.createDirectory(path.dirname(filePath));\n};\n\n/*\nRecursively delete a directory\n*/\nexports.deleteDirectory = function(dirPath) {\n\tif(fs.existsSync(dirPath)) {\n\t\tvar entries = fs.readdirSync(dirPath);\n\t\tfor(var entryIndex=0; entryIndex<entries.length; entryIndex++) {\n\t\t\tvar currPath = dirPath + path.sep + entries[entryIndex];\n\t\t\tif(fs.lstatSync(currPath).isDirectory()) {\n\t\t\t\t$tw.utils.deleteDirectory(currPath);\n\t\t\t} else {\n\t\t\t\tfs.unlinkSync(currPath);\n\t\t\t}\n\t\t}\n\tfs.rmdirSync(dirPath);\n\t}\n\treturn null;\n};\n\n/*\nCheck if a path identifies a directory\n*/\nexports.isDirectory = function(dirPath) {\n\treturn fs.existsSync(dirPath) && fs.statSync(dirPath).isDirectory();\n};\n\n/*\nCheck if a path identifies a directory that is empty\n*/\nexports.isDirectoryEmpty = function(dirPath) {\n\tif(!$tw.utils.isDirectory(dirPath)) {\n\t\treturn false;\n\t}\n\tvar files = fs.readdirSync(dirPath),\n\t\tempty = true;\n\t$tw.utils.each(files,function(file,index) {\n\t\tif(file.charAt(0) !== \".\") {\n\t\t\tempty = false;\n\t\t}\n\t});\n\treturn empty;\n};\n\n/*\nRecursively delete a tree of empty directories\n*/\nexports.deleteEmptyDirs = function(dirpath,callback) {\n\tvar self = this;\n\tfs.readdir(dirpath,function(err,files) {\n\t\tif(err) {\n\t\t\treturn callback(err);\n\t\t}\n\t\tif(files.length > 0) {\n\t\t\treturn callback(null);\n\t\t}\n\t\tfs.rmdir(dirpath,function(err) {\n\t\t\tif(err) {\n\t\t\t\treturn callback(err);\n\t\t\t}\n\t\t\tself.deleteEmptyDirs(path.dirname(dirpath),callback);\n\t\t});\n\t});\n};\n\n})();\n", "title": "$:/core/modules/utils/filesystem.js", "type": "application/javascript", "module-type": "utils-node" }, "$:/core/modules/utils/logger.js": { "text": "/*\\\ntitle: $:/core/modules/utils/logger.js\ntype: application/javascript\nmodule-type: utils\n\nA basic logging implementation\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar ALERT_TAG = \"$:/tags/Alert\";\n\n/*\nMake a new logger\n*/\nfunction Logger(componentName) {\n\tthis.componentName = componentName || \"\";\n}\n\n/*\nLog a message\n*/\nLogger.prototype.log = function(/* args */) {\n\tif(console !== undefined && console.log !== undefined) {\n\t\treturn Function.apply.call(console.log, console, [this.componentName + \":\"].concat(Array.prototype.slice.call(arguments,0)));\n\t}\n};\n\n/*\nAlert a message\n*/\nLogger.prototype.alert = function(/* args */) {\n\t// Prepare the text of the alert\n\tvar text = Array.prototype.join.call(arguments,\" \");\n\t// Create alert tiddlers in the browser\n\tif($tw.browser) {\n\t\t// Check if there is an existing alert with the same text and the same component\n\t\tvar existingAlerts = $tw.wiki.getTiddlersWithTag(ALERT_TAG),\n\t\t\talertFields,\n\t\t\texistingCount,\n\t\t\tself = this;\n\t\t$tw.utils.each(existingAlerts,function(title) {\n\t\t\tvar tiddler = $tw.wiki.getTiddler(title);\n\t\t\tif(tiddler.fields.text === text && tiddler.fields.component === self.componentName && tiddler.fields.modified && (!alertFields || tiddler.fields.modified < alertFields.modified)) {\n\t\t\t\t\talertFields = $tw.utils.extend({},tiddler.fields);\n\t\t\t}\n\t\t});\n\t\tif(alertFields) {\n\t\t\texistingCount = alertFields.count || 1;\n\t\t} else {\n\t\t\talertFields = {\n\t\t\t\ttitle: $tw.wiki.generateNewTitle(\"$:/temp/alerts/alert\",{prefix: \"\"}),\n\t\t\t\ttext: text,\n\t\t\t\ttags: [ALERT_TAG],\n\t\t\t\tcomponent: this.componentName\n\t\t\t};\n\t\t\texistingCount = 0;\n\t\t}\n\t\talertFields.modified = new Date();\n\t\tif(++existingCount > 1) {\n\t\t\talertFields.count = existingCount;\n\t\t} else {\n\t\t\talertFields.count = undefined;\n\t\t}\n\t\t$tw.wiki.addTiddler(new $tw.Tiddler(alertFields));\n\t\t// Log the alert as well\n\t\tthis.log.apply(this,Array.prototype.slice.call(arguments,0));\n\t} else {\n\t\t// Print an orange message to the console if not in the browser\n\t\tconsole.error(\"\\x1b[1;33m\" + text + \"\\x1b[0m\");\n\t}\n};\n\nexports.Logger = Logger;\n\n})();\n", "title": "$:/core/modules/utils/logger.js", "type": "application/javascript", "module-type": "utils" }, "$:/core/modules/utils/parsetree.js": { "text": "/*\\\ntitle: $:/core/modules/utils/parsetree.js\ntype: application/javascript\nmodule-type: utils\n\nParse tree utility functions.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.addAttributeToParseTreeNode = function(node,name,value) {\n\tnode.attributes = node.attributes || {};\n\tnode.attributes[name] = {type: \"string\", value: value};\n};\n\nexports.getAttributeValueFromParseTreeNode = function(node,name,defaultValue) {\n\tif(node.attributes && node.attributes[name] && node.attributes[name].value !== undefined) {\n\t\treturn node.attributes[name].value;\n\t}\n\treturn defaultValue;\n};\n\nexports.addClassToParseTreeNode = function(node,classString) {\n\tvar classes = [];\n\tnode.attributes = node.attributes || {};\n\tnode.attributes[\"class\"] = node.attributes[\"class\"] || {type: \"string\", value: \"\"};\n\tif(node.attributes[\"class\"].type === \"string\") {\n\t\tif(node.attributes[\"class\"].value !== \"\") {\n\t\t\tclasses = node.attributes[\"class\"].value.split(\" \");\n\t\t}\n\t\tif(classString !== \"\") {\n\t\t\t$tw.utils.pushTop(classes,classString.split(\" \"));\n\t\t}\n\t\tnode.attributes[\"class\"].value = classes.join(\" \");\n\t}\n};\n\nexports.addStyleToParseTreeNode = function(node,name,value) {\n\t\tnode.attributes = node.attributes || {};\n\t\tnode.attributes.style = node.attributes.style || {type: \"string\", value: \"\"};\n\t\tif(node.attributes.style.type === \"string\") {\n\t\t\tnode.attributes.style.value += name + \":\" + value + \";\";\n\t\t}\n};\n\nexports.findParseTreeNode = function(nodeArray,search) {\n\tfor(var t=0; t<nodeArray.length; t++) {\n\t\tif(nodeArray[t].type === search.type && nodeArray[t].tag === search.tag) {\n\t\t\treturn nodeArray[t];\n\t\t}\n\t}\n\treturn undefined;\n};\n\n/*\nHelper to get the text of a parse tree node or array of nodes\n*/\nexports.getParseTreeText = function getParseTreeText(tree) {\n\tvar output = [];\n\tif($tw.utils.isArray(tree)) {\n\t\t$tw.utils.each(tree,function(node) {\n\t\t\toutput.push(getParseTreeText(node));\n\t\t});\n\t} else {\n\t\tif(tree.type === \"text\") {\n\t\t\toutput.push(tree.text);\n\t\t}\n\t\tif(tree.children) {\n\t\t\treturn getParseTreeText(tree.children);\n\t\t}\n\t}\n\treturn output.join(\"\");\n};\n\n})();\n", "title": "$:/core/modules/utils/parsetree.js", "type": "application/javascript", "module-type": "utils" }, "$:/core/modules/utils/performance.js": { "text": "/*\\\ntitle: $:/core/modules/utils/performance.js\ntype: application/javascript\nmodule-type: global\n\nPerformance measurement.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nfunction Performance(enabled) {\n\tthis.enabled = !!enabled;\n\tthis.measures = {}; // Hashmap of current values of measurements\n\tthis.logger = new $tw.utils.Logger(\"performance\");\n}\n\n/*\nWrap performance reporting around a top level function\n*/\nPerformance.prototype.report = function(name,fn) {\n\tvar self = this;\n\tif(this.enabled) {\n\t\treturn function() {\n\t\t\tself.measures = {};\n\t\t\tvar startTime = $tw.utils.timer(),\n\t\t\t\tresult = fn.apply(this,arguments);\n\t\t\tself.logger.log(name + \": \" + $tw.utils.timer(startTime).toFixed(2) + \"ms\");\n\t\t\tfor(var m in self.measures) {\n\t\t\t\tself.logger.log(\"+\" + m + \": \" + self.measures[m].toFixed(2) + \"ms\");\n\t\t\t}\n\t\t\treturn result;\n\t\t};\n\t} else {\n\t\treturn fn;\n\t}\n};\n\n/*\nWrap performance measurements around a subfunction\n*/\nPerformance.prototype.measure = function(name,fn) {\n\tvar self = this;\n\tif(this.enabled) {\n\t\treturn function() {\n\t\t\tvar startTime = $tw.utils.timer(),\n\t\t\t\tresult = fn.apply(this,arguments),\n\t\t\t\tvalue = self.measures[name] || 0;\n\t\t\tself.measures[name] = value + $tw.utils.timer(startTime);\n\t\t\treturn result;\n\t\t};\n\t} else {\n\t\treturn fn;\n\t}\n};\n\nexports.Performance = Performance;\n\n})();\n", "title": "$:/core/modules/utils/performance.js", "type": "application/javascript", "module-type": "global" }, "$:/core/modules/utils/pluginmaker.js": { "text": "/*\\\ntitle: $:/core/modules/utils/pluginmaker.js\ntype: application/javascript\nmodule-type: utils\n\nA quick and dirty way to pack up plugins within the browser.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nRepack a plugin, and then delete any non-shadow payload tiddlers\n*/\nexports.repackPlugin = function(title,additionalTiddlers,excludeTiddlers) {\n\tadditionalTiddlers = additionalTiddlers || [];\n\texcludeTiddlers = excludeTiddlers || [];\n\t// Get the plugin tiddler\n\tvar pluginTiddler = $tw.wiki.getTiddler(title);\n\tif(!pluginTiddler) {\n\t\tthrow \"No such tiddler as \" + title;\n\t}\n\t// Extract the JSON\n\tvar jsonPluginTiddler;\n\ttry {\n\t\tjsonPluginTiddler = JSON.parse(pluginTiddler.fields.text);\n\t} catch(e) {\n\t\tthrow \"Cannot parse plugin tiddler \" + title + \"\\n\" + $tw.language.getString(\"Error/Caption\") + \": \" + e;\n\t}\n\t// Get the list of tiddlers\n\tvar tiddlers = Object.keys(jsonPluginTiddler.tiddlers);\n\t// Add the additional tiddlers\n\t$tw.utils.pushTop(tiddlers,additionalTiddlers);\n\t// Remove any excluded tiddlers\n\tfor(var t=tiddlers.length-1; t>=0; t--) {\n\t\tif(excludeTiddlers.indexOf(tiddlers[t]) !== -1) {\n\t\t\ttiddlers.splice(t,1);\n\t\t}\n\t}\n\t// Pack up the tiddlers into a block of JSON\n\tvar plugins = {};\n\t$tw.utils.each(tiddlers,function(title) {\n\t\tvar tiddler = $tw.wiki.getTiddler(title),\n\t\t\tfields = {};\n\t\t$tw.utils.each(tiddler.fields,function (value,name) {\n\t\t\tfields[name] = tiddler.getFieldString(name);\n\t\t});\n\t\tplugins[title] = fields;\n\t});\n\t// Retrieve and bump the version number\n\tvar pluginVersion = $tw.utils.parseVersion(pluginTiddler.getFieldString(\"version\") || \"0.0.0\") || {\n\t\t\tmajor: \"0\",\n\t\t\tminor: \"0\",\n\t\t\tpatch: \"0\"\n\t\t};\n\tpluginVersion.patch++;\n\tvar version = pluginVersion.major + \".\" + pluginVersion.minor + \".\" + pluginVersion.patch;\n\tif(pluginVersion.prerelease) {\n\t\tversion += \"-\" + pluginVersion.prerelease;\n\t}\n\tif(pluginVersion.build) {\n\t\tversion += \"+\" + pluginVersion.build;\n\t}\n\t// Save the tiddler\n\t$tw.wiki.addTiddler(new $tw.Tiddler(pluginTiddler,{text: JSON.stringify({tiddlers: plugins},null,4), version: version}));\n\t// Delete any non-shadow constituent tiddlers\n\t$tw.utils.each(tiddlers,function(title) {\n\t\tif($tw.wiki.tiddlerExists(title)) {\n\t\t\t$tw.wiki.deleteTiddler(title);\n\t\t}\n\t});\n\t// Trigger an autosave\n\t$tw.rootWidget.dispatchEvent({type: \"tm-auto-save-wiki\"});\n\t// Return a heartwarming confirmation\n\treturn \"Plugin \" + title + \" successfully saved\";\n};\n\n})();\n", "title": "$:/core/modules/utils/pluginmaker.js", "type": "application/javascript", "module-type": "utils" }, "$:/core/modules/utils/utils.js": { "text": "/*\\\ntitle: $:/core/modules/utils/utils.js\ntype: application/javascript\nmodule-type: utils\n\nVarious static utility functions.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nDisplay a warning, in colour if we're on a terminal\n*/\nexports.warning = function(text) {\n\tconsole.log($tw.node ? \"\\x1b[1;33m\" + text + \"\\x1b[0m\" : text);\n};\n\n/*\nRepeats a string\n*/\nexports.repeat = function(str,count) {\n\tvar result = \"\";\n\tfor(var t=0;t<count;t++) {\n\t\tresult += str;\n\t}\n\treturn result;\n};\n\n/*\nTrim whitespace from the start and end of a string\nThanks to Steven Levithan, http://blog.stevenlevithan.com/archives/faster-trim-javascript\n*/\nexports.trim = function(str) {\n\tif(typeof str === \"string\") {\n\t\treturn str.replace(/^\\s\\s*/, '').replace(/\\s\\s*$/, '');\n\t} else {\n\t\treturn str;\n\t}\n};\n\n/*\nFind the line break preceding a given position in a string\nReturns position immediately after that line break, or the start of the string\n*/\nexports.findPrecedingLineBreak = function(text,pos) {\n\tvar result = text.lastIndexOf(\"\\n\",pos - 1);\n\tif(result === -1) {\n\t\tresult = 0;\n\t} else {\n\t\tresult++;\n\t\tif(text.charAt(result) === \"\\r\") {\n\t\t\tresult++;\n\t\t}\n\t}\n\treturn result;\n};\n\n/*\nFind the line break following a given position in a string\n*/\nexports.findFollowingLineBreak = function(text,pos) {\n\t// Cut to just past the following line break, or to the end of the text\n\tvar result = text.indexOf(\"\\n\",pos);\n\tif(result === -1) {\n\t\tresult = text.length;\n\t} else {\n\t\tif(text.charAt(result) === \"\\r\") {\n\t\t\tresult++;\n\t\t}\n\t}\n\treturn result;\n};\n\n/*\nReturn the number of keys in an object\n*/\nexports.count = function(object) {\n\treturn Object.keys(object || {}).length;\n};\n\n/*\nCheck if an array is equal by value and by reference.\n*/\nexports.isArrayEqual = function(array1,array2) {\n\tif(array1 === array2) {\n\t\treturn true;\n\t}\n\tarray1 = array1 || [];\n\tarray2 = array2 || [];\n\tif(array1.length !== array2.length) {\n\t\treturn false;\n\t}\n\treturn array1.every(function(value,index) {\n\t\treturn value === array2[index];\n\t});\n};\n\n/*\nPush entries onto an array, removing them first if they already exist in the array\n\tarray: array to modify (assumed to be free of duplicates)\n\tvalue: a single value to push or an array of values to push\n*/\nexports.pushTop = function(array,value) {\n\tvar t,p;\n\tif($tw.utils.isArray(value)) {\n\t\t// Remove any array entries that are duplicated in the new values\n\t\tif(value.length !== 0) {\n\t\t\tif(array.length !== 0) {\n\t\t\t\tif(value.length < array.length) {\n\t\t\t\t\tfor(t=0; t<value.length; t++) {\n\t\t\t\t\t\tp = array.indexOf(value[t]);\n\t\t\t\t\t\tif(p !== -1) {\n\t\t\t\t\t\t\tarray.splice(p,1);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tfor(t=array.length-1; t>=0; t--) {\n\t\t\t\t\t\tp = value.indexOf(array[t]);\n\t\t\t\t\t\tif(p !== -1) {\n\t\t\t\t\t\t\tarray.splice(t,1);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\t// Push the values on top of the main array\n\t\t\tarray.push.apply(array,value);\n\t\t}\n\t} else {\n\t\tp = array.indexOf(value);\n\t\tif(p !== -1) {\n\t\t\tarray.splice(p,1);\n\t\t}\n\t\tarray.push(value);\n\t}\n\treturn array;\n};\n\n/*\nRemove entries from an array\n\tarray: array to modify\n\tvalue: a single value to remove, or an array of values to remove\n*/\nexports.removeArrayEntries = function(array,value) {\n\tvar t,p;\n\tif($tw.utils.isArray(value)) {\n\t\tfor(t=0; t<value.length; t++) {\n\t\t\tp = array.indexOf(value[t]);\n\t\t\tif(p !== -1) {\n\t\t\t\tarray.splice(p,1);\n\t\t\t}\n\t\t}\n\t} else {\n\t\tp = array.indexOf(value);\n\t\tif(p !== -1) {\n\t\t\tarray.splice(p,1);\n\t\t}\n\t}\n};\n\n/*\nCheck whether any members of a hashmap are present in another hashmap\n*/\nexports.checkDependencies = function(dependencies,changes) {\n\tvar hit = false;\n\t$tw.utils.each(changes,function(change,title) {\n\t\tif($tw.utils.hop(dependencies,title)) {\n\t\t\thit = true;\n\t\t}\n\t});\n\treturn hit;\n};\n\nexports.extend = function(object /* [, src] */) {\n\t$tw.utils.each(Array.prototype.slice.call(arguments, 1), function(source) {\n\t\tif(source) {\n\t\t\tfor(var property in source) {\n\t\t\t\tobject[property] = source[property];\n\t\t\t}\n\t\t}\n\t});\n\treturn object;\n};\n\nexports.deepCopy = function(object) {\n\tvar result,t;\n\tif($tw.utils.isArray(object)) {\n\t\t// Copy arrays\n\t\tresult = object.slice(0);\n\t} else if(typeof object === \"object\") {\n\t\tresult = {};\n\t\tfor(t in object) {\n\t\t\tif(object[t] !== undefined) {\n\t\t\t\tresult[t] = $tw.utils.deepCopy(object[t]);\n\t\t\t}\n\t\t}\n\t} else {\n\t\tresult = object;\n\t}\n\treturn result;\n};\n\nexports.extendDeepCopy = function(object,extendedProperties) {\n\tvar result = $tw.utils.deepCopy(object),t;\n\tfor(t in extendedProperties) {\n\t\tif(extendedProperties[t] !== undefined) {\n\t\t\tresult[t] = $tw.utils.deepCopy(extendedProperties[t]);\n\t\t}\n\t}\n\treturn result;\n};\n\nexports.deepFreeze = function deepFreeze(object) {\n\tvar property, key;\n\tObject.freeze(object);\n\tfor(key in object) {\n\t\tproperty = object[key];\n\t\tif($tw.utils.hop(object,key) && (typeof property === \"object\") && !Object.isFrozen(property)) {\n\t\t\tdeepFreeze(property);\n\t\t}\n\t}\n};\n\nexports.slowInSlowOut = function(t) {\n\treturn (1 - ((Math.cos(t * Math.PI) + 1) / 2));\n};\n\nexports.formatDateString = function(date,template) {\n\tvar result = \"\",\n\t\tt = template,\n\t\tmatches = [\n\t\t\t[/^0hh12/, function() {\n\t\t\t\treturn $tw.utils.pad($tw.utils.getHours12(date));\n\t\t\t}],\n\t\t\t[/^wYYYY/, function() {\n\t\t\t\treturn $tw.utils.getYearForWeekNo(date);\n\t\t\t}],\n\t\t\t[/^hh12/, function() {\n\t\t\t\treturn $tw.utils.getHours12(date);\n\t\t\t}],\n\t\t\t[/^DDth/, function() {\n\t\t\t\treturn date.getDate() + $tw.utils.getDaySuffix(date);\n\t\t\t}],\n\t\t\t[/^YYYY/, function() {\n\t\t\t\treturn date.getFullYear();\n\t\t\t}],\n\t\t\t[/^0hh/, function() {\n\t\t\t\treturn $tw.utils.pad(date.getHours());\n\t\t\t}],\n\t\t\t[/^0mm/, function() {\n\t\t\t\treturn $tw.utils.pad(date.getMinutes());\n\t\t\t}],\n\t\t\t[/^0ss/, function() {\n\t\t\t\treturn $tw.utils.pad(date.getSeconds());\n\t\t\t}],\n\t\t\t[/^0DD/, function() {\n\t\t\t\treturn $tw.utils.pad(date.getDate());\n\t\t\t}],\n\t\t\t[/^0MM/, function() {\n\t\t\t\treturn $tw.utils.pad(date.getMonth()+1);\n\t\t\t}],\n\t\t\t[/^0WW/, function() {\n\t\t\t\treturn $tw.utils.pad($tw.utils.getWeek(date));\n\t\t\t}],\n\t\t\t[/^ddd/, function() {\n\t\t\t\treturn $tw.language.getString(\"Date/Short/Day/\" + date.getDay());\n\t\t\t}],\n\t\t\t[/^mmm/, function() {\n\t\t\t\treturn $tw.language.getString(\"Date/Short/Month/\" + (date.getMonth() + 1));\n\t\t\t}],\n\t\t\t[/^DDD/, function() {\n\t\t\t\treturn $tw.language.getString(\"Date/Long/Day/\" + date.getDay());\n\t\t\t}],\n\t\t\t[/^MMM/, function() {\n\t\t\t\treturn $tw.language.getString(\"Date/Long/Month/\" + (date.getMonth() + 1));\n\t\t\t}],\n\t\t\t[/^TZD/, function() {\n\t\t\t\tvar tz = date.getTimezoneOffset(),\n\t\t\t\tatz = Math.abs(tz);\n\t\t\t\treturn (tz < 0 ? '+' : '-') + $tw.utils.pad(Math.floor(atz / 60)) + ':' + $tw.utils.pad(atz % 60);\n\t\t\t}],\n\t\t\t[/^wYY/, function() {\n\t\t\t\treturn $tw.utils.pad($tw.utils.getYearForWeekNo(date) - 2000);\n\t\t\t}],\n\t\t\t[/^[ap]m/, function() {\n\t\t\t\treturn $tw.utils.getAmPm(date).toLowerCase();\n\t\t\t}],\n\t\t\t[/^hh/, function() {\n\t\t\t\treturn date.getHours();\n\t\t\t}],\n\t\t\t[/^mm/, function() {\n\t\t\t\treturn date.getMinutes();\n\t\t\t}],\n\t\t\t[/^ss/, function() {\n\t\t\t\treturn date.getSeconds();\n\t\t\t}],\n\t\t\t[/^[AP]M/, function() {\n\t\t\t\treturn $tw.utils.getAmPm(date).toUpperCase();\n\t\t\t}],\n\t\t\t[/^DD/, function() {\n\t\t\t\treturn date.getDate();\n\t\t\t}],\n\t\t\t[/^MM/, function() {\n\t\t\t\treturn date.getMonth() + 1;\n\t\t\t}],\n\t\t\t[/^WW/, function() {\n\t\t\t\treturn $tw.utils.getWeek(date);\n\t\t\t}],\n\t\t\t[/^YY/, function() {\n\t\t\t\treturn $tw.utils.pad(date.getFullYear() - 2000);\n\t\t\t}]\n\t\t];\n\twhile(t.length){\n\t\tvar matchString = \"\";\n\t\t$tw.utils.each(matches, function(m) {\n\t\t\tvar match = m[0].exec(t);\n\t\t\tif(match) {\n\t\t\t\tmatchString = m[1].call();\n\t\t\t\tt = t.substr(match[0].length);\n\t\t\t\treturn false;\n\t\t\t}\n\t\t});\n\t\tif(matchString) {\n\t\t\tresult += matchString;\n\t\t} else {\n\t\t\tresult += t.charAt(0);\n\t\t\tt = t.substr(1);\n\t\t}\n\t}\n\tresult = result.replace(/\\\\(.)/g,\"$1\");\n\treturn result;\n};\n\nexports.getAmPm = function(date) {\n\treturn $tw.language.getString(\"Date/Period/\" + (date.getHours() >= 12 ? \"pm\" : \"am\"));\n};\n\nexports.getDaySuffix = function(date) {\n\treturn $tw.language.getString(\"Date/DaySuffix/\" + date.getDate());\n};\n\nexports.getWeek = function(date) {\n\tvar dt = new Date(date.getTime());\n\tvar d = dt.getDay();\n\tif(d === 0) {\n\t\td = 7; // JavaScript Sun=0, ISO Sun=7\n\t}\n\tdt.setTime(dt.getTime() + (4 - d) * 86400000);// shift day to Thurs of same week to calculate weekNo\n\tvar n = Math.floor((dt.getTime()-new Date(dt.getFullYear(),0,1) + 3600000) / 86400000);\n\treturn Math.floor(n / 7) + 1;\n};\n\nexports.getYearForWeekNo = function(date) {\n\tvar dt = new Date(date.getTime());\n\tvar d = dt.getDay();\n\tif(d === 0) {\n\t\td = 7; // JavaScript Sun=0, ISO Sun=7\n\t}\n\tdt.setTime(dt.getTime() + (4 - d) * 86400000);// shift day to Thurs of same week\n\treturn dt.getFullYear();\n};\n\nexports.getHours12 = function(date) {\n\tvar h = date.getHours();\n\treturn h > 12 ? h-12 : ( h > 0 ? h : 12 );\n};\n\n/*\nConvert a date delta in milliseconds into a string representation of \"23 seconds ago\", \"27 minutes ago\" etc.\n\tdelta: delta in milliseconds\nReturns an object with these members:\n\tdescription: string describing the delta period\n\tupdatePeriod: time in millisecond until the string will be inaccurate\n*/\nexports.getRelativeDate = function(delta) {\n\tvar futurep = false;\n\tif(delta < 0) {\n\t\tdelta = -1 * delta;\n\t\tfuturep = true;\n\t}\n\tvar units = [\n\t\t{name: \"Years\", duration: 365 * 24 * 60 * 60 * 1000},\n\t\t{name: \"Months\", duration: (365/12) * 24 * 60 * 60 * 1000},\n\t\t{name: \"Days\", duration: 24 * 60 * 60 * 1000},\n\t\t{name: \"Hours\", duration: 60 * 60 * 1000},\n\t\t{name: \"Minutes\", duration: 60 * 1000},\n\t\t{name: \"Seconds\", duration: 1000}\n\t];\n\tfor(var t=0; t<units.length; t++) {\n\t\tvar result = Math.floor(delta / units[t].duration);\n\t\tif(result >= 2) {\n\t\t\treturn {\n\t\t\t\tdelta: delta,\n\t\t\t\tdescription: $tw.language.getString(\n\t\t\t\t\t\"RelativeDate/\" + (futurep ? \"Future\" : \"Past\") + \"/\" + units[t].name,\n\t\t\t\t\t{variables:\n\t\t\t\t\t\t{period: result.toString()}\n\t\t\t\t\t}\n\t\t\t\t),\n\t\t\t\tupdatePeriod: units[t].duration\n\t\t\t};\n\t\t}\n\t}\n\treturn {\n\t\tdelta: delta,\n\t\tdescription: $tw.language.getString(\n\t\t\t\"RelativeDate/\" + (futurep ? \"Future\" : \"Past\") + \"/Second\",\n\t\t\t{variables:\n\t\t\t\t{period: \"1\"}\n\t\t\t}\n\t\t),\n\t\tupdatePeriod: 1000\n\t};\n};\n\n// Convert & to \"&\", < to \"<\", > to \">\", \" to \""\"\nexports.htmlEncode = function(s) {\n\tif(s) {\n\t\treturn s.toString().replace(/&/mg,\"&\").replace(/</mg,\"<\").replace(/>/mg,\">\").replace(/\\\"/mg,\""\");\n\t} else {\n\t\treturn \"\";\n\t}\n};\n\n// Converts all HTML entities to their character equivalents\nexports.entityDecode = function(s) {\n\tvar converter = String.fromCodePoint || String.fromCharCode,\n\t\te = s.substr(1,s.length-2); // Strip the & and the ;\n\tif(e.charAt(0) === \"#\") {\n\t\tif(e.charAt(1) === \"x\" || e.charAt(1) === \"X\") {\n\t\t\treturn converter(parseInt(e.substr(2),16));\t\n\t\t} else {\n\t\t\treturn converter(parseInt(e.substr(1),10));\n\t\t}\n\t} else {\n\t\tvar c = $tw.config.htmlEntities[e];\n\t\tif(c) {\n\t\t\treturn converter(c);\n\t\t} else {\n\t\t\treturn s; // Couldn't convert it as an entity, just return it raw\n\t\t}\n\t}\n};\n\nexports.unescapeLineBreaks = function(s) {\n\treturn s.replace(/\\\\n/mg,\"\\n\").replace(/\\\\b/mg,\" \").replace(/\\\\s/mg,\"\\\\\").replace(/\\r/mg,\"\");\n};\n\n/*\n * Returns an escape sequence for given character. Uses \\x for characters <=\n * 0xFF to save space, \\u for the rest.\n *\n * The code needs to be in sync with th code template in the compilation\n * function for \"action\" nodes.\n */\n// Copied from peg.js, thanks to David Majda\nexports.escape = function(ch) {\n\tvar charCode = ch.charCodeAt(0);\n\tif(charCode <= 0xFF) {\n\t\treturn '\\\\x' + $tw.utils.pad(charCode.toString(16).toUpperCase());\n\t} else {\n\t\treturn '\\\\u' + $tw.utils.pad(charCode.toString(16).toUpperCase(),4);\n\t}\n};\n\n// Turns a string into a legal JavaScript string\n// Copied from peg.js, thanks to David Majda\nexports.stringify = function(s) {\n\t/*\n\t* ECMA-262, 5th ed., 7.8.4: All characters may appear literally in a string\n\t* literal except for the closing quote character, backslash, carriage return,\n\t* line separator, paragraph separator, and line feed. Any character may\n\t* appear in the form of an escape sequence.\n\t*\n\t* For portability, we also escape all non-ASCII characters.\n\t*/\n\treturn (s || \"\")\n\t\t.replace(/\\\\/g, '\\\\\\\\') // backslash\n\t\t.replace(/\"/g, '\\\\\"') // double quote character\n\t\t.replace(/'/g, \"\\\\'\") // single quote character\n\t\t.replace(/\\r/g, '\\\\r') // carriage return\n\t\t.replace(/\\n/g, '\\\\n') // line feed\n\t\t.replace(/[\\x80-\\uFFFF]/g, exports.escape); // non-ASCII characters\n};\n\n/*\nEscape the RegExp special characters with a preceding backslash\n*/\nexports.escapeRegExp = function(s) {\n return s.replace(/[\\-\\/\\\\\\^\\$\\*\\+\\?\\.\\(\\)\\|\\[\\]\\{\\}]/g, '\\\\$&');\n};\n\n// Checks whether a link target is external, i.e. not a tiddler title\nexports.isLinkExternal = function(to) {\n\tvar externalRegExp = /^(?:file|http|https|mailto|ftp|irc|news|data|skype):[^\\s<>{}\\[\\]`|\"\\\\^~]+(?:\\/|\\b)$/i;\n\treturn externalRegExp.test(to);\n};\n\nexports.nextTick = function(fn) {\n/*global window: false */\n\tif(typeof process === \"undefined\") {\n\t\t// Apparently it would be faster to use postMessage - http://dbaron.org/log/20100309-faster-timeouts\n\t\twindow.setTimeout(fn,4);\n\t} else {\n\t\tprocess.nextTick(fn);\n\t}\n};\n\n/*\nConvert a hyphenated CSS property name into a camel case one\n*/\nexports.unHyphenateCss = function(propName) {\n\treturn propName.replace(/-([a-z])/gi, function(match0,match1) {\n\t\treturn match1.toUpperCase();\n\t});\n};\n\n/*\nConvert a camelcase CSS property name into a dashed one (\"backgroundColor\" --> \"background-color\")\n*/\nexports.hyphenateCss = function(propName) {\n\treturn propName.replace(/([A-Z])/g, function(match0,match1) {\n\t\treturn \"-\" + match1.toLowerCase();\n\t});\n};\n\n/*\nParse a text reference of one of these forms:\n* title\n* !!field\n* title!!field\n* title##index\n* etc\nReturns an object with the following fields, all optional:\n* title: tiddler title\n* field: tiddler field name\n* index: JSON property index\n*/\nexports.parseTextReference = function(textRef) {\n\t// Separate out the title, field name and/or JSON indices\n\tvar reTextRef = /(?:(.*?)!!(.+))|(?:(.*?)##(.+))|(.*)/mg,\n\t\tmatch = reTextRef.exec(textRef),\n\t\tresult = {};\n\tif(match && reTextRef.lastIndex === textRef.length) {\n\t\t// Return the parts\n\t\tif(match[1]) {\n\t\t\tresult.title = match[1];\n\t\t}\n\t\tif(match[2]) {\n\t\t\tresult.field = match[2];\n\t\t}\n\t\tif(match[3]) {\n\t\t\tresult.title = match[3];\n\t\t}\n\t\tif(match[4]) {\n\t\t\tresult.index = match[4];\n\t\t}\n\t\tif(match[5]) {\n\t\t\tresult.title = match[5];\n\t\t}\n\t} else {\n\t\t// If we couldn't parse it\n\t\tresult.title = textRef\n\t}\n\treturn result;\n};\n\n/*\nChecks whether a string is a valid fieldname\n*/\nexports.isValidFieldName = function(name) {\n\tif(!name || typeof name !== \"string\") {\n\t\treturn false;\n\t}\n\tname = name.toLowerCase().trim();\n\tvar fieldValidatorRegEx = /^[a-z0-9\\-\\._]+$/mg;\n\treturn fieldValidatorRegEx.test(name);\n};\n\n/*\nExtract the version number from the meta tag or from the boot file\n*/\n\n// Browser version\nexports.extractVersionInfo = function() {\n\tif($tw.packageInfo) {\n\t\treturn $tw.packageInfo.version;\n\t} else {\n\t\tvar metatags = document.getElementsByTagName(\"meta\");\n\t\tfor(var t=0; t<metatags.length; t++) {\n\t\t\tvar m = metatags[t];\n\t\t\tif(m.name === \"tiddlywiki-version\") {\n\t\t\t\treturn m.content;\n\t\t\t}\n\t\t}\n\t}\n\treturn null;\n};\n\n/*\nGet the animation duration in ms\n*/\nexports.getAnimationDuration = function() {\n\treturn parseInt($tw.wiki.getTiddlerText(\"$:/config/AnimationDuration\",\"400\"),10);\n};\n\n/*\nHash a string to a number\nDerived from http://stackoverflow.com/a/15710692\n*/\nexports.hashString = function(str) {\n\treturn str.split(\"\").reduce(function(a,b) {\n\t\ta = ((a << 5) - a) + b.charCodeAt(0);\n\t\treturn a & a;\n\t},0);\n};\n\n/*\nDecode a base64 string\n*/\nexports.base64Decode = function(string64) {\n\tif($tw.browser) {\n\t\t// TODO\n\t\tthrow \"$tw.utils.base64Decode() doesn't work in the browser\";\n\t} else {\n\t\treturn (new Buffer(string64,\"base64\")).toString();\n\t}\n};\n\n/*\nConvert a hashmap into a tiddler dictionary format sequence of name:value pairs\n*/\nexports.makeTiddlerDictionary = function(data) {\n\tvar output = [];\n\tfor(var name in data) {\n\t\toutput.push(name + \": \" + data[name]);\n\t}\n\treturn output.join(\"\\n\");\n};\n\n/*\nHigh resolution microsecond timer for profiling\n*/\nexports.timer = function(base) {\n\tvar m;\n\tif($tw.node) {\n\t\tvar r = process.hrtime();\t\t\n\t\tm = r[0] * 1e3 + (r[1] / 1e6);\n\t} else if(window.performance) {\n\t\tm = performance.now();\n\t} else {\n\t\tm = Date.now();\n\t}\n\tif(typeof base !== \"undefined\") {\n\t\tm = m - base;\n\t}\n\treturn m;\n};\n\n/*\nConvert text and content type to a data URI\n*/\nexports.makeDataUri = function(text,type) {\n\ttype = type || \"text/vnd.tiddlywiki\";\n\tvar typeInfo = $tw.config.contentTypeInfo[type] || $tw.config.contentTypeInfo[\"text/plain\"],\n\t\tisBase64 = typeInfo.encoding === \"base64\",\n\t\tparts = [];\n\tparts.push(\"data:\");\n\tparts.push(type);\n\tparts.push(isBase64 ? \";base64\" : \"\");\n\tparts.push(\",\");\n\tparts.push(isBase64 ? text : encodeURIComponent(text));\n\treturn parts.join(\"\");\n};\n\n/*\nUseful for finding out the fully escaped CSS selector equivalent to a given tag. For example:\n\n$tw.utils.tagToCssSelector(\"$:/tags/Stylesheet\") --> tc-tagged-\\%24\\%3A\\%2Ftags\\%2FStylesheet\n*/\nexports.tagToCssSelector = function(tagName) {\n\treturn \"tc-tagged-\" + encodeURIComponent(tagName).replace(/[!\"#$%&'()*+,\\-./:;<=>?@[\\\\\\]^`{\\|}~,]/mg,function(c) {\n\t\treturn \"\\\\\" + c;\n\t});\n};\n\n\n/*\nIE does not have sign function\n*/\nexports.sign = Math.sign || function(x) {\n\tx = +x; // convert to a number\n\tif (x === 0 || isNaN(x)) {\n\t\treturn x;\n\t}\n\treturn x > 0 ? 1 : -1;\n};\n\n/*\nIE does not have an endsWith function\n*/\nexports.strEndsWith = function(str,ending,position) {\n\tif(str.endsWith) {\n\t\treturn str.endsWith(ending,position);\n\t} else {\n\t\tif (typeof position !== 'number' || !isFinite(position) || Math.floor(position) !== position || position > str.length) {\n\t\t\tposition = str.length;\n\t\t}\n\t\tposition -= str.length;\n\t\tvar lastIndex = str.indexOf(ending, position);\n\t\treturn lastIndex !== -1 && lastIndex === position;\n\t}\n};\n\n})();\n", "title": "$:/core/modules/utils/utils.js", "type": "application/javascript", "module-type": "utils" }, "$:/core/modules/widgets/action-deletefield.js": { "text": "/*\\\ntitle: $:/core/modules/widgets/action-deletefield.js\ntype: application/javascript\nmodule-type: widget\n\nAction widget to delete fields of a tiddler.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar DeleteFieldWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nDeleteFieldWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nDeleteFieldWidget.prototype.render = function(parent,nextSibling) {\n\tthis.computeAttributes();\n\tthis.execute();\n};\n\n/*\nCompute the internal state of the widget\n*/\nDeleteFieldWidget.prototype.execute = function() {\n\tthis.actionTiddler = this.getAttribute(\"$tiddler\",this.getVariable(\"currentTiddler\"));\n\tthis.actionField = this.getAttribute(\"$field\");\n};\n\n/*\nRefresh the widget by ensuring our attributes are up to date\n*/\nDeleteFieldWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes[\"$tiddler\"]) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t}\n\treturn this.refreshChildren(changedTiddlers);\n};\n\n/*\nInvoke the action associated with this widget\n*/\nDeleteFieldWidget.prototype.invokeAction = function(triggeringWidget,event) {\n\tvar self = this,\n\t\ttiddler = this.wiki.getTiddler(self.actionTiddler),\n\t\tremoveFields = {};\n\tif(this.actionField) {\n\t\tremoveFields[this.actionField] = undefined;\n\t}\n\tif(tiddler) {\n\t\t$tw.utils.each(this.attributes,function(attribute,name) {\n\t\t\tif(name.charAt(0) !== \"$\" && name !== \"title\") {\n\t\t\t\tremoveFields[name] = undefined;\n\t\t\t}\n\t\t});\n\t\tthis.wiki.addTiddler(new $tw.Tiddler(this.wiki.getModificationFields(),tiddler,removeFields,this.wiki.getCreationFields()));\n\t}\n\treturn true; // Action was invoked\n};\n\nexports[\"action-deletefield\"] = DeleteFieldWidget;\n\n})();\n", "title": "$:/core/modules/widgets/action-deletefield.js", "type": "application/javascript", "module-type": "widget" }, "$:/core/modules/widgets/action-deletetiddler.js": { "text": "/*\\\ntitle: $:/core/modules/widgets/action-deletetiddler.js\ntype: application/javascript\nmodule-type: widget\n\nAction widget to delete a tiddler.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar DeleteTiddlerWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nDeleteTiddlerWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nDeleteTiddlerWidget.prototype.render = function(parent,nextSibling) {\n\tthis.computeAttributes();\n\tthis.execute();\n};\n\n/*\nCompute the internal state of the widget\n*/\nDeleteTiddlerWidget.prototype.execute = function() {\n\tthis.actionFilter = this.getAttribute(\"$filter\");\n\tthis.actionTiddler = this.getAttribute(\"$tiddler\");\n};\n\n/*\nRefresh the widget by ensuring our attributes are up to date\n*/\nDeleteTiddlerWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes[\"$filter\"] || changedAttributes[\"$tiddler\"]) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t}\n\treturn this.refreshChildren(changedTiddlers);\n};\n\n/*\nInvoke the action associated with this widget\n*/\nDeleteTiddlerWidget.prototype.invokeAction = function(triggeringWidget,event) {\n\tvar tiddlers = [];\n\tif(this.actionFilter) {\n\t\ttiddlers = this.wiki.filterTiddlers(this.actionFilter,this);\n\t}\n\tif(this.actionTiddler) {\n\t\ttiddlers.push(this.actionTiddler);\n\t}\n\tfor(var t=0; t<tiddlers.length; t++) {\n\t\tthis.wiki.deleteTiddler(tiddlers[t]);\n\t}\n\treturn true; // Action was invoked\n};\n\nexports[\"action-deletetiddler\"] = DeleteTiddlerWidget;\n\n})();\n", "title": "$:/core/modules/widgets/action-deletetiddler.js", "type": "application/javascript", "module-type": "widget" }, "$:/core/modules/widgets/action-listops.js": { "text": "/*\\\ntitle: $:/core/modules/widgets/action-listops.js\ntype: application/javascript\nmodule-type: widget\n\nAction widget to apply list operations to any tiddler field (defaults to the 'list' field of the current tiddler)\n\n\\*/\n(function() {\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\nvar ActionListopsWidget = function(parseTreeNode, options) {\n\tthis.initialise(parseTreeNode, options);\n};\n/**\n * Inherit from the base widget class\n */\nActionListopsWidget.prototype = new Widget();\n/**\n * Render this widget into the DOM\n */\nActionListopsWidget.prototype.render = function(parent, nextSibling) {\n\tthis.computeAttributes();\n\tthis.execute();\n};\n/**\n * Compute the internal state of the widget\n */\nActionListopsWidget.prototype.execute = function() {\n\t// Get our parameters\n\tthis.target = this.getAttribute(\"$tiddler\", this.getVariable(\n\t\t\"currentTiddler\"));\n\tthis.filter = this.getAttribute(\"$filter\");\n\tthis.subfilter = this.getAttribute(\"$subfilter\");\n\tthis.listField = this.getAttribute(\"$field\", \"list\");\n\tthis.listIndex = this.getAttribute(\"$index\");\n\tthis.filtertags = this.getAttribute(\"$tags\");\n};\n/**\n * \tRefresh the widget by ensuring our attributes are up to date\n */\nActionListopsWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.$tiddler || changedAttributes.$filter ||\n\t\tchangedAttributes.$subfilter || changedAttributes.$field ||\n\t\tchangedAttributes.$index || changedAttributes.$tags) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t}\n\treturn this.refreshChildren(changedTiddlers);\n};\n/**\n * \tInvoke the action associated with this widget\n */\nActionListopsWidget.prototype.invokeAction = function(triggeringWidget,\n\tevent) {\n\t//Apply the specified filters to the lists\n\tvar field = this.listField,\n\t\tindex,\n\t\ttype = \"!!\",\n\t\tlist = this.listField;\n\tif(this.listIndex) {\n\t\tfield = undefined;\n\t\tindex = this.listIndex;\n\t\ttype = \"##\";\n\t\tlist = this.listIndex;\n\t}\n\tif(this.filter) {\n\t\tthis.wiki.setText(this.target, field, index, $tw.utils.stringifyList(\n\t\t\tthis.wiki\n\t\t\t.filterTiddlers(this.filter, this)));\n\t}\n\tif(this.subfilter) {\n\t\tvar subfilter = \"[list[\" + this.target + type + list + \"]] \" + this.subfilter;\n\t\tthis.wiki.setText(this.target, field, index, $tw.utils.stringifyList(\n\t\t\tthis.wiki\n\t\t\t.filterTiddlers(subfilter, this)));\n\t}\n\tif(this.filtertags) {\n\t\tvar tagfilter = \"[list[\" + this.target + \"!!tags]] \" + this.filtertags;\n\t\tthis.wiki.setText(this.target, \"tags\", undefined, $tw.utils.stringifyList(\n\t\t\tthis.wiki.filterTiddlers(tagfilter, this)));\n\t}\n\treturn true; // Action was invoked\n};\n\nexports[\"action-listops\"] = ActionListopsWidget;\n\n})();\n", "title": "$:/core/modules/widgets/action-listops.js", "type": "application/javascript", "module-type": "widget" }, "$:/core/modules/widgets/action-navigate.js": { "text": "/*\\\ntitle: $:/core/modules/widgets/action-navigate.js\ntype: application/javascript\nmodule-type: widget\n\nAction widget to navigate to a tiddler\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar NavigateWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nNavigateWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nNavigateWidget.prototype.render = function(parent,nextSibling) {\n\tthis.computeAttributes();\n\tthis.execute();\n};\n\n/*\nCompute the internal state of the widget\n*/\nNavigateWidget.prototype.execute = function() {\n\tthis.actionTo = this.getAttribute(\"$to\");\n\tthis.actionScroll = this.getAttribute(\"$scroll\");\n};\n\n/*\nRefresh the widget by ensuring our attributes are up to date\n*/\nNavigateWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes[\"$to\"] || changedAttributes[\"$scroll\"]) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t}\n\treturn this.refreshChildren(changedTiddlers);\n};\n\n/*\nInvoke the action associated with this widget\n*/\nNavigateWidget.prototype.invokeAction = function(triggeringWidget,event) {\n\tvar bounds = triggeringWidget && triggeringWidget.getBoundingClientRect && triggeringWidget.getBoundingClientRect(),\n\t\tsuppressNavigation = event.metaKey || event.ctrlKey || (event.button === 1);\n\tif(this.actionScroll === \"yes\") {\n\t\tsuppressNavigation = false;\n\t} else if(this.actionScroll === \"no\") {\n\t\tsuppressNavigation = true;\n\t}\n\tthis.dispatchEvent({\n\t\ttype: \"tm-navigate\",\n\t\tnavigateTo: this.actionTo === undefined ? this.getVariable(\"currentTiddler\") : this.actionTo,\n\t\tnavigateFromTitle: this.getVariable(\"storyTiddler\"),\n\t\tnavigateFromNode: triggeringWidget,\n\t\tnavigateFromClientRect: bounds && { top: bounds.top, left: bounds.left, width: bounds.width, right: bounds.right, bottom: bounds.bottom, height: bounds.height\n\t\t},\n\t\tnavigateSuppressNavigation: suppressNavigation\n\t});\n\treturn true; // Action was invoked\n};\n\nexports[\"action-navigate\"] = NavigateWidget;\n\n})();\n", "title": "$:/core/modules/widgets/action-navigate.js", "type": "application/javascript", "module-type": "widget" }, "$:/core/modules/widgets/action-sendmessage.js": { "text": "/*\\\ntitle: $:/core/modules/widgets/action-sendmessage.js\ntype: application/javascript\nmodule-type: widget\n\nAction widget to send a message\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar SendMessageWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nSendMessageWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nSendMessageWidget.prototype.render = function(parent,nextSibling) {\n\tthis.computeAttributes();\n\tthis.execute();\n};\n\n/*\nCompute the internal state of the widget\n*/\nSendMessageWidget.prototype.execute = function() {\n\tthis.actionMessage = this.getAttribute(\"$message\");\n\tthis.actionParam = this.getAttribute(\"$param\");\n\tthis.actionName = this.getAttribute(\"$name\");\n\tthis.actionValue = this.getAttribute(\"$value\",\"\");\n};\n\n/*\nRefresh the widget by ensuring our attributes are up to date\n*/\nSendMessageWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(Object.keys(changedAttributes).length) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t}\n\treturn this.refreshChildren(changedTiddlers);\n};\n\n/*\nInvoke the action associated with this widget\n*/\nSendMessageWidget.prototype.invokeAction = function(triggeringWidget,event) {\n\t// Get the string parameter\n\tvar param = this.actionParam;\n\t// Assemble the attributes as a hashmap\n\tvar paramObject = Object.create(null);\n\tvar count = 0;\n\t$tw.utils.each(this.attributes,function(attribute,name) {\n\t\tif(name.charAt(0) !== \"$\") {\n\t\t\tparamObject[name] = attribute;\n\t\t\tcount++;\n\t\t}\n\t});\n\t// Add name/value pair if present\n\tif(this.actionName) {\n\t\tparamObject[this.actionName] = this.actionValue;\n\t}\n\t// Dispatch the message\n\tthis.dispatchEvent({\n\t\ttype: this.actionMessage,\n\t\tparam: param,\n\t\tparamObject: paramObject,\n\t\ttiddlerTitle: this.getVariable(\"currentTiddler\"),\n\t\tnavigateFromTitle: this.getVariable(\"storyTiddler\")\n\t});\n\treturn true; // Action was invoked\n};\n\nexports[\"action-sendmessage\"] = SendMessageWidget;\n\n})();\n", "title": "$:/core/modules/widgets/action-sendmessage.js", "type": "application/javascript", "module-type": "widget" }, "$:/core/modules/widgets/action-setfield.js": { "text": "/*\\\ntitle: $:/core/modules/widgets/action-setfield.js\ntype: application/javascript\nmodule-type: widget\n\nAction widget to set a single field or index on a tiddler.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar SetFieldWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nSetFieldWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nSetFieldWidget.prototype.render = function(parent,nextSibling) {\n\tthis.computeAttributes();\n\tthis.execute();\n};\n\n/*\nCompute the internal state of the widget\n*/\nSetFieldWidget.prototype.execute = function() {\n\tthis.actionTiddler = this.getAttribute(\"$tiddler\",this.getVariable(\"currentTiddler\"));\n\tthis.actionField = this.getAttribute(\"$field\");\n\tthis.actionIndex = this.getAttribute(\"$index\");\n\tthis.actionValue = this.getAttribute(\"$value\");\n\tthis.actionTimestamp = this.getAttribute(\"$timestamp\",\"yes\") === \"yes\";\n};\n\n/*\nRefresh the widget by ensuring our attributes are up to date\n*/\nSetFieldWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes[\"$tiddler\"] || changedAttributes[\"$field\"] || changedAttributes[\"$index\"] || changedAttributes[\"$value\"]) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t}\n\treturn this.refreshChildren(changedTiddlers);\n};\n\n/*\nInvoke the action associated with this widget\n*/\nSetFieldWidget.prototype.invokeAction = function(triggeringWidget,event) {\n\tvar self = this,\n\t\toptions = {};\n\toptions.suppressTimestamp = !this.actionTimestamp;\n\tif((typeof this.actionField == \"string\") || (typeof this.actionIndex == \"string\") || (typeof this.actionValue == \"string\")) {\n\t\tthis.wiki.setText(this.actionTiddler,this.actionField,this.actionIndex,this.actionValue,options);\n\t}\n\t$tw.utils.each(this.attributes,function(attribute,name) {\n\t\tif(name.charAt(0) !== \"$\") {\n\t\t\tself.wiki.setText(self.actionTiddler,name,undefined,attribute,options);\n\t\t}\n\t});\n\treturn true; // Action was invoked\n};\n\nexports[\"action-setfield\"] = SetFieldWidget;\n\n})();\n", "title": "$:/core/modules/widgets/action-setfield.js", "type": "application/javascript", "module-type": "widget" }, "$:/core/modules/widgets/browse.js": { "text": "/*\\\ntitle: $:/core/modules/widgets/browse.js\ntype: application/javascript\nmodule-type: widget\n\nBrowse widget for browsing for files to import\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar BrowseWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nBrowseWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nBrowseWidget.prototype.render = function(parent,nextSibling) {\n\tvar self = this;\n\t// Remember parent\n\tthis.parentDomNode = parent;\n\t// Compute attributes and execute state\n\tthis.computeAttributes();\n\tthis.execute();\n\t// Create element\n\tvar domNode = this.document.createElement(\"input\");\n\tdomNode.setAttribute(\"type\",\"file\");\n\tif(this.browseMultiple) {\n\t\tdomNode.setAttribute(\"multiple\",\"multiple\");\n\t}\n\tif(this.tooltip) {\n\t\tdomNode.setAttribute(\"title\",this.tooltip);\n\t}\n\t// Nw.js supports \"nwsaveas\" to force a \"save as\" dialogue that allows a new or existing file to be selected\n\tif(this.nwsaveas) {\n\t\tdomNode.setAttribute(\"nwsaveas\",this.nwsaveas);\n\t}\n\t// Nw.js supports \"webkitdirectory\" to allow a directory to be selected\n\tif(this.webkitdirectory) {\n\t\tdomNode.setAttribute(\"webkitdirectory\",this.webkitdirectory);\n\t}\n\t// Add a click event handler\n\tdomNode.addEventListener(\"change\",function (event) {\n\t\tif(self.message) {\n\t\t\tself.dispatchEvent({type: self.message, param: self.param, files: event.target.files});\n\t\t} else {\n\t\t\tself.wiki.readFiles(event.target.files,function(tiddlerFieldsArray) {\n\t\t\t\tself.dispatchEvent({type: \"tm-import-tiddlers\", param: JSON.stringify(tiddlerFieldsArray)});\n\t\t\t});\n\t\t}\n\t\treturn false;\n\t},false);\n\t// Insert element\n\tparent.insertBefore(domNode,nextSibling);\n\tthis.renderChildren(domNode,null);\n\tthis.domNodes.push(domNode);\n};\n\n/*\nCompute the internal state of the widget\n*/\nBrowseWidget.prototype.execute = function() {\n\tthis.browseMultiple = this.getAttribute(\"multiple\");\n\tthis.message = this.getAttribute(\"message\");\n\tthis.param = this.getAttribute(\"param\");\n\tthis.tooltip = this.getAttribute(\"tooltip\");\n\tthis.nwsaveas = this.getAttribute(\"nwsaveas\");\n\tthis.webkitdirectory = this.getAttribute(\"webkitdirectory\");\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nBrowseWidget.prototype.refresh = function(changedTiddlers) {\n\treturn false;\n};\n\nexports.browse = BrowseWidget;\n\n})();\n", "title": "$:/core/modules/widgets/browse.js", "type": "application/javascript", "module-type": "widget" }, "$:/core/modules/widgets/button.js": { "text": "/*\\\ntitle: $:/core/modules/widgets/button.js\ntype: application/javascript\nmodule-type: widget\n\nButton widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar ButtonWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nButtonWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nButtonWidget.prototype.render = function(parent,nextSibling) {\n\tvar self = this;\n\t// Remember parent\n\tthis.parentDomNode = parent;\n\t// Compute attributes and execute state\n\tthis.computeAttributes();\n\tthis.execute();\n\t// Create element\n\tvar tag = \"button\";\n\tif(this.buttonTag && $tw.config.htmlUnsafeElements.indexOf(this.buttonTag) === -1) {\n\t\ttag = this.buttonTag;\n\t}\n\tvar domNode = this.document.createElement(tag);\n\t// Assign classes\n\tvar classes = this[\"class\"].split(\" \") || [],\n\t\tisPoppedUp = this.popup && this.isPoppedUp();\n\tif(this.selectedClass) {\n\t\tif(this.set && this.setTo && this.isSelected()) {\n\t\t\t$tw.utils.pushTop(classes,this.selectedClass.split(\" \"));\n\t\t}\n\t\tif(isPoppedUp) {\n\t\t\t$tw.utils.pushTop(classes,this.selectedClass.split(\" \"));\n\t\t}\n\t}\n\tif(isPoppedUp) {\n\t\t$tw.utils.pushTop(classes,\"tc-popup-handle\");\n\t}\n\tdomNode.className = classes.join(\" \");\n\t// Assign other attributes\n\tif(this.style) {\n\t\tdomNode.setAttribute(\"style\",this.style);\n\t}\n\tif(this.tooltip) {\n\t\tdomNode.setAttribute(\"title\",this.tooltip);\n\t}\n\tif(this[\"aria-label\"]) {\n\t\tdomNode.setAttribute(\"aria-label\",this[\"aria-label\"]);\n\t}\n\t// Add a click event handler\n\tdomNode.addEventListener(\"click\",function (event) {\n\t\tvar handled = false;\n\t\tif(self.invokeActions(this,event)) {\n\t\t\thandled = true;\n\t\t}\n\t\tif(self.to) {\n\t\t\tself.navigateTo(event);\n\t\t\thandled = true;\n\t\t}\n\t\tif(self.message) {\n\t\t\tself.dispatchMessage(event);\n\t\t\thandled = true;\n\t\t}\n\t\tif(self.popup) {\n\t\t\tself.triggerPopup(event);\n\t\t\thandled = true;\n\t\t}\n\t\tif(self.set) {\n\t\t\tself.setTiddler();\n\t\t\thandled = true;\n\t\t}\n\t\tif(self.actions) {\n\t\t\tself.invokeActionString(self.actions,self,event);\n\t\t}\n\t\tif(handled) {\n\t\t\tevent.preventDefault();\n\t\t\tevent.stopPropagation();\n\t\t}\n\t\treturn handled;\n\t},false);\n\t// Insert element\n\tparent.insertBefore(domNode,nextSibling);\n\tthis.renderChildren(domNode,null);\n\tthis.domNodes.push(domNode);\n};\n\n/*\nWe don't allow actions to propagate because we trigger actions ourselves\n*/\nButtonWidget.prototype.allowActionPropagation = function() {\n\treturn false;\n};\n\nButtonWidget.prototype.getBoundingClientRect = function() {\n\treturn this.domNodes[0].getBoundingClientRect();\n};\n\nButtonWidget.prototype.isSelected = function() {\n return this.wiki.getTextReference(this.set,this.defaultSetValue,this.getVariable(\"currentTiddler\")) === this.setTo;\n};\n\nButtonWidget.prototype.isPoppedUp = function() {\n\tvar tiddler = this.wiki.getTiddler(this.popup);\n\tvar result = tiddler && tiddler.fields.text ? $tw.popup.readPopupState(tiddler.fields.text) : false;\n\treturn result;\n};\n\nButtonWidget.prototype.navigateTo = function(event) {\n\tvar bounds = this.getBoundingClientRect();\n\tthis.dispatchEvent({\n\t\ttype: \"tm-navigate\",\n\t\tnavigateTo: this.to,\n\t\tnavigateFromTitle: this.getVariable(\"storyTiddler\"),\n\t\tnavigateFromNode: this,\n\t\tnavigateFromClientRect: { top: bounds.top, left: bounds.left, width: bounds.width, right: bounds.right, bottom: bounds.bottom, height: bounds.height\n\t\t},\n\t\tnavigateSuppressNavigation: event.metaKey || event.ctrlKey || (event.button === 1)\n\t});\n};\n\nButtonWidget.prototype.dispatchMessage = function(event) {\n\tthis.dispatchEvent({type: this.message, param: this.param, tiddlerTitle: this.getVariable(\"currentTiddler\")});\n};\n\nButtonWidget.prototype.triggerPopup = function(event) {\n\t$tw.popup.triggerPopup({\n\t\tdomNode: this.domNodes[0],\n\t\ttitle: this.popup,\n\t\twiki: this.wiki\n\t});\n};\n\nButtonWidget.prototype.setTiddler = function() {\n\tthis.wiki.setTextReference(this.set,this.setTo,this.getVariable(\"currentTiddler\"));\n};\n\n/*\nCompute the internal state of the widget\n*/\nButtonWidget.prototype.execute = function() {\n\t// Get attributes\n\tthis.actions = this.getAttribute(\"actions\");\n\tthis.to = this.getAttribute(\"to\");\n\tthis.message = this.getAttribute(\"message\");\n\tthis.param = this.getAttribute(\"param\");\n\tthis.set = this.getAttribute(\"set\");\n\tthis.setTo = this.getAttribute(\"setTo\");\n\tthis.popup = this.getAttribute(\"popup\");\n\tthis.hover = this.getAttribute(\"hover\");\n\tthis[\"class\"] = this.getAttribute(\"class\",\"\");\n\tthis[\"aria-label\"] = this.getAttribute(\"aria-label\");\n\tthis.tooltip = this.getAttribute(\"tooltip\");\n\tthis.style = this.getAttribute(\"style\");\n\tthis.selectedClass = this.getAttribute(\"selectedClass\");\n\tthis.defaultSetValue = this.getAttribute(\"default\",\"\");\n\tthis.buttonTag = this.getAttribute(\"tag\");\n\t// Make child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nButtonWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.to || changedAttributes.message || changedAttributes.param || changedAttributes.set || changedAttributes.setTo || changedAttributes.popup || changedAttributes.hover || changedAttributes[\"class\"] || changedAttributes.selectedClass || changedAttributes.style || (this.set && changedTiddlers[this.set]) || (this.popup && changedTiddlers[this.popup])) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t}\n\treturn this.refreshChildren(changedTiddlers);\n};\n\nexports.button = ButtonWidget;\n\n})();\n", "title": "$:/core/modules/widgets/button.js", "type": "application/javascript", "module-type": "widget" }, "$:/core/modules/widgets/checkbox.js": { "text": "/*\\\ntitle: $:/core/modules/widgets/checkbox.js\ntype: application/javascript\nmodule-type: widget\n\nCheckbox widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar CheckboxWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nCheckboxWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nCheckboxWidget.prototype.render = function(parent,nextSibling) {\n\t// Save the parent dom node\n\tthis.parentDomNode = parent;\n\t// Compute our attributes\n\tthis.computeAttributes();\n\t// Execute our logic\n\tthis.execute();\n\t// Create our elements\n\tthis.labelDomNode = this.document.createElement(\"label\");\n\tthis.labelDomNode.setAttribute(\"class\",this.checkboxClass);\n\tthis.inputDomNode = this.document.createElement(\"input\");\n\tthis.inputDomNode.setAttribute(\"type\",\"checkbox\");\n\tif(this.getValue()) {\n\t\tthis.inputDomNode.setAttribute(\"checked\",\"true\");\n\t}\n\tthis.labelDomNode.appendChild(this.inputDomNode);\n\tthis.spanDomNode = this.document.createElement(\"span\");\n\tthis.labelDomNode.appendChild(this.spanDomNode);\n\t// Add a click event handler\n\t$tw.utils.addEventListeners(this.inputDomNode,[\n\t\t{name: \"change\", handlerObject: this, handlerMethod: \"handleChangeEvent\"}\n\t]);\n\t// Insert the label into the DOM and render any children\n\tparent.insertBefore(this.labelDomNode,nextSibling);\n\tthis.renderChildren(this.spanDomNode,null);\n\tthis.domNodes.push(this.labelDomNode);\n};\n\nCheckboxWidget.prototype.getValue = function() {\n\tvar tiddler = this.wiki.getTiddler(this.checkboxTitle);\n\tif(tiddler) {\n\t\tif(this.checkboxTag) {\n\t\t\tif(this.checkboxInvertTag) {\n\t\t\t\treturn !tiddler.hasTag(this.checkboxTag);\n\t\t\t} else {\n\t\t\t\treturn tiddler.hasTag(this.checkboxTag);\n\t\t\t}\n\t\t}\n\t\tif(this.checkboxField) {\n\t\t\tvar value = tiddler.fields[this.checkboxField] || this.checkboxDefault || \"\";\n\t\t\tif(value === this.checkboxChecked) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t\tif(value === this.checkboxUnchecked) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\t} else {\n\t\tif(this.checkboxTag) {\n\t\t\treturn false;\n\t\t}\n\t\tif(this.checkboxField) {\n\t\t\tif(this.checkboxDefault === this.checkboxChecked) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t\tif(this.checkboxDefault === this.checkboxUnchecked) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n};\n\nCheckboxWidget.prototype.handleChangeEvent = function(event) {\n\tvar checked = this.inputDomNode.checked,\n\t\ttiddler = this.wiki.getTiddler(this.checkboxTitle),\n\t\tfallbackFields = {text: \"\"},\n\t\tnewFields = {title: this.checkboxTitle},\n\t\thasChanged = false,\n\t\ttagCheck = false,\n\t\thasTag = tiddler && tiddler.hasTag(this.checkboxTag);\n\tif(this.checkboxTag && this.checkboxInvertTag === \"yes\") {\n\t\ttagCheck = hasTag === checked;\n\t} else {\n\t\ttagCheck = hasTag !== checked;\n\t}\n\t// Set the tag if specified\n\tif(this.checkboxTag && (!tiddler || tagCheck)) {\n\t\tnewFields.tags = tiddler ? (tiddler.fields.tags || []).slice(0) : [];\n\t\tvar pos = newFields.tags.indexOf(this.checkboxTag);\n\t\tif(pos !== -1) {\n\t\t\tnewFields.tags.splice(pos,1);\n\t\t}\n\t\tif(this.checkboxInvertTag === \"yes\" && !checked) {\n\t\t\tnewFields.tags.push(this.checkboxTag);\n\t\t} else if(this.checkboxInvertTag !== \"yes\" && checked) {\n\t\t\tnewFields.tags.push(this.checkboxTag);\n\t\t}\n\t\thasChanged = true;\n\t}\n\t// Set the field if specified\n\tif(this.checkboxField) {\n\t\tvar value = checked ? this.checkboxChecked : this.checkboxUnchecked;\n\t\tif(!tiddler || tiddler.fields[this.checkboxField] !== value) {\n\t\t\tnewFields[this.checkboxField] = value;\n\t\t\thasChanged = true;\n\t\t}\n\t}\n\tif(hasChanged) {\n\t\tthis.wiki.addTiddler(new $tw.Tiddler(this.wiki.getCreationFields(),fallbackFields,tiddler,newFields,this.wiki.getModificationFields()));\n\t}\n};\n\n/*\nCompute the internal state of the widget\n*/\nCheckboxWidget.prototype.execute = function() {\n\t// Get the parameters from the attributes\n\tthis.checkboxTitle = this.getAttribute(\"tiddler\",this.getVariable(\"currentTiddler\"));\n\tthis.checkboxTag = this.getAttribute(\"tag\");\n\tthis.checkboxField = this.getAttribute(\"field\");\n\tthis.checkboxChecked = this.getAttribute(\"checked\");\n\tthis.checkboxUnchecked = this.getAttribute(\"unchecked\");\n\tthis.checkboxDefault = this.getAttribute(\"default\");\n\tthis.checkboxClass = this.getAttribute(\"class\",\"\");\n\tthis.checkboxInvertTag = this.getAttribute(\"invertTag\",\"\");\n\t// Make the child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nCheckboxWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.tiddler || changedAttributes.tag || changedAttributes.invertTag || changedAttributes.field || changedAttributes.checked || changedAttributes.unchecked || changedAttributes[\"default\"] || changedAttributes[\"class\"]) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\tvar refreshed = false;\n\t\tif(changedTiddlers[this.checkboxTitle]) {\n\t\t\tthis.inputDomNode.checked = this.getValue();\n\t\t\trefreshed = true;\n\t\t}\n\t\treturn this.refreshChildren(changedTiddlers) || refreshed;\n\t}\n};\n\nexports.checkbox = CheckboxWidget;\n\n})();", "title": "$:/core/modules/widgets/checkbox.js", "type": "application/javascript", "module-type": "widget" }, "$:/core/modules/widgets/codeblock.js": { "text": "/*\\\ntitle: $:/core/modules/widgets/codeblock.js\ntype: application/javascript\nmodule-type: widget\n\nCode block node widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar CodeBlockWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nCodeBlockWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nCodeBlockWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tvar codeNode = this.document.createElement(\"code\"),\n\t\tdomNode = this.document.createElement(\"pre\");\n\tcodeNode.appendChild(this.document.createTextNode(this.getAttribute(\"code\")));\n\tdomNode.appendChild(codeNode);\n\tparent.insertBefore(domNode,nextSibling);\n\tthis.domNodes.push(domNode);\n\tif(this.postRender) {\n\t\tthis.postRender();\n\t}\n};\n\n/*\nCompute the internal state of the widget\n*/\nCodeBlockWidget.prototype.execute = function() {\n\tthis.language = this.getAttribute(\"language\");\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nCodeBlockWidget.prototype.refresh = function(changedTiddlers) {\n\treturn false;\n};\n\nexports.codeblock = CodeBlockWidget;\n\n})();\n", "title": "$:/core/modules/widgets/codeblock.js", "type": "application/javascript", "module-type": "widget" }, "$:/core/modules/widgets/count.js": { "text": "/*\\\ntitle: $:/core/modules/widgets/count.js\ntype: application/javascript\nmodule-type: widget\n\nCount widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar CountWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nCountWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nCountWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tvar textNode = this.document.createTextNode(this.currentCount);\n\tparent.insertBefore(textNode,nextSibling);\n\tthis.domNodes.push(textNode);\n};\n\n/*\nCompute the internal state of the widget\n*/\nCountWidget.prototype.execute = function() {\n\t// Get parameters from our attributes\n\tthis.filter = this.getAttribute(\"filter\");\n\t// Execute the filter\n\tif(this.filter) {\n\t\tthis.currentCount = this.wiki.filterTiddlers(this.filter,this).length;\n\t} else {\n\t\tthis.currentCount = undefined;\n\t}\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nCountWidget.prototype.refresh = function(changedTiddlers) {\n\t// Re-execute the filter to get the count\n\tthis.computeAttributes();\n\tvar oldCount = this.currentCount;\n\tthis.execute();\n\tif(this.currentCount !== oldCount) {\n\t\t// Regenerate and rerender the widget and replace the existing DOM node\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\treturn false;\n\t}\n\n};\n\nexports.count = CountWidget;\n\n})();\n", "title": "$:/core/modules/widgets/count.js", "type": "application/javascript", "module-type": "widget" }, "$:/core/modules/widgets/dropzone.js": { "text": "/*\\\ntitle: $:/core/modules/widgets/dropzone.js\ntype: application/javascript\nmodule-type: widget\n\nDropzone widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar DropZoneWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nDropZoneWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nDropZoneWidget.prototype.render = function(parent,nextSibling) {\n\tvar self = this;\n\t// Remember parent\n\tthis.parentDomNode = parent;\n\t// Compute attributes and execute state\n\tthis.computeAttributes();\n\tthis.execute();\n\t// Create element\n\tvar domNode = this.document.createElement(\"div\");\n\tdomNode.className = \"tc-dropzone\";\n\t// Add event handlers\n\t$tw.utils.addEventListeners(domNode,[\n\t\t{name: \"dragenter\", handlerObject: this, handlerMethod: \"handleDragEnterEvent\"},\n\t\t{name: \"dragover\", handlerObject: this, handlerMethod: \"handleDragOverEvent\"},\n\t\t{name: \"dragleave\", handlerObject: this, handlerMethod: \"handleDragLeaveEvent\"},\n\t\t{name: \"drop\", handlerObject: this, handlerMethod: \"handleDropEvent\"},\n\t\t{name: \"paste\", handlerObject: this, handlerMethod: \"handlePasteEvent\"}\n\t]);\n\tdomNode.addEventListener(\"click\",function (event) {\n\t},false);\n\t// Insert element\n\tparent.insertBefore(domNode,nextSibling);\n\tthis.renderChildren(domNode,null);\n\tthis.domNodes.push(domNode);\n};\n\nDropZoneWidget.prototype.enterDrag = function() {\n\t// Check for this window being the source of the drag\n\tif($tw.dragInProgress) {\n\t\treturn false;\n\t}\n\t// We count enter/leave events\n\tthis.dragEnterCount = (this.dragEnterCount || 0) + 1;\n\t// If we're entering for the first time we need to apply highlighting\n\tif(this.dragEnterCount === 1) {\n\t\t$tw.utils.addClass(this.domNodes[0],\"tc-dragover\");\n\t}\n};\n\nDropZoneWidget.prototype.leaveDrag = function() {\n\t// Reduce the enter count\n\tthis.dragEnterCount = (this.dragEnterCount || 0) - 1;\n\t// Remove highlighting if we're leaving externally\n\tif(this.dragEnterCount <= 0) {\n\t\t$tw.utils.removeClass(this.domNodes[0],\"tc-dragover\");\n\t}\n};\n\nDropZoneWidget.prototype.handleDragEnterEvent = function(event) {\n\tthis.enterDrag();\n\t// Tell the browser that we're ready to handle the drop\n\tevent.preventDefault();\n\t// Tell the browser not to ripple the drag up to any parent drop handlers\n\tevent.stopPropagation();\n};\n\nDropZoneWidget.prototype.handleDragOverEvent = function(event) {\n\t// Check for being over a TEXTAREA or INPUT\n\tif([\"TEXTAREA\",\"INPUT\"].indexOf(event.target.tagName) !== -1) {\n\t\treturn false;\n\t}\n\t// Check for this window being the source of the drag\n\tif($tw.dragInProgress) {\n\t\treturn false;\n\t}\n\t// Tell the browser that we're still interested in the drop\n\tevent.preventDefault();\n\tevent.dataTransfer.dropEffect = \"copy\"; // Explicitly show this is a copy\n};\n\nDropZoneWidget.prototype.handleDragLeaveEvent = function(event) {\n\tthis.leaveDrag();\n};\n\nDropZoneWidget.prototype.handleDropEvent = function(event) {\n\tthis.leaveDrag();\n\t// Check for being over a TEXTAREA or INPUT\n\tif([\"TEXTAREA\",\"INPUT\"].indexOf(event.target.tagName) !== -1) {\n\t\treturn false;\n\t}\n\t// Check for this window being the source of the drag\n\tif($tw.dragInProgress) {\n\t\treturn false;\n\t}\n\tvar self = this,\n\t\tdataTransfer = event.dataTransfer;\n\t// Reset the enter count\n\tthis.dragEnterCount = 0;\n\t// Remove highlighting\n\t$tw.utils.removeClass(this.domNodes[0],\"tc-dragover\");\n\t// Import any files in the drop\n\tvar numFiles = this.wiki.readFiles(dataTransfer.files,function(tiddlerFieldsArray) {\n\t\tself.dispatchEvent({type: \"tm-import-tiddlers\", param: JSON.stringify(tiddlerFieldsArray)});\n\t});\n\t// Try to import the various data types we understand\n\tif(numFiles === 0) {\n\t\tthis.importData(dataTransfer);\n\t}\n\t// Tell the browser that we handled the drop\n\tevent.preventDefault();\n\t// Stop the drop ripple up to any parent handlers\n\tevent.stopPropagation();\n};\n\nDropZoneWidget.prototype.importData = function(dataTransfer) {\n\t// Try each provided data type in turn\n\tfor(var t=0; t<this.importDataTypes.length; t++) {\n\t\tif(!$tw.browser.isIE || this.importDataTypes[t].IECompatible) {\n\t\t\t// Get the data\n\t\t\tvar dataType = this.importDataTypes[t];\n\t\t\t\tvar data = dataTransfer.getData(dataType.type);\n\t\t\t// Import the tiddlers in the data\n\t\t\tif(data !== \"\" && data !== null) {\n\t\t\t\tif($tw.log.IMPORT) {\n\t\t\t\t\tconsole.log(\"Importing data type '\" + dataType.type + \"', data: '\" + data + \"'\")\n\t\t\t\t}\n\t\t\t\tvar tiddlerFields = dataType.convertToFields(data);\n\t\t\t\tif(!tiddlerFields.title) {\n\t\t\t\t\ttiddlerFields.title = this.wiki.generateNewTitle(\"Untitled\");\n\t\t\t\t}\n\t\t\t\tthis.dispatchEvent({type: \"tm-import-tiddlers\", param: JSON.stringify([tiddlerFields])});\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t}\n};\n\nDropZoneWidget.prototype.importDataTypes = [\n\t{type: \"text/vnd.tiddler\", IECompatible: false, convertToFields: function(data) {\n\t\treturn JSON.parse(data);\n\t}},\n\t{type: \"URL\", IECompatible: true, convertToFields: function(data) {\n\t\t// Check for tiddler data URI\n\t\tvar match = decodeURIComponent(data).match(/^data\\:text\\/vnd\\.tiddler,(.*)/i);\n\t\tif(match) {\n\t\t\treturn JSON.parse(match[1]);\n\t\t} else {\n\t\t\treturn { // As URL string\n\t\t\t\ttext: data\n\t\t\t};\n\t\t}\n\t}},\n\t{type: \"text/x-moz-url\", IECompatible: false, convertToFields: function(data) {\n\t\t// Check for tiddler data URI\n\t\tvar match = decodeURIComponent(data).match(/^data\\:text\\/vnd\\.tiddler,(.*)/i);\n\t\tif(match) {\n\t\t\treturn JSON.parse(match[1]);\n\t\t} else {\n\t\t\treturn { // As URL string\n\t\t\t\ttext: data\n\t\t\t};\n\t\t}\n\t}},\n\t{type: \"text/html\", IECompatible: false, convertToFields: function(data) {\n\t\treturn {\n\t\t\ttext: data\n\t\t};\n\t}},\n\t{type: \"text/plain\", IECompatible: false, convertToFields: function(data) {\n\t\treturn {\n\t\t\ttext: data\n\t\t};\n\t}},\n\t{type: \"Text\", IECompatible: true, convertToFields: function(data) {\n\t\treturn {\n\t\t\ttext: data\n\t\t};\n\t}},\n\t{type: \"text/uri-list\", IECompatible: false, convertToFields: function(data) {\n\t\treturn {\n\t\t\ttext: data\n\t\t};\n\t}}\n];\n\nDropZoneWidget.prototype.handlePasteEvent = function(event) {\n\t// Let the browser handle it if we're in a textarea or input box\n\tif([\"TEXTAREA\",\"INPUT\"].indexOf(event.target.tagName) == -1) {\n\t\tvar self = this,\n\t\t\titems = event.clipboardData.items;\n\t\t// Enumerate the clipboard items\n\t\tfor(var t = 0; t<items.length; t++) {\n\t\t\tvar item = items[t];\n\t\t\tif(item.kind === \"file\") {\n\t\t\t\t// Import any files\n\t\t\t\tthis.wiki.readFile(item.getAsFile(),function(tiddlerFieldsArray) {\n\t\t\t\t\tself.dispatchEvent({type: \"tm-import-tiddlers\", param: JSON.stringify(tiddlerFieldsArray)});\n\t\t\t\t});\n\t\t\t} else if(item.kind === \"string\") {\n\t\t\t\t// Create tiddlers from string items\n\t\t\t\tvar type = item.type;\n\t\t\t\titem.getAsString(function(str) {\n\t\t\t\t\tvar tiddlerFields = {\n\t\t\t\t\t\ttitle: self.wiki.generateNewTitle(\"Untitled\"),\n\t\t\t\t\t\ttext: str,\n\t\t\t\t\t\ttype: type\n\t\t\t\t\t};\n\t\t\t\t\tif($tw.log.IMPORT) {\n\t\t\t\t\t\tconsole.log(\"Importing string '\" + str + \"', type: '\" + type + \"'\");\n\t\t\t\t\t}\n\t\t\t\t\tself.dispatchEvent({type: \"tm-import-tiddlers\", param: JSON.stringify([tiddlerFields])});\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t\t// Tell the browser that we've handled the paste\n\t\tevent.stopPropagation();\n\t\tevent.preventDefault();\n\t}\n};\n\n/*\nCompute the internal state of the widget\n*/\nDropZoneWidget.prototype.execute = function() {\n\t// Make child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nDropZoneWidget.prototype.refresh = function(changedTiddlers) {\n\treturn this.refreshChildren(changedTiddlers);\n};\n\nexports.dropzone = DropZoneWidget;\n\n})();\n", "title": "$:/core/modules/widgets/dropzone.js", "type": "application/javascript", "module-type": "widget" }, "$:/core/modules/widgets/edit-binary.js": { "text": "/*\\\ntitle: $:/core/modules/widgets/edit-binary.js\ntype: application/javascript\nmodule-type: widget\n\nEdit-binary widget; placeholder for editing binary tiddlers\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar BINARY_WARNING_MESSAGE = \"$:/core/ui/BinaryWarning\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar EditBinaryWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nEditBinaryWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nEditBinaryWidget.prototype.render = function(parent,nextSibling) {\n\tvar self = this;\n\t// Save the parent dom node\n\tthis.parentDomNode = parent;\n\t// Compute our attributes\n\tthis.computeAttributes();\n\t// Execute our logic\n\tthis.execute();\n\tthis.renderChildren(parent,nextSibling);\n};\n\n/*\nCompute the internal state of the widget\n*/\nEditBinaryWidget.prototype.execute = function() {\n\t// Construct the child widgets\n\tthis.makeChildWidgets([{\n\t\ttype: \"transclude\",\n\t\tattributes: {\n\t\t\ttiddler: {type: \"string\", value: BINARY_WARNING_MESSAGE}\n\t\t}\n\t}]);\n};\n\n/*\nRefresh by refreshing our child widget\n*/\nEditBinaryWidget.prototype.refresh = function(changedTiddlers) {\n\treturn this.refreshChildren(changedTiddlers);\n};\n\nexports[\"edit-binary\"] = EditBinaryWidget;\n\n})();\n", "title": "$:/core/modules/widgets/edit-binary.js", "type": "application/javascript", "module-type": "widget" }, "$:/core/modules/widgets/edit-bitmap.js": { "text": "/*\\\ntitle: $:/core/modules/widgets/edit-bitmap.js\ntype: application/javascript\nmodule-type: widget\n\nEdit-bitmap widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n// Default image sizes\nvar DEFAULT_IMAGE_WIDTH = 600,\n\tDEFAULT_IMAGE_HEIGHT = 370;\n\n// Configuration tiddlers\nvar LINE_WIDTH_TITLE = \"$:/config/BitmapEditor/LineWidth\",\n\tLINE_COLOUR_TITLE = \"$:/config/BitmapEditor/Colour\",\n\tLINE_OPACITY_TITLE = \"$:/config/BitmapEditor/Opacity\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar EditBitmapWidget = function(parseTreeNode,options) {\n\t// Initialise the editor operations if they've not been done already\n\tif(!this.editorOperations) {\n\t\tEditBitmapWidget.prototype.editorOperations = {};\n\t\t$tw.modules.applyMethods(\"bitmapeditoroperation\",this.editorOperations);\n\t}\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nEditBitmapWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nEditBitmapWidget.prototype.render = function(parent,nextSibling) {\n\tvar self = this;\n\t// Save the parent dom node\n\tthis.parentDomNode = parent;\n\t// Compute our attributes\n\tthis.computeAttributes();\n\t// Execute our logic\n\tthis.execute();\n\t// Create the wrapper for the toolbar and render its content\n\tthis.toolbarNode = this.document.createElement(\"div\");\n\tthis.toolbarNode.className = \"tc-editor-toolbar\";\n\tparent.insertBefore(this.toolbarNode,nextSibling);\n\tthis.domNodes.push(this.toolbarNode);\n\t// Create the on-screen canvas\n\tthis.canvasDomNode = $tw.utils.domMaker(\"canvas\",{\n\t\tdocument: this.document,\n\t\t\"class\":\"tc-edit-bitmapeditor\",\n\t\teventListeners: [{\n\t\t\tname: \"touchstart\", handlerObject: this, handlerMethod: \"handleTouchStartEvent\"\n\t\t},{\n\t\t\tname: \"touchmove\", handlerObject: this, handlerMethod: \"handleTouchMoveEvent\"\n\t\t},{\n\t\t\tname: \"touchend\", handlerObject: this, handlerMethod: \"handleTouchEndEvent\"\n\t\t},{\n\t\t\tname: \"mousedown\", handlerObject: this, handlerMethod: \"handleMouseDownEvent\"\n\t\t},{\n\t\t\tname: \"mousemove\", handlerObject: this, handlerMethod: \"handleMouseMoveEvent\"\n\t\t},{\n\t\t\tname: \"mouseup\", handlerObject: this, handlerMethod: \"handleMouseUpEvent\"\n\t\t}]\n\t});\n\t// Set the width and height variables\n\tthis.setVariable(\"tv-bitmap-editor-width\",this.canvasDomNode.width + \"px\");\n\tthis.setVariable(\"tv-bitmap-editor-height\",this.canvasDomNode.height + \"px\");\n\t// Render toolbar child widgets\n\tthis.renderChildren(this.toolbarNode,null);\n\t// // Insert the elements into the DOM\n\tparent.insertBefore(this.canvasDomNode,nextSibling);\n\tthis.domNodes.push(this.canvasDomNode);\n\t// Load the image into the canvas\n\tif($tw.browser) {\n\t\tthis.loadCanvas();\n\t}\n\t// Add widget message listeners\n\tthis.addEventListeners([\n\t\t{type: \"tm-edit-bitmap-operation\", handler: \"handleEditBitmapOperationMessage\"}\n\t]);\n};\n\n/*\nHandle an edit bitmap operation message from the toolbar\n*/\nEditBitmapWidget.prototype.handleEditBitmapOperationMessage = function(event) {\n\t// Invoke the handler\n\tvar handler = this.editorOperations[event.param];\n\tif(handler) {\n\t\thandler.call(this,event);\n\t}\n};\n\n/*\nCompute the internal state of the widget\n*/\nEditBitmapWidget.prototype.execute = function() {\n\t// Get our parameters\n\tthis.editTitle = this.getAttribute(\"tiddler\",this.getVariable(\"currentTiddler\"));\n\t// Make the child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nJust refresh the toolbar\n*/\nEditBitmapWidget.prototype.refresh = function(changedTiddlers) {\n\treturn this.refreshChildren(changedTiddlers);\n};\n\n/*\nSet the bitmap size variables and refresh the toolbar\n*/\nEditBitmapWidget.prototype.refreshToolbar = function() {\n\t// Set the width and height variables\n\tthis.setVariable(\"tv-bitmap-editor-width\",this.canvasDomNode.width + \"px\");\n\tthis.setVariable(\"tv-bitmap-editor-height\",this.canvasDomNode.height + \"px\");\n\t// Refresh each of our child widgets\n\t$tw.utils.each(this.children,function(childWidget) {\n\t\tchildWidget.refreshSelf();\n\t});\n};\n\nEditBitmapWidget.prototype.loadCanvas = function() {\n\tvar tiddler = this.wiki.getTiddler(this.editTitle),\n\t\tcurrImage = new Image();\n\t// Set up event handlers for loading the image\n\tvar self = this;\n\tcurrImage.onload = function() {\n\t\t// Copy the image to the on-screen canvas\n\t\tself.initCanvas(self.canvasDomNode,currImage.width,currImage.height,currImage);\n\t\t// And also copy the current bitmap to the off-screen canvas\n\t\tself.currCanvas = self.document.createElement(\"canvas\");\n\t\tself.initCanvas(self.currCanvas,currImage.width,currImage.height,currImage);\n\t\t// Set the width and height input boxes\n\t\tself.refreshToolbar();\n\t};\n\tcurrImage.onerror = function() {\n\t\t// Set the on-screen canvas size and clear it\n\t\tself.initCanvas(self.canvasDomNode,DEFAULT_IMAGE_WIDTH,DEFAULT_IMAGE_HEIGHT);\n\t\t// Set the off-screen canvas size and clear it\n\t\tself.currCanvas = self.document.createElement(\"canvas\");\n\t\tself.initCanvas(self.currCanvas,DEFAULT_IMAGE_WIDTH,DEFAULT_IMAGE_HEIGHT);\n\t\t// Set the width and height input boxes\n\t\tself.refreshToolbar();\n\t};\n\t// Get the current bitmap into an image object\n\tcurrImage.src = \"data:\" + tiddler.fields.type + \";base64,\" + tiddler.fields.text;\n};\n\nEditBitmapWidget.prototype.initCanvas = function(canvas,width,height,image) {\n\tcanvas.width = width;\n\tcanvas.height = height;\n\tvar ctx = canvas.getContext(\"2d\");\n\tif(image) {\n\t\tctx.drawImage(image,0,0);\n\t} else {\n\t\tctx.fillStyle = \"#fff\";\n\t\tctx.fillRect(0,0,canvas.width,canvas.height);\n\t}\n};\n\n/*\n** Change the size of the canvas, preserving the current image\n*/\nEditBitmapWidget.prototype.changeCanvasSize = function(newWidth,newHeight) {\n\t// Create and size a new canvas\n\tvar newCanvas = this.document.createElement(\"canvas\");\n\tthis.initCanvas(newCanvas,newWidth,newHeight);\n\t// Copy the old image\n\tvar ctx = newCanvas.getContext(\"2d\");\n\tctx.drawImage(this.currCanvas,0,0);\n\t// Set the new canvas as the current one\n\tthis.currCanvas = newCanvas;\n\t// Set the size of the onscreen canvas\n\tthis.canvasDomNode.width = newWidth;\n\tthis.canvasDomNode.height = newHeight;\n\t// Paint the onscreen canvas with the offscreen canvas\n\tctx = this.canvasDomNode.getContext(\"2d\");\n\tctx.drawImage(this.currCanvas,0,0);\n};\n\nEditBitmapWidget.prototype.handleTouchStartEvent = function(event) {\n\tthis.brushDown = true;\n\tthis.strokeStart(event.touches[0].clientX,event.touches[0].clientY);\n\tevent.preventDefault();\n\tevent.stopPropagation();\n\treturn false;\n};\n\nEditBitmapWidget.prototype.handleTouchMoveEvent = function(event) {\n\tif(this.brushDown) {\n\t\tthis.strokeMove(event.touches[0].clientX,event.touches[0].clientY);\n\t}\n\tevent.preventDefault();\n\tevent.stopPropagation();\n\treturn false;\n};\n\nEditBitmapWidget.prototype.handleTouchEndEvent = function(event) {\n\tif(this.brushDown) {\n\t\tthis.brushDown = false;\n\t\tthis.strokeEnd();\n\t}\n\tevent.preventDefault();\n\tevent.stopPropagation();\n\treturn false;\n};\n\nEditBitmapWidget.prototype.handleMouseDownEvent = function(event) {\n\tthis.strokeStart(event.clientX,event.clientY);\n\tthis.brushDown = true;\n\tevent.preventDefault();\n\tevent.stopPropagation();\n\treturn false;\n};\n\nEditBitmapWidget.prototype.handleMouseMoveEvent = function(event) {\n\tif(this.brushDown) {\n\t\tthis.strokeMove(event.clientX,event.clientY);\n\t\tevent.preventDefault();\n\t\tevent.stopPropagation();\n\t\treturn false;\n\t}\n\treturn true;\n};\n\nEditBitmapWidget.prototype.handleMouseUpEvent = function(event) {\n\tif(this.brushDown) {\n\t\tthis.brushDown = false;\n\t\tthis.strokeEnd();\n\t\tevent.preventDefault();\n\t\tevent.stopPropagation();\n\t\treturn false;\n\t}\n\treturn true;\n};\n\nEditBitmapWidget.prototype.adjustCoordinates = function(x,y) {\n\tvar canvasRect = this.canvasDomNode.getBoundingClientRect(),\n\t\tscale = this.canvasDomNode.width/canvasRect.width;\n\treturn {x: (x - canvasRect.left) * scale, y: (y - canvasRect.top) * scale};\n};\n\nEditBitmapWidget.prototype.strokeStart = function(x,y) {\n\t// Start off a new stroke\n\tthis.stroke = [this.adjustCoordinates(x,y)];\n};\n\nEditBitmapWidget.prototype.strokeMove = function(x,y) {\n\tvar ctx = this.canvasDomNode.getContext(\"2d\"),\n\t\tt;\n\t// Add the new position to the end of the stroke\n\tthis.stroke.push(this.adjustCoordinates(x,y));\n\t// Redraw the previous image\n\tctx.drawImage(this.currCanvas,0,0);\n\t// Render the stroke\n\tctx.globalAlpha = parseFloat(this.wiki.getTiddlerText(LINE_OPACITY_TITLE,\"1.0\"));\n\tctx.strokeStyle = this.wiki.getTiddlerText(LINE_COLOUR_TITLE,\"#ff0\");\n\tctx.lineWidth = parseFloat(this.wiki.getTiddlerText(LINE_WIDTH_TITLE,\"3\"));\n\tctx.lineCap = \"round\";\n\tctx.lineJoin = \"round\";\n\tctx.beginPath();\n\tctx.moveTo(this.stroke[0].x,this.stroke[0].y);\n\tfor(t=1; t<this.stroke.length-1; t++) {\n\t\tvar s1 = this.stroke[t],\n\t\t\ts2 = this.stroke[t-1],\n\t\t\ttx = (s1.x + s2.x)/2,\n\t\t\tty = (s1.y + s2.y)/2;\n\t\tctx.quadraticCurveTo(s2.x,s2.y,tx,ty);\n\t}\n\tctx.stroke();\n};\n\nEditBitmapWidget.prototype.strokeEnd = function() {\n\t// Copy the bitmap to the off-screen canvas\n\tvar ctx = this.currCanvas.getContext(\"2d\");\n\tctx.drawImage(this.canvasDomNode,0,0);\n\t// Save the image into the tiddler\n\tthis.saveChanges();\n};\n\nEditBitmapWidget.prototype.saveChanges = function() {\n\tvar tiddler = this.wiki.getTiddler(this.editTitle);\n\tif(tiddler) {\n\t\t// data URIs look like \"data:<type>;base64,<text>\"\n\t\tvar dataURL = this.canvasDomNode.toDataURL(tiddler.fields.type),\n\t\t\tposColon = dataURL.indexOf(\":\"),\n\t\t\tposSemiColon = dataURL.indexOf(\";\"),\n\t\t\tposComma = dataURL.indexOf(\",\"),\n\t\t\ttype = dataURL.substring(posColon+1,posSemiColon),\n\t\t\ttext = dataURL.substring(posComma+1);\n\t\tvar update = {type: type, text: text};\n\t\tthis.wiki.addTiddler(new $tw.Tiddler(this.wiki.getModificationFields(),tiddler,update,this.wiki.getCreationFields()));\n\t}\n};\n\nexports[\"edit-bitmap\"] = EditBitmapWidget;\n\n})();\n", "title": "$:/core/modules/widgets/edit-bitmap.js", "type": "application/javascript", "module-type": "widget" }, "$:/core/modules/widgets/edit-shortcut.js": { "text": "/*\\\ntitle: $:/core/modules/widgets/edit-shortcut.js\ntype: application/javascript\nmodule-type: widget\n\nWidget to display an editable keyboard shortcut\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar EditShortcutWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nEditShortcutWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nEditShortcutWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tthis.inputNode = this.document.createElement(\"input\");\n\t// Assign classes\n\tif(this.shortcutClass) {\n\t\tthis.inputNode.className = this.shortcutClass;\t\t\n\t}\n\t// Assign other attributes\n\tif(this.shortcutStyle) {\n\t\tthis.inputNode.setAttribute(\"style\",this.shortcutStyle);\n\t}\n\tif(this.shortcutTooltip) {\n\t\tthis.inputNode.setAttribute(\"title\",this.shortcutTooltip);\n\t}\n\tif(this.shortcutPlaceholder) {\n\t\tthis.inputNode.setAttribute(\"placeholder\",this.shortcutPlaceholder);\n\t}\n\tif(this.shortcutAriaLabel) {\n\t\tthis.inputNode.setAttribute(\"aria-label\",this.shortcutAriaLabel);\n\t}\n\t// Assign the current shortcut\n\tthis.updateInputNode();\n\t// Add event handlers\n\t$tw.utils.addEventListeners(this.inputNode,[\n\t\t{name: \"keydown\", handlerObject: this, handlerMethod: \"handleKeydownEvent\"}\n\t]);\n\t// Link into the DOM\n\tparent.insertBefore(this.inputNode,nextSibling);\n\tthis.domNodes.push(this.inputNode);\n};\n\n/*\nCompute the internal state of the widget\n*/\nEditShortcutWidget.prototype.execute = function() {\n\tthis.shortcutTiddler = this.getAttribute(\"tiddler\");\n\tthis.shortcutField = this.getAttribute(\"field\");\n\tthis.shortcutIndex = this.getAttribute(\"index\");\n\tthis.shortcutPlaceholder = this.getAttribute(\"placeholder\");\n\tthis.shortcutDefault = this.getAttribute(\"default\",\"\");\n\tthis.shortcutClass = this.getAttribute(\"class\");\n\tthis.shortcutStyle = this.getAttribute(\"style\");\n\tthis.shortcutTooltip = this.getAttribute(\"tooltip\");\n\tthis.shortcutAriaLabel = this.getAttribute(\"aria-label\");\n};\n\n/*\nUpdate the value of the input node\n*/\nEditShortcutWidget.prototype.updateInputNode = function() {\n\tif(this.shortcutField) {\n\t\tvar tiddler = this.wiki.getTiddler(this.shortcutTiddler);\n\t\tif(tiddler && $tw.utils.hop(tiddler.fields,this.shortcutField)) {\n\t\t\tthis.inputNode.value = tiddler.getFieldString(this.shortcutField);\n\t\t} else {\n\t\t\tthis.inputNode.value = this.shortcutDefault;\n\t\t}\n\t} else if(this.shortcutIndex) {\n\t\tthis.inputNode.value = this.wiki.extractTiddlerDataItem(this.shortcutTiddler,this.shortcutIndex,this.shortcutDefault);\n\t} else {\n\t\tthis.inputNode.value = this.wiki.getTiddlerText(this.shortcutTiddler,this.shortcutDefault);\n\t}\n};\n\n/*\nHandle a dom \"keydown\" event\n*/\nEditShortcutWidget.prototype.handleKeydownEvent = function(event) {\n\t// Ignore shift, ctrl, meta, alt\n\tif(event.keyCode && $tw.keyboardManager.getModifierKeys().indexOf(event.keyCode) === -1) {\n\t\t// Get the shortcut text representation\n\t\tvar value = $tw.keyboardManager.getPrintableShortcuts([{\n\t\t\tctrlKey: event.ctrlKey,\n\t\t\tshiftKey: event.shiftKey,\n\t\t\taltKey: event.altKey,\n\t\t\tmetaKey: event.metaKey,\n\t\t\tkeyCode: event.keyCode\n\t\t}]);\n\t\tif(value.length > 0) {\n\t\t\tthis.wiki.setText(this.shortcutTiddler,this.shortcutField,this.shortcutIndex,value[0]);\n\t\t}\n\t\t// Ignore the keydown if it was already handled\n\t\tevent.preventDefault();\n\t\tevent.stopPropagation();\n\t\treturn true;\t\t\n\t} else {\n\t\treturn false;\n\t}\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget needed re-rendering\n*/\nEditShortcutWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.tiddler || changedAttributes.field || changedAttributes.index || changedAttributes.placeholder || changedAttributes[\"default\"] || changedAttributes[\"class\"] || changedAttributes.style || changedAttributes.tooltip || changedAttributes[\"aria-label\"]) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else if(changedTiddlers[this.shortcutTiddler]) {\n\t\tthis.updateInputNode();\n\t\treturn true;\n\t} else {\n\t\treturn false;\t\n\t}\n};\n\nexports[\"edit-shortcut\"] = EditShortcutWidget;\n\n})();\n", "title": "$:/core/modules/widgets/edit-shortcut.js", "type": "application/javascript", "module-type": "widget" }, "$:/core/modules/widgets/edit-text.js": { "text": "/*\\\ntitle: $:/core/modules/widgets/edit-text.js\ntype: application/javascript\nmodule-type: widget\n\nEdit-text widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar editTextWidgetFactory = require(\"$:/core/modules/editor/factory.js\").editTextWidgetFactory,\n\tFramedEngine = require(\"$:/core/modules/editor/engines/framed.js\").FramedEngine,\n\tSimpleEngine = require(\"$:/core/modules/editor/engines/simple.js\").SimpleEngine;\n\nexports[\"edit-text\"] = editTextWidgetFactory(FramedEngine,SimpleEngine);\n\n})();\n", "title": "$:/core/modules/widgets/edit-text.js", "type": "application/javascript", "module-type": "widget" }, "$:/core/modules/widgets/edit.js": { "text": "/*\\\ntitle: $:/core/modules/widgets/edit.js\ntype: application/javascript\nmodule-type: widget\n\nEdit widget is a meta-widget chooses the appropriate actual editting widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar EditWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nEditWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nEditWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tthis.renderChildren(parent,nextSibling);\n};\n\n// Mappings from content type to editor type are stored in tiddlers with this prefix\nvar EDITOR_MAPPING_PREFIX = \"$:/config/EditorTypeMappings/\";\n\n/*\nCompute the internal state of the widget\n*/\nEditWidget.prototype.execute = function() {\n\t// Get our parameters\n\tthis.editTitle = this.getAttribute(\"tiddler\",this.getVariable(\"currentTiddler\"));\n\tthis.editField = this.getAttribute(\"field\",\"text\");\n\tthis.editIndex = this.getAttribute(\"index\");\n\tthis.editClass = this.getAttribute(\"class\");\n\tthis.editPlaceholder = this.getAttribute(\"placeholder\");\n\t// Choose the appropriate edit widget\n\tthis.editorType = this.getEditorType();\n\t// Make the child widgets\n\tthis.makeChildWidgets([{\n\t\ttype: \"edit-\" + this.editorType,\n\t\tattributes: {\n\t\t\ttiddler: {type: \"string\", value: this.editTitle},\n\t\t\tfield: {type: \"string\", value: this.editField},\n\t\t\tindex: {type: \"string\", value: this.editIndex},\n\t\t\t\"class\": {type: \"string\", value: this.editClass},\n\t\t\t\"placeholder\": {type: \"string\", value: this.editPlaceholder}\n\t\t},\n\t\tchildren: this.parseTreeNode.children\n\t}]);\n};\n\nEditWidget.prototype.getEditorType = function() {\n\t// Get the content type of the thing we're editing\n\tvar type;\n\tif(this.editField === \"text\") {\n\t\tvar tiddler = this.wiki.getTiddler(this.editTitle);\n\t\tif(tiddler) {\n\t\t\ttype = tiddler.fields.type;\n\t\t}\n\t}\n\ttype = type || \"text/vnd.tiddlywiki\";\n\tvar editorType = this.wiki.getTiddlerText(EDITOR_MAPPING_PREFIX + type);\n\tif(!editorType) {\n\t\tvar typeInfo = $tw.config.contentTypeInfo[type];\n\t\tif(typeInfo && typeInfo.encoding === \"base64\") {\n\t\t\teditorType = \"binary\";\n\t\t} else {\n\t\t\teditorType = \"text\";\n\t\t}\n\t}\n\treturn editorType;\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nEditWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\t// Refresh if an attribute has changed, or the type associated with the target tiddler has changed\n\tif(changedAttributes.tiddler || changedAttributes.field || changedAttributes.index || (changedTiddlers[this.editTitle] && this.getEditorType() !== this.editorType)) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\treturn this.refreshChildren(changedTiddlers);\t\t\n\t}\n};\n\nexports.edit = EditWidget;\n\n})();\n", "title": "$:/core/modules/widgets/edit.js", "type": "application/javascript", "module-type": "widget" }, "$:/core/modules/widgets/element.js": { "text": "/*\\\ntitle: $:/core/modules/widgets/element.js\ntype: application/javascript\nmodule-type: widget\n\nElement widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar ElementWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nElementWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nElementWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\t// Neuter blacklisted elements\n\tvar tag = this.parseTreeNode.tag;\n\tif($tw.config.htmlUnsafeElements.indexOf(tag) !== -1) {\n\t\ttag = \"safe-\" + tag;\n\t}\n\tvar domNode = this.document.createElementNS(this.namespace,tag);\n\tthis.assignAttributes(domNode,{excludeEventAttributes: true});\n\tparent.insertBefore(domNode,nextSibling);\n\tthis.renderChildren(domNode,null);\n\tthis.domNodes.push(domNode);\n};\n\n/*\nCompute the internal state of the widget\n*/\nElementWidget.prototype.execute = function() {\n\t// Select the namespace for the tag\n\tvar tagNamespaces = {\n\t\t\tsvg: \"http://www.w3.org/2000/svg\",\n\t\t\tmath: \"http://www.w3.org/1998/Math/MathML\",\n\t\t\tbody: \"http://www.w3.org/1999/xhtml\"\n\t\t};\n\tthis.namespace = tagNamespaces[this.parseTreeNode.tag];\n\tif(this.namespace) {\n\t\tthis.setVariable(\"namespace\",this.namespace);\n\t} else {\n\t\tthis.namespace = this.getVariable(\"namespace\",{defaultValue: \"http://www.w3.org/1999/xhtml\"});\n\t}\n\t// Make the child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nElementWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes(),\n\t\thasChangedAttributes = $tw.utils.count(changedAttributes) > 0;\n\tif(hasChangedAttributes) {\n\t\t// Update our attributes\n\t\tthis.assignAttributes(this.domNodes[0],{excludeEventAttributes: true});\n\t}\n\treturn this.refreshChildren(changedTiddlers) || hasChangedAttributes;\n};\n\nexports.element = ElementWidget;\n\n})();\n", "title": "$:/core/modules/widgets/element.js", "type": "application/javascript", "module-type": "widget" }, "$:/core/modules/widgets/encrypt.js": { "text": "/*\\\ntitle: $:/core/modules/widgets/encrypt.js\ntype: application/javascript\nmodule-type: widget\n\nEncrypt widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar EncryptWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nEncryptWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nEncryptWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tvar textNode = this.document.createTextNode(this.encryptedText);\n\tparent.insertBefore(textNode,nextSibling);\n\tthis.domNodes.push(textNode);\n};\n\n/*\nCompute the internal state of the widget\n*/\nEncryptWidget.prototype.execute = function() {\n\t// Get parameters from our attributes\n\tthis.filter = this.getAttribute(\"filter\",\"[!is[system]]\");\n\t// Encrypt the filtered tiddlers\n\tvar tiddlers = this.wiki.filterTiddlers(this.filter),\n\t\tjson = {},\n\t\tself = this;\n\t$tw.utils.each(tiddlers,function(title) {\n\t\tvar tiddler = self.wiki.getTiddler(title),\n\t\t\tjsonTiddler = {};\n\t\tfor(var f in tiddler.fields) {\n\t\t\tjsonTiddler[f] = tiddler.getFieldString(f);\n\t\t}\n\t\tjson[title] = jsonTiddler;\n\t});\n\tthis.encryptedText = $tw.utils.htmlEncode($tw.crypto.encrypt(JSON.stringify(json)));\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nEncryptWidget.prototype.refresh = function(changedTiddlers) {\n\t// We don't need to worry about refreshing because the encrypt widget isn't for interactive use\n\treturn false;\n};\n\nexports.encrypt = EncryptWidget;\n\n})();\n", "title": "$:/core/modules/widgets/encrypt.js", "type": "application/javascript", "module-type": "widget" }, "$:/core/modules/widgets/entity.js": { "text": "/*\\\ntitle: $:/core/modules/widgets/entity.js\ntype: application/javascript\nmodule-type: widget\n\nHTML entity widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar EntityWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nEntityWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nEntityWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.execute();\n\tvar entityString = this.getAttribute(\"entity\",this.parseTreeNode.entity || \"\"),\n\t\ttextNode = this.document.createTextNode($tw.utils.entityDecode(entityString));\n\tparent.insertBefore(textNode,nextSibling);\n\tthis.domNodes.push(textNode);\n};\n\n/*\nCompute the internal state of the widget\n*/\nEntityWidget.prototype.execute = function() {\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nEntityWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.entity) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\treturn false;\t\n\t}\n};\n\nexports.entity = EntityWidget;\n\n})();\n", "title": "$:/core/modules/widgets/entity.js", "type": "application/javascript", "module-type": "widget" }, "$:/core/modules/widgets/fieldmangler.js": { "text": "/*\\\ntitle: $:/core/modules/widgets/fieldmangler.js\ntype: application/javascript\nmodule-type: widget\n\nField mangler widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar FieldManglerWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n\tthis.addEventListeners([\n\t\t{type: \"tm-remove-field\", handler: \"handleRemoveFieldEvent\"},\n\t\t{type: \"tm-add-field\", handler: \"handleAddFieldEvent\"},\n\t\t{type: \"tm-remove-tag\", handler: \"handleRemoveTagEvent\"},\n\t\t{type: \"tm-add-tag\", handler: \"handleAddTagEvent\"}\n\t]);\n};\n\n/*\nInherit from the base widget class\n*/\nFieldManglerWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nFieldManglerWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tthis.renderChildren(parent,nextSibling);\n};\n\n/*\nCompute the internal state of the widget\n*/\nFieldManglerWidget.prototype.execute = function() {\n\t// Get our parameters\n\tthis.mangleTitle = this.getAttribute(\"tiddler\",this.getVariable(\"currentTiddler\"));\n\t// Construct the child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nFieldManglerWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.tiddler) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\treturn this.refreshChildren(changedTiddlers);\t\t\n\t}\n};\n\nFieldManglerWidget.prototype.handleRemoveFieldEvent = function(event) {\n\tvar tiddler = this.wiki.getTiddler(this.mangleTitle),\n\t\tdeletion = {};\n\tdeletion[event.param] = undefined;\n\tthis.wiki.addTiddler(new $tw.Tiddler(tiddler,deletion));\n\treturn true;\n};\n\nFieldManglerWidget.prototype.handleAddFieldEvent = function(event) {\n\tvar tiddler = this.wiki.getTiddler(this.mangleTitle),\n\t\taddition = this.wiki.getModificationFields(),\n\t\thadInvalidFieldName = false,\n\t\taddField = function(name,value) {\n\t\t\tvar trimmedName = name.toLowerCase().trim();\n\t\t\tif(!$tw.utils.isValidFieldName(trimmedName)) {\n\t\t\t\tif(!hadInvalidFieldName) {\n\t\t\t\t\talert($tw.language.getString(\n\t\t\t\t\t\t\"InvalidFieldName\",\n\t\t\t\t\t\t{variables:\n\t\t\t\t\t\t\t{fieldName: trimmedName}\n\t\t\t\t\t\t}\n\t\t\t\t\t));\n\t\t\t\t\thadInvalidFieldName = true;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif(!value && tiddler) {\n\t\t\t\t\tvalue = tiddler.fields[trimmedName];\n\t\t\t\t}\n\t\t\t\taddition[trimmedName] = value || \"\";\n\t\t\t}\n\t\t\treturn;\n\t\t};\n\taddition.title = this.mangleTitle;\n\tif(typeof event.param === \"string\") {\n\t\taddField(event.param,\"\");\n\t}\n\tif(typeof event.paramObject === \"object\") {\n\t\tfor(var name in event.paramObject) {\n\t\t\taddField(name,event.paramObject[name]);\n\t\t}\n\t}\n\tthis.wiki.addTiddler(new $tw.Tiddler(tiddler,addition));\n\treturn true;\n};\n\nFieldManglerWidget.prototype.handleRemoveTagEvent = function(event) {\n\tvar tiddler = this.wiki.getTiddler(this.mangleTitle);\n\tif(tiddler && tiddler.fields.tags) {\n\t\tvar p = tiddler.fields.tags.indexOf(event.param);\n\t\tif(p !== -1) {\n\t\t\tvar modification = this.wiki.getModificationFields();\n\t\t\tmodification.tags = (tiddler.fields.tags || []).slice(0);\n\t\t\tmodification.tags.splice(p,1);\n\t\t\tif(modification.tags.length === 0) {\n\t\t\t\tmodification.tags = undefined;\n\t\t\t}\n\t\tthis.wiki.addTiddler(new $tw.Tiddler(tiddler,modification));\n\t\t}\n\t}\n\treturn true;\n};\n\nFieldManglerWidget.prototype.handleAddTagEvent = function(event) {\n\tvar tiddler = this.wiki.getTiddler(this.mangleTitle);\n\tif(tiddler && typeof event.param === \"string\") {\n\t\tvar tag = event.param.trim();\n\t\tif(tag !== \"\") {\n\t\t\tvar modification = this.wiki.getModificationFields();\n\t\t\tmodification.tags = (tiddler.fields.tags || []).slice(0);\n\t\t\t$tw.utils.pushTop(modification.tags,tag);\n\t\t\tthis.wiki.addTiddler(new $tw.Tiddler(tiddler,modification));\t\t\t\n\t\t}\n\t} else if(typeof event.param === \"string\" && event.param.trim() !== \"\" && this.mangleTitle.trim() !== \"\") {\n\t\tvar tag = [];\n\t\ttag.push(event.param.trim());\n\t\tthis.wiki.addTiddler({title: this.mangleTitle, tags: tag});\t\t\n\t}\n\treturn true;\n};\n\nexports.fieldmangler = FieldManglerWidget;\n\n})();\n", "title": "$:/core/modules/widgets/fieldmangler.js", "type": "application/javascript", "module-type": "widget" }, "$:/core/modules/widgets/fields.js": { "text": "/*\\\ntitle: $:/core/modules/widgets/fields.js\ntype: application/javascript\nmodule-type: widget\n\nFields widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar FieldsWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nFieldsWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nFieldsWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tvar textNode = this.document.createTextNode(this.text);\n\tparent.insertBefore(textNode,nextSibling);\n\tthis.domNodes.push(textNode);\n};\n\n/*\nCompute the internal state of the widget\n*/\nFieldsWidget.prototype.execute = function() {\n\t// Get parameters from our attributes\n\tthis.tiddlerTitle = this.getAttribute(\"tiddler\",this.getVariable(\"currentTiddler\"));\n\tthis.template = this.getAttribute(\"template\");\n\tthis.exclude = this.getAttribute(\"exclude\");\n\tthis.stripTitlePrefix = this.getAttribute(\"stripTitlePrefix\",\"no\") === \"yes\";\n\t// Get the value to display\n\tvar tiddler = this.wiki.getTiddler(this.tiddlerTitle);\n\t// Get the exclusion list\n\tvar exclude;\n\tif(this.exclude) {\n\t\texclude = this.exclude.split(\" \");\n\t} else {\n\t\texclude = [\"text\"]; \n\t}\n\t// Compose the template\n\tvar text = [];\n\tif(this.template && tiddler) {\n\t\tvar fields = [];\n\t\tfor(var fieldName in tiddler.fields) {\n\t\t\tif(exclude.indexOf(fieldName) === -1) {\n\t\t\t\tfields.push(fieldName);\n\t\t\t}\n\t\t}\n\t\tfields.sort();\n\t\tfor(var f=0; f<fields.length; f++) {\n\t\t\tfieldName = fields[f];\n\t\t\tif(exclude.indexOf(fieldName) === -1) {\n\t\t\t\tvar row = this.template,\n\t\t\t\t\tvalue = tiddler.getFieldString(fieldName);\n\t\t\t\tif(this.stripTitlePrefix && fieldName === \"title\") {\n\t\t\t\t\tvar reStrip = /^\\{[^\\}]+\\}(.+)/mg,\n\t\t\t\t\t\treMatch = reStrip.exec(value);\n\t\t\t\t\tif(reMatch) {\n\t\t\t\t\t\tvalue = reMatch[1];\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\trow = row.replace(\"$name$\",fieldName);\n\t\t\t\trow = row.replace(\"$value$\",value);\n\t\t\t\trow = row.replace(\"$encoded_value$\",$tw.utils.htmlEncode(value));\n\t\t\t\ttext.push(row);\n\t\t\t}\n\t\t}\n\t}\n\tthis.text = text.join(\"\");\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nFieldsWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.tiddler || changedAttributes.template || changedAttributes.exclude || changedAttributes.stripTitlePrefix || changedTiddlers[this.tiddlerTitle]) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\treturn false;\t\n\t}\n};\n\nexports.fields = FieldsWidget;\n\n})();\n", "title": "$:/core/modules/widgets/fields.js", "type": "application/javascript", "module-type": "widget" }, "$:/core/modules/widgets/image.js": { "text": "/*\\\ntitle: $:/core/modules/widgets/image.js\ntype: application/javascript\nmodule-type: widget\n\nThe image widget displays an image referenced with an external URI or with a local tiddler title.\n\n```\n<$image src=\"TiddlerTitle\" width=\"320\" height=\"400\" class=\"classnames\">\n```\n\nThe image source can be the title of an existing tiddler or the URL of an external image.\n\nExternal images always generate an HTML `<img>` tag.\n\nTiddlers that have a _canonical_uri field generate an HTML `<img>` tag with the src attribute containing the URI.\n\nTiddlers that contain image data generate an HTML `<img>` tag with the src attribute containing a base64 representation of the image.\n\nTiddlers that contain wikitext could be rendered to a DIV of the usual size of a tiddler, and then transformed to the size requested.\n\nThe width and height attributes are interpreted as a number of pixels, and do not need to include the \"px\" suffix.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar ImageWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nImageWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nImageWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\t// Create element\n\t// Determine what type of image it is\n\tvar tag = \"img\", src = \"\",\n\t\ttiddler = this.wiki.getTiddler(this.imageSource);\n\tif(!tiddler) {\n\t\t// The source isn't the title of a tiddler, so we'll assume it's a URL\n\t\tsrc = this.getVariable(\"tv-get-export-image-link\",{params: [{name: \"src\",value: this.imageSource}],defaultValue: this.imageSource});\n\t} else {\n\t\t// Check if it is an image tiddler\n\t\tif(this.wiki.isImageTiddler(this.imageSource)) {\n\t\t\tvar type = tiddler.fields.type,\n\t\t\t\ttext = tiddler.fields.text,\n\t\t\t\t_canonical_uri = tiddler.fields._canonical_uri;\n\t\t\t// If the tiddler has body text then it doesn't need to be lazily loaded\n\t\t\tif(text) {\n\t\t\t\t// Render the appropriate element for the image type\n\t\t\t\tswitch(type) {\n\t\t\t\t\tcase \"application/pdf\":\n\t\t\t\t\t\ttag = \"embed\";\n\t\t\t\t\t\tsrc = \"data:application/pdf;base64,\" + text;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"image/svg+xml\":\n\t\t\t\t\t\tsrc = \"data:image/svg+xml,\" + encodeURIComponent(text);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tsrc = \"data:\" + type + \";base64,\" + text;\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t} else if(_canonical_uri) {\n\t\t\t\tswitch(type) {\n\t\t\t\t\tcase \"application/pdf\":\n\t\t\t\t\t\ttag = \"embed\";\n\t\t\t\t\t\tsrc = _canonical_uri;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"image/svg+xml\":\n\t\t\t\t\t\tsrc = _canonical_uri;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tsrc = _canonical_uri;\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\t\n\t\t\t} else {\n\t\t\t\t// Just trigger loading of the tiddler\n\t\t\t\tthis.wiki.getTiddlerText(this.imageSource);\n\t\t\t}\n\t\t}\n\t}\n\t// Create the element and assign the attributes\n\tvar domNode = this.document.createElement(tag);\n\tdomNode.setAttribute(\"src\",src);\n\tif(this.imageClass) {\n\t\tdomNode.setAttribute(\"class\",this.imageClass);\t\t\n\t}\n\tif(this.imageWidth) {\n\t\tdomNode.setAttribute(\"width\",this.imageWidth);\n\t}\n\tif(this.imageHeight) {\n\t\tdomNode.setAttribute(\"height\",this.imageHeight);\n\t}\n\tif(this.imageTooltip) {\n\t\tdomNode.setAttribute(\"title\",this.imageTooltip);\t\t\n\t}\n\tif(this.imageAlt) {\n\t\tdomNode.setAttribute(\"alt\",this.imageAlt);\t\t\n\t}\n\t// Insert element\n\tparent.insertBefore(domNode,nextSibling);\n\tthis.domNodes.push(domNode);\n};\n\n/*\nCompute the internal state of the widget\n*/\nImageWidget.prototype.execute = function() {\n\t// Get our parameters\n\tthis.imageSource = this.getAttribute(\"source\");\n\tthis.imageWidth = this.getAttribute(\"width\");\n\tthis.imageHeight = this.getAttribute(\"height\");\n\tthis.imageClass = this.getAttribute(\"class\");\n\tthis.imageTooltip = this.getAttribute(\"tooltip\");\n\tthis.imageAlt = this.getAttribute(\"alt\");\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nImageWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.source || changedAttributes.width || changedAttributes.height || changedAttributes[\"class\"] || changedAttributes.tooltip || changedTiddlers[this.imageSource]) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\treturn false;\t\t\n\t}\n};\n\nexports.image = ImageWidget;\n\n})();\n", "title": "$:/core/modules/widgets/image.js", "type": "application/javascript", "module-type": "widget" }, "$:/core/modules/widgets/importvariables.js": { "text": "/*\\\ntitle: $:/core/modules/widgets/importvariables.js\ntype: application/javascript\nmodule-type: widget\n\nImport variable definitions from other tiddlers\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar ImportVariablesWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nImportVariablesWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nImportVariablesWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tthis.renderChildren(parent,nextSibling);\n};\n\n/*\nCompute the internal state of the widget\n*/\nImportVariablesWidget.prototype.execute = function(tiddlerList) {\n\tvar self = this;\n\t// Get our parameters\n\tthis.filter = this.getAttribute(\"filter\");\n\t// Compute the filter\n\tthis.tiddlerList = tiddlerList || this.wiki.filterTiddlers(this.filter,this);\n\t// Accumulate the <$set> widgets from each tiddler\n\tvar widgetStackStart,widgetStackEnd;\n\tfunction addWidgetNode(widgetNode) {\n\t\tif(widgetNode) {\n\t\t\tif(!widgetStackStart && !widgetStackEnd) {\n\t\t\t\twidgetStackStart = widgetNode;\n\t\t\t\twidgetStackEnd = widgetNode;\n\t\t\t} else {\n\t\t\t\twidgetStackEnd.children = [widgetNode];\n\t\t\t\twidgetStackEnd = widgetNode;\n\t\t\t}\n\t\t}\n\t}\n\t$tw.utils.each(this.tiddlerList,function(title) {\n\t\tvar parser = self.wiki.parseTiddler(title);\n\t\tif(parser) {\n\t\t\tvar parseTreeNode = parser.tree[0];\n\t\t\twhile(parseTreeNode && parseTreeNode.type === \"set\") {\n\t\t\t\taddWidgetNode({\n\t\t\t\t\ttype: \"set\",\n\t\t\t\t\tattributes: parseTreeNode.attributes,\n\t\t\t\t\tparams: parseTreeNode.params\n\t\t\t\t});\n\t\t\t\tparseTreeNode = parseTreeNode.children[0];\n\t\t\t}\n\t\t} \n\t});\n\t// Add our own children to the end of the pile\n\tvar parseTreeNodes;\n\tif(widgetStackStart && widgetStackEnd) {\n\t\tparseTreeNodes = [widgetStackStart];\n\t\twidgetStackEnd.children = this.parseTreeNode.children;\n\t} else {\n\t\tparseTreeNodes = this.parseTreeNode.children;\n\t}\n\t// Construct the child widgets\n\tthis.makeChildWidgets(parseTreeNodes);\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nImportVariablesWidget.prototype.refresh = function(changedTiddlers) {\n\t// Recompute our attributes and the filter list\n\tvar changedAttributes = this.computeAttributes(),\n\t\ttiddlerList = this.wiki.filterTiddlers(this.getAttribute(\"filter\"),this);\n\t// Refresh if the filter has changed, or the list of tiddlers has changed, or any of the tiddlers in the list has changed\n\tfunction haveListedTiddlersChanged() {\n\t\tvar changed = false;\n\t\ttiddlerList.forEach(function(title) {\n\t\t\tif(changedTiddlers[title]) {\n\t\t\t\tchanged = true;\n\t\t\t}\n\t\t});\n\t\treturn changed;\n\t}\n\tif(changedAttributes.filter || !$tw.utils.isArrayEqual(this.tiddlerList,tiddlerList) || haveListedTiddlersChanged()) {\n\t\t// Compute the filter\n\t\tthis.removeChildDomNodes();\n\t\tthis.execute(tiddlerList);\n\t\tthis.renderChildren(this.parentDomNode,this.findNextSiblingDomNode());\n\t\treturn true;\n\t} else {\n\t\treturn this.refreshChildren(changedTiddlers);\t\t\n\t}\n};\n\nexports.importvariables = ImportVariablesWidget;\n\n})();\n", "title": "$:/core/modules/widgets/importvariables.js", "type": "application/javascript", "module-type": "widget" }, "$:/core/modules/widgets/keyboard.js": { "text": "/*\\\ntitle: $:/core/modules/widgets/keyboard.js\ntype: application/javascript\nmodule-type: widget\n\nKeyboard shortcut widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar KeyboardWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nKeyboardWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nKeyboardWidget.prototype.render = function(parent,nextSibling) {\n\tvar self = this;\n\t// Remember parent\n\tthis.parentDomNode = parent;\n\t// Compute attributes and execute state\n\tthis.computeAttributes();\n\tthis.execute();\n\t// Create element\n\tvar domNode = this.document.createElement(\"div\");\n\t// Assign classes\n\tvar classes = (this[\"class\"] || \"\").split(\" \");\n\tclasses.push(\"tc-keyboard\");\n\tdomNode.className = classes.join(\" \");\n\t// Add a keyboard event handler\n\tdomNode.addEventListener(\"keydown\",function (event) {\n\t\tif($tw.keyboardManager.checkKeyDescriptors(event,self.keyInfoArray)) {\n\t\t\tself.invokeActions(self,event);\n\t\t\tif(self.actions) {\n\t\t\t\tself.invokeActionString(self.actions,self,event);\n\t\t\t}\n\t\t\tself.dispatchMessage(event);\n\t\t\tevent.preventDefault();\n\t\t\tevent.stopPropagation();\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t},false);\n\t// Insert element\n\tparent.insertBefore(domNode,nextSibling);\n\tthis.renderChildren(domNode,null);\n\tthis.domNodes.push(domNode);\n};\n\nKeyboardWidget.prototype.dispatchMessage = function(event) {\n\tthis.dispatchEvent({type: this.message, param: this.param, tiddlerTitle: this.getVariable(\"currentTiddler\")});\n};\n\n/*\nCompute the internal state of the widget\n*/\nKeyboardWidget.prototype.execute = function() {\n\t// Get attributes\n\tthis.actions = this.getAttribute(\"actions\");\n\tthis.message = this.getAttribute(\"message\");\n\tthis.param = this.getAttribute(\"param\");\n\tthis.key = this.getAttribute(\"key\");\n\tthis.keyInfoArray = $tw.keyboardManager.parseKeyDescriptors(this.key);\n\tthis[\"class\"] = this.getAttribute(\"class\");\n\t// Make child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nKeyboardWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.message || changedAttributes.param || changedAttributes.key || changedAttributes[\"class\"]) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t}\n\treturn this.refreshChildren(changedTiddlers);\n};\n\nexports.keyboard = KeyboardWidget;\n\n})();\n", "title": "$:/core/modules/widgets/keyboard.js", "type": "application/javascript", "module-type": "widget" }, "$:/core/modules/widgets/link.js": { "text": "/*\\\ntitle: $:/core/modules/widgets/link.js\ntype: application/javascript\nmodule-type: widget\n\nLink widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\nvar MISSING_LINK_CONFIG_TITLE = \"$:/config/MissingLinks\";\n\nvar LinkWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nLinkWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nLinkWidget.prototype.render = function(parent,nextSibling) {\n\t// Save the parent dom node\n\tthis.parentDomNode = parent;\n\t// Compute our attributes\n\tthis.computeAttributes();\n\t// Execute our logic\n\tthis.execute();\n\t// Get the value of the tv-wikilinks configuration macro\n\tvar wikiLinksMacro = this.getVariable(\"tv-wikilinks\"),\n\t\tuseWikiLinks = wikiLinksMacro ? (wikiLinksMacro.trim() !== \"no\") : true,\n\t\tmissingLinksEnabled = !(this.hideMissingLinks && this.isMissing && !this.isShadow);\n\t// Render the link if required\n\tif(useWikiLinks && missingLinksEnabled) {\n\t\tthis.renderLink(parent,nextSibling);\n\t} else {\n\t\t// Just insert the link text\n\t\tvar domNode = this.document.createElement(\"span\");\n\t\tparent.insertBefore(domNode,nextSibling);\n\t\tthis.renderChildren(domNode,null);\n\t\tthis.domNodes.push(domNode);\n\t}\n};\n\n/*\nRender this widget into the DOM\n*/\nLinkWidget.prototype.renderLink = function(parent,nextSibling) {\n\tvar self = this;\n\t// Sanitise the specified tag\n\tvar tag = this.linkTag;\n\tif($tw.config.htmlUnsafeElements.indexOf(tag) !== -1) {\n\t\ttag = \"a\";\n\t}\n\t// Create our element\n\tvar domNode = this.document.createElement(tag);\n\t// Assign classes\n\tvar classes = [];\n\tif(this.linkClasses) {\n\t\tclasses.push(this.linkClasses);\n\t}\n\tclasses.push(\"tc-tiddlylink\");\n\tif(this.isShadow) {\n\t\tclasses.push(\"tc-tiddlylink-shadow\");\n\t}\n\tif(this.isMissing && !this.isShadow) {\n\t\tclasses.push(\"tc-tiddlylink-missing\");\n\t} else {\n\t\tif(!this.isMissing) {\n\t\t\tclasses.push(\"tc-tiddlylink-resolves\");\n\t\t}\n\t}\n\tdomNode.setAttribute(\"class\",classes.join(\" \"));\n\t// Set an href\n\tvar wikiLinkTemplateMacro = this.getVariable(\"tv-wikilink-template\"),\n\t\twikiLinkTemplate = wikiLinkTemplateMacro ? wikiLinkTemplateMacro.trim() : \"#$uri_encoded$\",\n\t\twikiLinkText = wikiLinkTemplate.replace(\"$uri_encoded$\",encodeURIComponent(this.to));\n\twikiLinkText = wikiLinkText.replace(\"$uri_doubleencoded$\",encodeURIComponent(encodeURIComponent(this.to)));\n\twikiLinkText = this.getVariable(\"tv-get-export-link\",{params: [{name: \"to\",value: this.to}],defaultValue: wikiLinkText});\n\tif(tag === \"a\") {\n\t\tdomNode.setAttribute(\"href\",wikiLinkText);\n\t}\n\tif(this.tabIndex) {\n\t\tdomNode.setAttribute(\"tabindex\",this.tabIndex);\n\t}\n\t// Set the tooltip\n\t// HACK: Performance issues with re-parsing the tooltip prevent us defaulting the tooltip to \"<$transclude field='tooltip'><$transclude field='title'/></$transclude>\"\n\tvar tooltipWikiText = this.tooltip || this.getVariable(\"tv-wikilink-tooltip\");\n\tif(tooltipWikiText) {\n\t\tvar tooltipText = this.wiki.renderText(\"text/plain\",\"text/vnd.tiddlywiki\",tooltipWikiText,{\n\t\t\t\tparseAsInline: true,\n\t\t\t\tvariables: {\n\t\t\t\t\tcurrentTiddler: this.to\n\t\t\t\t},\n\t\t\t\tparentWidget: this\n\t\t\t});\n\t\tdomNode.setAttribute(\"title\",tooltipText);\n\t}\n\tif(this[\"aria-label\"]) {\n\t\tdomNode.setAttribute(\"aria-label\",this[\"aria-label\"]);\n\t}\n\t// Add a click event handler\n\t$tw.utils.addEventListeners(domNode,[\n\t\t{name: \"click\", handlerObject: this, handlerMethod: \"handleClickEvent\"},\n\t]);\n\tif(this.draggable === \"yes\") {\n\t\t$tw.utils.addEventListeners(domNode,[\n\t\t\t{name: \"dragstart\", handlerObject: this, handlerMethod: \"handleDragStartEvent\"},\n\t\t\t{name: \"dragend\", handlerObject: this, handlerMethod: \"handleDragEndEvent\"}\n\t\t]);\n\t}\n\t// Insert the link into the DOM and render any children\n\tparent.insertBefore(domNode,nextSibling);\n\tthis.renderChildren(domNode,null);\n\tthis.domNodes.push(domNode);\n};\n\nLinkWidget.prototype.handleClickEvent = function(event) {\n\t// Send the click on its way as a navigate event\n\tvar bounds = this.domNodes[0].getBoundingClientRect();\n\tthis.dispatchEvent({\n\t\ttype: \"tm-navigate\",\n\t\tnavigateTo: this.to,\n\t\tnavigateFromTitle: this.getVariable(\"storyTiddler\"),\n\t\tnavigateFromNode: this,\n\t\tnavigateFromClientRect: { top: bounds.top, left: bounds.left, width: bounds.width, right: bounds.right, bottom: bounds.bottom, height: bounds.height\n\t\t},\n\t\tnavigateSuppressNavigation: event.metaKey || event.ctrlKey || (event.button === 1)\n\t});\n\tif(this.domNodes[0].hasAttribute(\"href\")) {\n\t\tevent.preventDefault();\n\t}\n\tevent.stopPropagation();\n\treturn false;\n};\n\nLinkWidget.prototype.handleDragStartEvent = function(event) {\n\tif(event.target === this.domNodes[0]) {\n\t\tif(this.to) {\n\t\t\t$tw.dragInProgress = true;\n\t\t\t// Set the dragging class on the element being dragged\n\t\t\t$tw.utils.addClass(event.target,\"tc-tiddlylink-dragging\");\n\t\t\t// Create the drag image elements\n\t\t\tthis.dragImage = this.document.createElement(\"div\");\n\t\t\tthis.dragImage.className = \"tc-tiddler-dragger\";\n\t\t\tvar inner = this.document.createElement(\"div\");\n\t\t\tinner.className = \"tc-tiddler-dragger-inner\";\n\t\t\tinner.appendChild(this.document.createTextNode(this.to));\n\t\t\tthis.dragImage.appendChild(inner);\n\t\t\tthis.document.body.appendChild(this.dragImage);\n\t\t\t// Astoundingly, we need to cover the dragger up: http://www.kryogenix.org/code/browser/custom-drag-image.html\n\t\t\tvar cover = this.document.createElement(\"div\");\n\t\t\tcover.className = \"tc-tiddler-dragger-cover\";\n\t\t\tcover.style.left = (inner.offsetLeft - 16) + \"px\";\n\t\t\tcover.style.top = (inner.offsetTop - 16) + \"px\";\n\t\t\tcover.style.width = (inner.offsetWidth + 32) + \"px\";\n\t\t\tcover.style.height = (inner.offsetHeight + 32) + \"px\";\n\t\t\tthis.dragImage.appendChild(cover);\n\t\t\t// Set the data transfer properties\n\t\t\tvar dataTransfer = event.dataTransfer;\n\t\t\t// First the image\n\t\t\tdataTransfer.effectAllowed = \"copy\";\n\t\t\tif(dataTransfer.setDragImage) {\n\t\t\t\tdataTransfer.setDragImage(this.dragImage.firstChild,-16,-16);\n\t\t\t}\n\t\t\t// Then the data\n\t\t\tdataTransfer.clearData();\n\t\t\tvar jsonData = this.wiki.getTiddlerAsJson(this.to),\n\t\t\t\ttextData = this.wiki.getTiddlerText(this.to,\"\"),\n\t\t\t\ttitle = (new RegExp(\"^\" + $tw.config.textPrimitives.wikiLink + \"$\",\"mg\")).exec(this.to) ? this.to : \"[[\" + this.to + \"]]\";\n\t\t\t// IE doesn't like these content types\n\t\t\tif(!$tw.browser.isIE) {\n\t\t\t\tdataTransfer.setData(\"text/vnd.tiddler\",jsonData);\n\t\t\t\tdataTransfer.setData(\"text/plain\",title);\n\t\t\t\tdataTransfer.setData(\"text/x-moz-url\",\"data:text/vnd.tiddler,\" + encodeURIComponent(jsonData));\n\t\t\t}\n\t\t\tdataTransfer.setData(\"URL\",\"data:text/vnd.tiddler,\" + encodeURIComponent(jsonData));\n\t\t\tdataTransfer.setData(\"Text\",title);\n\t\t\tevent.stopPropagation();\n\t\t} else {\n\t\t\tevent.preventDefault();\n\t\t}\n\t}\n};\n\nLinkWidget.prototype.handleDragEndEvent = function(event) {\n\tif(event.target === this.domNodes[0]) {\n\t\t$tw.dragInProgress = false;\n\t\t// Remove the dragging class on the element being dragged\n\t\t$tw.utils.removeClass(event.target,\"tc-tiddlylink-dragging\");\n\t\t// Delete the drag image element\n\t\tif(this.dragImage) {\n\t\t\tthis.dragImage.parentNode.removeChild(this.dragImage);\n\t\t}\n\t}\n};\n\n/*\nCompute the internal state of the widget\n*/\nLinkWidget.prototype.execute = function() {\n\t// Pick up our attributes\n\tthis.to = this.getAttribute(\"to\",this.getVariable(\"currentTiddler\"));\n\tthis.tooltip = this.getAttribute(\"tooltip\");\n\tthis[\"aria-label\"] = this.getAttribute(\"aria-label\");\n\tthis.linkClasses = this.getAttribute(\"class\");\n\tthis.tabIndex = this.getAttribute(\"tabindex\");\n\tthis.draggable = this.getAttribute(\"draggable\",\"yes\");\n\tthis.linkTag = this.getAttribute(\"tag\",\"a\");\n\t// Determine the link characteristics\n\tthis.isMissing = !this.wiki.tiddlerExists(this.to);\n\tthis.isShadow = this.wiki.isShadowTiddler(this.to);\n\tthis.hideMissingLinks = ($tw.wiki.getTiddlerText(MISSING_LINK_CONFIG_TITLE,\"yes\") === \"no\");\n\t// Make the child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nLinkWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.to || changedTiddlers[this.to] || changedAttributes[\"aria-label\"] || changedAttributes.tooltip || changedTiddlers[MISSING_LINK_CONFIG_TITLE]) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t}\n\treturn this.refreshChildren(changedTiddlers);\n};\n\nexports.link = LinkWidget;\n\n})();\n", "title": "$:/core/modules/widgets/link.js", "type": "application/javascript", "module-type": "widget" }, "$:/core/modules/widgets/linkcatcher.js": { "text": "/*\\\ntitle: $:/core/modules/widgets/linkcatcher.js\ntype: application/javascript\nmodule-type: widget\n\nLinkcatcher widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar LinkCatcherWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n\tthis.addEventListeners([\n\t\t{type: \"tm-navigate\", handler: \"handleNavigateEvent\"}\n\t]);\n};\n\n/*\nInherit from the base widget class\n*/\nLinkCatcherWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nLinkCatcherWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tthis.renderChildren(parent,nextSibling);\n};\n\n/*\nCompute the internal state of the widget\n*/\nLinkCatcherWidget.prototype.execute = function() {\n\t// Get our parameters\n\tthis.catchTo = this.getAttribute(\"to\");\n\tthis.catchMessage = this.getAttribute(\"message\");\n\tthis.catchSet = this.getAttribute(\"set\");\n\tthis.catchSetTo = this.getAttribute(\"setTo\");\n\tthis.catchActions = this.getAttribute(\"actions\");\n\t// Construct the child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nLinkCatcherWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.to || changedAttributes.message || changedAttributes.set || changedAttributes.setTo) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\treturn this.refreshChildren(changedTiddlers);\t\t\n\t}\n};\n\n/*\nHandle a tm-navigate event\n*/\nLinkCatcherWidget.prototype.handleNavigateEvent = function(event) {\n\tif(this.catchTo) {\n\t\tthis.wiki.setTextReference(this.catchTo,event.navigateTo,this.getVariable(\"currentTiddler\"));\n\t}\n\tif(this.catchMessage && this.parentWidget) {\n\t\tthis.parentWidget.dispatchEvent({\n\t\t\ttype: this.catchMessage,\n\t\t\tparam: event.navigateTo,\n\t\t\tnavigateTo: event.navigateTo\n\t\t});\n\t}\n\tif(this.catchSet) {\n\t\tvar tiddler = this.wiki.getTiddler(this.catchSet);\n\t\tthis.wiki.addTiddler(new $tw.Tiddler(tiddler,{title: this.catchSet, text: this.catchSetTo}));\n\t}\n\tif(this.catchActions) {\n\t\tthis.invokeActionString(this.catchActions,this);\n\t}\n\treturn false;\n};\n\nexports.linkcatcher = LinkCatcherWidget;\n\n})();\n", "title": "$:/core/modules/widgets/linkcatcher.js", "type": "application/javascript", "module-type": "widget" }, "$:/core/modules/widgets/list.js": { "text": "/*\\\ntitle: $:/core/modules/widgets/list.js\ntype: application/javascript\nmodule-type: widget\n\nList and list item widgets\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\n/*\nThe list widget creates list element sub-widgets that reach back into the list widget for their configuration\n*/\n\nvar ListWidget = function(parseTreeNode,options) {\n\t// Initialise the storyviews if they've not been done already\n\tif(!this.storyViews) {\n\t\tListWidget.prototype.storyViews = {};\n\t\t$tw.modules.applyMethods(\"storyview\",this.storyViews);\n\t}\n\t// Main initialisation inherited from widget.js\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nListWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nListWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tthis.renderChildren(parent,nextSibling);\n\t// Construct the storyview\n\tvar StoryView = this.storyViews[this.storyViewName];\n\tif(StoryView && !this.document.isTiddlyWikiFakeDom) {\n\t\tthis.storyview = new StoryView(this);\n\t} else {\n\t\tthis.storyview = null;\n\t}\n};\n\n/*\nCompute the internal state of the widget\n*/\nListWidget.prototype.execute = function() {\n\t// Get our attributes\n\tthis.template = this.getAttribute(\"template\");\n\tthis.editTemplate = this.getAttribute(\"editTemplate\");\n\tthis.variableName = this.getAttribute(\"variable\",\"currentTiddler\");\n\tthis.storyViewName = this.getAttribute(\"storyview\");\n\tthis.historyTitle = this.getAttribute(\"history\");\n\t// Compose the list elements\n\tthis.list = this.getTiddlerList();\n\tvar members = [],\n\t\tself = this;\n\t// Check for an empty list\n\tif(this.list.length === 0) {\n\t\tmembers = this.getEmptyMessage();\n\t} else {\n\t\t$tw.utils.each(this.list,function(title,index) {\n\t\t\tmembers.push(self.makeItemTemplate(title));\n\t\t});\n\t}\n\t// Construct the child widgets\n\tthis.makeChildWidgets(members);\n\t// Clear the last history\n\tthis.history = [];\n};\n\nListWidget.prototype.getTiddlerList = function() {\n\tvar defaultFilter = \"[!is[system]sort[title]]\";\n\treturn this.wiki.filterTiddlers(this.getAttribute(\"filter\",defaultFilter),this);\n};\n\nListWidget.prototype.getEmptyMessage = function() {\n\tvar emptyMessage = this.getAttribute(\"emptyMessage\",\"\"),\n\t\tparser = this.wiki.parseText(\"text/vnd.tiddlywiki\",emptyMessage,{parseAsInline: true});\n\tif(parser) {\n\t\treturn parser.tree;\n\t} else {\n\t\treturn [];\n\t}\n};\n\n/*\nCompose the template for a list item\n*/\nListWidget.prototype.makeItemTemplate = function(title) {\n\t// Check if the tiddler is a draft\n\tvar tiddler = this.wiki.getTiddler(title),\n\t\tisDraft = tiddler && tiddler.hasField(\"draft.of\"),\n\t\ttemplate = this.template,\n\t\ttemplateTree;\n\tif(isDraft && this.editTemplate) {\n\t\ttemplate = this.editTemplate;\n\t}\n\t// Compose the transclusion of the template\n\tif(template) {\n\t\ttemplateTree = [{type: \"transclude\", attributes: {tiddler: {type: \"string\", value: template}}}];\n\t} else {\n\t\tif(this.parseTreeNode.children && this.parseTreeNode.children.length > 0) {\n\t\t\ttemplateTree = this.parseTreeNode.children;\n\t\t} else {\n\t\t\t// Default template is a link to the title\n\t\t\ttemplateTree = [{type: \"element\", tag: this.parseTreeNode.isBlock ? \"div\" : \"span\", children: [{type: \"link\", attributes: {to: {type: \"string\", value: title}}, children: [\n\t\t\t\t\t{type: \"text\", text: title}\n\t\t\t]}]}];\n\t\t}\n\t}\n\t// Return the list item\n\treturn {type: \"listitem\", itemTitle: title, variableName: this.variableName, children: templateTree};\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nListWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes(),\n\t\tresult;\n\t// Call the storyview\n\tif(this.storyview && this.storyview.refreshStart) {\n\t\tthis.storyview.refreshStart(changedTiddlers,changedAttributes);\n\t}\n\t// Completely refresh if any of our attributes have changed\n\tif(changedAttributes.filter || changedAttributes.template || changedAttributes.editTemplate || changedAttributes.emptyMessage || changedAttributes.storyview || changedAttributes.history) {\n\t\tthis.refreshSelf();\n\t\tresult = true;\n\t} else {\n\t\t// Handle any changes to the list\n\t\tresult = this.handleListChanges(changedTiddlers);\n\t\t// Handle any changes to the history stack\n\t\tif(this.historyTitle && changedTiddlers[this.historyTitle]) {\n\t\t\tthis.handleHistoryChanges();\n\t\t}\n\t}\n\t// Call the storyview\n\tif(this.storyview && this.storyview.refreshEnd) {\n\t\tthis.storyview.refreshEnd(changedTiddlers,changedAttributes);\n\t}\n\treturn result;\n};\n\n/*\nHandle any changes to the history list\n*/\nListWidget.prototype.handleHistoryChanges = function() {\n\t// Get the history data\n\tvar newHistory = this.wiki.getTiddlerDataCached(this.historyTitle,[]);\n\t// Ignore any entries of the history that match the previous history\n\tvar entry = 0;\n\twhile(entry < newHistory.length && entry < this.history.length && newHistory[entry].title === this.history[entry].title) {\n\t\tentry++;\n\t}\n\t// Navigate forwards to each of the new tiddlers\n\twhile(entry < newHistory.length) {\n\t\tif(this.storyview && this.storyview.navigateTo) {\n\t\t\tthis.storyview.navigateTo(newHistory[entry]);\n\t\t}\n\t\tentry++;\n\t}\n\t// Update the history\n\tthis.history = newHistory;\n};\n\n/*\nProcess any changes to the list\n*/\nListWidget.prototype.handleListChanges = function(changedTiddlers) {\n\t// Get the new list\n\tvar prevList = this.list;\n\tthis.list = this.getTiddlerList();\n\t// Check for an empty list\n\tif(this.list.length === 0) {\n\t\t// Check if it was empty before\n\t\tif(prevList.length === 0) {\n\t\t\t// If so, just refresh the empty message\n\t\t\treturn this.refreshChildren(changedTiddlers);\n\t\t} else {\n\t\t\t// Replace the previous content with the empty message\n\t\t\tfor(t=this.children.length-1; t>=0; t--) {\n\t\t\t\tthis.removeListItem(t);\n\t\t\t}\n\t\t\tvar nextSibling = this.findNextSiblingDomNode();\n\t\t\tthis.makeChildWidgets(this.getEmptyMessage());\n\t\t\tthis.renderChildren(this.parentDomNode,nextSibling);\n\t\t\treturn true;\n\t\t}\n\t} else {\n\t\t// If the list was empty then we need to remove the empty message\n\t\tif(prevList.length === 0) {\n\t\t\tthis.removeChildDomNodes();\n\t\t\tthis.children = [];\n\t\t}\n\t\t// Cycle through the list, inserting and removing list items as needed\n\t\tvar hasRefreshed = false;\n\t\tfor(var t=0; t<this.list.length; t++) {\n\t\t\tvar index = this.findListItem(t,this.list[t]);\n\t\t\tif(index === undefined) {\n\t\t\t\t// The list item must be inserted\n\t\t\t\tthis.insertListItem(t,this.list[t]);\n\t\t\t\thasRefreshed = true;\n\t\t\t} else {\n\t\t\t\t// There are intervening list items that must be removed\n\t\t\t\tfor(var n=index-1; n>=t; n--) {\n\t\t\t\t\tthis.removeListItem(n);\n\t\t\t\t\thasRefreshed = true;\n\t\t\t\t}\n\t\t\t\t// Refresh the item we're reusing\n\t\t\t\tvar refreshed = this.children[t].refresh(changedTiddlers);\n\t\t\t\thasRefreshed = hasRefreshed || refreshed;\n\t\t\t}\n\t\t}\n\t\t// Remove any left over items\n\t\tfor(t=this.children.length-1; t>=this.list.length; t--) {\n\t\t\tthis.removeListItem(t);\n\t\t\thasRefreshed = true;\n\t\t}\n\t\treturn hasRefreshed;\n\t}\n};\n\n/*\nFind the list item with a given title, starting from a specified position\n*/\nListWidget.prototype.findListItem = function(startIndex,title) {\n\twhile(startIndex < this.children.length) {\n\t\tif(this.children[startIndex].parseTreeNode.itemTitle === title) {\n\t\t\treturn startIndex;\n\t\t}\n\t\tstartIndex++;\n\t}\n\treturn undefined;\n};\n\n/*\nInsert a new list item at the specified index\n*/\nListWidget.prototype.insertListItem = function(index,title) {\n\t// Create, insert and render the new child widgets\n\tvar widget = this.makeChildWidget(this.makeItemTemplate(title));\n\twidget.parentDomNode = this.parentDomNode; // Hack to enable findNextSiblingDomNode() to work\n\tthis.children.splice(index,0,widget);\n\tvar nextSibling = widget.findNextSiblingDomNode();\n\twidget.render(this.parentDomNode,nextSibling);\n\t// Animate the insertion if required\n\tif(this.storyview && this.storyview.insert) {\n\t\tthis.storyview.insert(widget);\n\t}\n\treturn true;\n};\n\n/*\nRemove the specified list item\n*/\nListWidget.prototype.removeListItem = function(index) {\n\tvar widget = this.children[index];\n\t// Animate the removal if required\n\tif(this.storyview && this.storyview.remove) {\n\t\tthis.storyview.remove(widget);\n\t} else {\n\t\twidget.removeChildDomNodes();\n\t}\n\t// Remove the child widget\n\tthis.children.splice(index,1);\n};\n\nexports.list = ListWidget;\n\nvar ListItemWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nListItemWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nListItemWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tthis.renderChildren(parent,nextSibling);\n};\n\n/*\nCompute the internal state of the widget\n*/\nListItemWidget.prototype.execute = function() {\n\t// Set the current list item title\n\tthis.setVariable(this.parseTreeNode.variableName,this.parseTreeNode.itemTitle);\n\t// Construct the child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nListItemWidget.prototype.refresh = function(changedTiddlers) {\n\treturn this.refreshChildren(changedTiddlers);\n};\n\nexports.listitem = ListItemWidget;\n\n})();", "title": "$:/core/modules/widgets/list.js", "type": "application/javascript", "module-type": "widget" }, "$:/core/modules/widgets/macrocall.js": { "text": "/*\\\ntitle: $:/core/modules/widgets/macrocall.js\ntype: application/javascript\nmodule-type: widget\n\nMacrocall widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar MacroCallWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nMacroCallWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nMacroCallWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tthis.renderChildren(parent,nextSibling);\n};\n\n/*\nCompute the internal state of the widget\n*/\nMacroCallWidget.prototype.execute = function() {\n\t// Get the parse type if specified\n\tthis.parseType = this.getAttribute(\"$type\",\"text/vnd.tiddlywiki\");\n\tthis.renderOutput = this.getAttribute(\"$output\",\"text/html\");\n\t// Merge together the parameters specified in the parse tree with the specified attributes\n\tvar params = this.parseTreeNode.params ? this.parseTreeNode.params.slice(0) : [];\n\t$tw.utils.each(this.attributes,function(attribute,name) {\n\t\tif(name.charAt(0) !== \"$\") {\n\t\t\tparams.push({name: name, value: attribute});\t\t\t\n\t\t}\n\t});\n\t// Get the macro value\n\tvar text = this.getVariable(this.parseTreeNode.name || this.getAttribute(\"$name\"),{params: params}),\n\t\tparseTreeNodes;\n\t// Are we rendering to HTML?\n\tif(this.renderOutput === \"text/html\") {\n\t\t// If so we'll return the parsed macro\n\t\tvar parser = this.wiki.parseText(this.parseType,text,\n\t\t\t\t\t\t\t{parseAsInline: !this.parseTreeNode.isBlock});\n\t\tparseTreeNodes = parser ? parser.tree : [];\n\t} else {\n\t\t// Otherwise, we'll render the text\n\t\tvar plainText = this.wiki.renderText(\"text/plain\",this.parseType,text,{parentWidget: this});\n\t\tparseTreeNodes = [{type: \"text\", text: plainText}];\n\t}\n\t// Construct the child widgets\n\tthis.makeChildWidgets(parseTreeNodes);\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nMacroCallWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif($tw.utils.count(changedAttributes) > 0) {\n\t\t// Rerender ourselves\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\treturn this.refreshChildren(changedTiddlers);\n\t}\n};\n\nexports.macrocall = MacroCallWidget;\n\n})();\n", "title": "$:/core/modules/widgets/macrocall.js", "type": "application/javascript", "module-type": "widget" }, "$:/core/modules/widgets/navigator.js": { "text": "/*\\\ntitle: $:/core/modules/widgets/navigator.js\ntype: application/javascript\nmodule-type: widget\n\nNavigator widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar IMPORT_TITLE = \"$:/Import\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar NavigatorWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n\tthis.addEventListeners([\n\t\t{type: \"tm-navigate\", handler: \"handleNavigateEvent\"},\n\t\t{type: \"tm-edit-tiddler\", handler: \"handleEditTiddlerEvent\"},\n\t\t{type: \"tm-delete-tiddler\", handler: \"handleDeleteTiddlerEvent\"},\n\t\t{type: \"tm-save-tiddler\", handler: \"handleSaveTiddlerEvent\"},\n\t\t{type: \"tm-cancel-tiddler\", handler: \"handleCancelTiddlerEvent\"},\n\t\t{type: \"tm-close-tiddler\", handler: \"handleCloseTiddlerEvent\"},\n\t\t{type: \"tm-close-all-tiddlers\", handler: \"handleCloseAllTiddlersEvent\"},\n\t\t{type: \"tm-close-other-tiddlers\", handler: \"handleCloseOtherTiddlersEvent\"},\n\t\t{type: \"tm-new-tiddler\", handler: \"handleNewTiddlerEvent\"},\n\t\t{type: \"tm-import-tiddlers\", handler: \"handleImportTiddlersEvent\"},\n\t\t{type: \"tm-perform-import\", handler: \"handlePerformImportEvent\"},\n\t\t{type: \"tm-fold-tiddler\", handler: \"handleFoldTiddlerEvent\"},\n\t\t{type: \"tm-fold-other-tiddlers\", handler: \"handleFoldOtherTiddlersEvent\"},\n\t\t{type: \"tm-fold-all-tiddlers\", handler: \"handleFoldAllTiddlersEvent\"},\n\t\t{type: \"tm-unfold-all-tiddlers\", handler: \"handleUnfoldAllTiddlersEvent\"},\n\t\t{type: \"tm-rename-tiddler\", handler: \"handleRenameTiddlerEvent\"}\n\t]);\n};\n\n/*\nInherit from the base widget class\n*/\nNavigatorWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nNavigatorWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tthis.renderChildren(parent,nextSibling);\n};\n\n/*\nCompute the internal state of the widget\n*/\nNavigatorWidget.prototype.execute = function() {\n\t// Get our parameters\n\tthis.storyTitle = this.getAttribute(\"story\");\n\tthis.historyTitle = this.getAttribute(\"history\");\n\t// Construct the child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nNavigatorWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.story || changedAttributes.history) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\treturn this.refreshChildren(changedTiddlers);\t\t\n\t}\n};\n\nNavigatorWidget.prototype.getStoryList = function() {\n\treturn this.storyTitle ? this.wiki.getTiddlerList(this.storyTitle) : null;\n};\n\nNavigatorWidget.prototype.saveStoryList = function(storyList) {\n\tvar storyTiddler = this.wiki.getTiddler(this.storyTitle);\n\tthis.wiki.addTiddler(new $tw.Tiddler(\n\t\t{title: this.storyTitle},\n\t\tstoryTiddler,\n\t\t{list: storyList}\n\t));\n};\n\nNavigatorWidget.prototype.removeTitleFromStory = function(storyList,title) {\n\tvar p = storyList.indexOf(title);\n\twhile(p !== -1) {\n\t\tstoryList.splice(p,1);\n\t\tp = storyList.indexOf(title);\n\t}\n};\n\nNavigatorWidget.prototype.replaceFirstTitleInStory = function(storyList,oldTitle,newTitle) {\n\tvar pos = storyList.indexOf(oldTitle);\n\tif(pos !== -1) {\n\t\tstoryList[pos] = newTitle;\n\t\tdo {\n\t\t\tpos = storyList.indexOf(oldTitle,pos + 1);\n\t\t\tif(pos !== -1) {\n\t\t\t\tstoryList.splice(pos,1);\n\t\t\t}\n\t\t} while(pos !== -1);\n\t} else {\n\t\tstoryList.splice(0,0,newTitle);\n\t}\n};\n\nNavigatorWidget.prototype.addToStory = function(title,fromTitle) {\n\tvar storyList = this.getStoryList();\n\t// Quit if we cannot get hold of the story list\n\tif(!storyList) {\n\t\treturn;\n\t}\n\t// See if the tiddler is already there\n\tvar slot = storyList.indexOf(title);\n\t// Quit if it already exists in the story river\n\tif(slot >= 0) {\n\t\treturn;\n\t}\n\t// First we try to find the position of the story element we navigated from\n\tvar fromIndex = storyList.indexOf(fromTitle);\n\tif(fromIndex >= 0) {\n\t\t// The tiddler is added from inside the river\n\t\t// Determine where to insert the tiddler; Fallback is \"below\"\n\t\tswitch(this.getAttribute(\"openLinkFromInsideRiver\",\"below\")) {\n\t\t\tcase \"top\":\n\t\t\t\tslot = 0;\n\t\t\t\tbreak;\n\t\t\tcase \"bottom\":\n\t\t\t\tslot = storyList.length;\n\t\t\t\tbreak;\n\t\t\tcase \"above\":\n\t\t\t\tslot = fromIndex;\n\t\t\t\tbreak;\n\t\t\tcase \"below\": // Intentional fall-through\n\t\t\tdefault:\n\t\t\t\tslot = fromIndex + 1;\n\t\t\t\tbreak;\n\t\t}\n\t} else {\n\t\t// The tiddler is opened from outside the river. Determine where to insert the tiddler; default is \"top\"\n\t\tif(this.getAttribute(\"openLinkFromOutsideRiver\",\"top\") === \"bottom\") {\n\t\t\t// Insert at bottom\n\t\t\tslot = storyList.length;\n\t\t} else {\n\t\t\t// Insert at top\n\t\t\tslot = 0;\n\t\t}\n\t}\n\t// Add the tiddler\n\tstoryList.splice(slot,0,title);\n\t// Save the story\n\tthis.saveStoryList(storyList);\n};\n\n/*\nAdd a new record to the top of the history stack\ntitle: a title string or an array of title strings\nfromPageRect: page coordinates of the origin of the navigation\n*/\nNavigatorWidget.prototype.addToHistory = function(title,fromPageRect) {\n\tthis.wiki.addToHistory(title,fromPageRect,this.historyTitle);\n};\n\n/*\nHandle a tm-navigate event\n*/\nNavigatorWidget.prototype.handleNavigateEvent = function(event) {\n\tif(event.navigateTo) {\n\t\tthis.addToStory(event.navigateTo,event.navigateFromTitle);\n\t\tif(!event.navigateSuppressNavigation) {\n\t\t\tthis.addToHistory(event.navigateTo,event.navigateFromClientRect);\n\t\t}\n\t}\n\treturn false;\n};\n\n// Close a specified tiddler\nNavigatorWidget.prototype.handleCloseTiddlerEvent = function(event) {\n\tvar title = event.param || event.tiddlerTitle,\n\t\tstoryList = this.getStoryList();\n\t// Look for tiddlers with this title to close\n\tthis.removeTitleFromStory(storyList,title);\n\tthis.saveStoryList(storyList);\n\treturn false;\n};\n\n// Close all tiddlers\nNavigatorWidget.prototype.handleCloseAllTiddlersEvent = function(event) {\n\tthis.saveStoryList([]);\n\treturn false;\n};\n\n// Close other tiddlers\nNavigatorWidget.prototype.handleCloseOtherTiddlersEvent = function(event) {\n\tvar title = event.param || event.tiddlerTitle;\n\tthis.saveStoryList([title]);\n\treturn false;\n};\n\n// Place a tiddler in edit mode\nNavigatorWidget.prototype.handleEditTiddlerEvent = function(event) {\n\tvar self = this;\n\tfunction isUnmodifiedShadow(title) {\n\t\treturn self.wiki.isShadowTiddler(title) && !self.wiki.tiddlerExists(title);\n\t}\n\tfunction confirmEditShadow(title) {\n\t\treturn confirm($tw.language.getString(\n\t\t\t\"ConfirmEditShadowTiddler\",\n\t\t\t{variables:\n\t\t\t\t{title: title}\n\t\t\t}\n\t\t));\n\t}\n\tvar title = event.param || event.tiddlerTitle;\n\tif(isUnmodifiedShadow(title) && !confirmEditShadow(title)) {\n\t\treturn false;\n\t}\n\t// Replace the specified tiddler with a draft in edit mode\n\tvar draftTiddler = this.makeDraftTiddler(title);\n\t// Update the story and history if required\n\tif(!event.paramObject || event.paramObject.suppressNavigation !== \"yes\") {\n\t\tvar draftTitle = draftTiddler.fields.title,\n\t\t\tstoryList = this.getStoryList();\n\t\tthis.removeTitleFromStory(storyList,draftTitle);\n\t\tthis.replaceFirstTitleInStory(storyList,title,draftTitle);\n\t\tthis.addToHistory(draftTitle,event.navigateFromClientRect);\n\t\tthis.saveStoryList(storyList);\n\t\treturn false;\n\t}\n};\n\n// Delete a tiddler\nNavigatorWidget.prototype.handleDeleteTiddlerEvent = function(event) {\n\t// Get the tiddler we're deleting\n\tvar title = event.param || event.tiddlerTitle,\n\t\ttiddler = this.wiki.getTiddler(title),\n\t\tstoryList = this.getStoryList(),\n\t\toriginalTitle = tiddler ? tiddler.fields[\"draft.of\"] : \"\",\n\t\tconfirmationTitle;\n\tif(!tiddler) {\n\t\treturn false;\n\t}\n\t// Check if the tiddler we're deleting is in draft mode\n\tif(originalTitle) {\n\t\t// If so, we'll prompt for confirmation referencing the original tiddler\n\t\tconfirmationTitle = originalTitle;\n\t} else {\n\t\t// If not a draft, then prompt for confirmation referencing the specified tiddler\n\t\tconfirmationTitle = title;\n\t}\n\t// Seek confirmation\n\tif((this.wiki.getTiddler(originalTitle) || (tiddler.fields.text || \"\") !== \"\") && !confirm($tw.language.getString(\n\t\t\t\t\"ConfirmDeleteTiddler\",\n\t\t\t\t{variables:\n\t\t\t\t\t{title: confirmationTitle}\n\t\t\t\t}\n\t\t\t))) {\n\t\treturn false;\n\t}\n\t// Delete the original tiddler\n\tif(originalTitle) {\n\t\tthis.wiki.deleteTiddler(originalTitle);\n\t\tthis.removeTitleFromStory(storyList,originalTitle);\n\t}\n\t// Delete this tiddler\n\tthis.wiki.deleteTiddler(title);\n\t// Remove the closed tiddler from the story\n\tthis.removeTitleFromStory(storyList,title);\n\tthis.saveStoryList(storyList);\n\t// Trigger an autosave\n\t$tw.rootWidget.dispatchEvent({type: \"tm-auto-save-wiki\"});\n\treturn false;\n};\n\n/*\nCreate/reuse the draft tiddler for a given title\n*/\nNavigatorWidget.prototype.makeDraftTiddler = function(targetTitle) {\n\t// See if there is already a draft tiddler for this tiddler\n\tvar draftTitle = this.wiki.findDraft(targetTitle);\n\tif(draftTitle) {\n\t\treturn this.wiki.getTiddler(draftTitle);\n\t}\n\t// Get the current value of the tiddler we're editing\n\tvar tiddler = this.wiki.getTiddler(targetTitle);\n\t// Save the initial value of the draft tiddler\n\tdraftTitle = this.generateDraftTitle(targetTitle);\n\tvar draftTiddler = new $tw.Tiddler(\n\t\t\ttiddler,\n\t\t\t{\n\t\t\t\ttitle: draftTitle,\n\t\t\t\t\"draft.title\": targetTitle,\n\t\t\t\t\"draft.of\": targetTitle\n\t\t\t},\n\t\t\tthis.wiki.getModificationFields()\n\t\t);\n\tthis.wiki.addTiddler(draftTiddler);\n\treturn draftTiddler;\n};\n\n/*\nGenerate a title for the draft of a given tiddler\n*/\nNavigatorWidget.prototype.generateDraftTitle = function(title) {\n\tvar c = 0,\n\t\tdraftTitle;\n\tdo {\n\t\tdraftTitle = \"Draft \" + (c ? (c + 1) + \" \" : \"\") + \"of '\" + title + \"'\";\n\t\tc++;\n\t} while(this.wiki.tiddlerExists(draftTitle));\n\treturn draftTitle;\n};\n\n// Take a tiddler out of edit mode, saving the changes\nNavigatorWidget.prototype.handleSaveTiddlerEvent = function(event) {\n\tvar title = event.param || event.tiddlerTitle,\n\t\ttiddler = this.wiki.getTiddler(title),\n\t\tstoryList = this.getStoryList();\n\t// Replace the original tiddler with the draft\n\tif(tiddler) {\n\t\tvar draftTitle = (tiddler.fields[\"draft.title\"] || \"\").trim(),\n\t\t\tdraftOf = (tiddler.fields[\"draft.of\"] || \"\").trim();\n\t\tif(draftTitle) {\n\t\t\tvar isRename = draftOf !== draftTitle,\n\t\t\t\tisConfirmed = true;\n\t\t\tif(isRename && this.wiki.tiddlerExists(draftTitle)) {\n\t\t\t\tisConfirmed = confirm($tw.language.getString(\n\t\t\t\t\t\"ConfirmOverwriteTiddler\",\n\t\t\t\t\t{variables:\n\t\t\t\t\t\t{title: draftTitle}\n\t\t\t\t\t}\n\t\t\t\t));\n\t\t\t}\n\t\t\tif(isConfirmed) {\n\t\t\t\t// Create the new tiddler and pass it through the th-saving-tiddler hook\n\t\t\t\tvar newTiddler = new $tw.Tiddler(this.wiki.getCreationFields(),tiddler,{\n\t\t\t\t\ttitle: draftTitle,\n\t\t\t\t\t\"draft.title\": undefined,\n\t\t\t\t\t\"draft.of\": undefined\n\t\t\t\t},this.wiki.getModificationFields());\n\t\t\t\tnewTiddler = $tw.hooks.invokeHook(\"th-saving-tiddler\",newTiddler);\n\t\t\t\tthis.wiki.addTiddler(newTiddler);\n\t\t\t\t// Remove the draft tiddler\n\t\t\t\tthis.wiki.deleteTiddler(title);\n\t\t\t\t// Remove the original tiddler if we're renaming it\n\t\t\t\tif(isRename) {\n\t\t\t\t\tthis.wiki.deleteTiddler(draftOf);\n\t\t\t\t}\n\t\t\t\tif(!event.paramObject || event.paramObject.suppressNavigation !== \"yes\") {\n\t\t\t\t\t// Replace the draft in the story with the original\n\t\t\t\t\tthis.replaceFirstTitleInStory(storyList,title,draftTitle);\n\t\t\t\t\tthis.addToHistory(draftTitle,event.navigateFromClientRect);\n\t\t\t\t\tif(draftTitle !== this.storyTitle) {\n\t\t\t\t\t\tthis.saveStoryList(storyList);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t// Trigger an autosave\n\t\t\t\t$tw.rootWidget.dispatchEvent({type: \"tm-auto-save-wiki\"});\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n};\n\n// Take a tiddler out of edit mode without saving the changes\nNavigatorWidget.prototype.handleCancelTiddlerEvent = function(event) {\n\t// Flip the specified tiddler from draft back to the original\n\tvar draftTitle = event.param || event.tiddlerTitle,\n\t\tdraftTiddler = this.wiki.getTiddler(draftTitle),\n\t\toriginalTitle = draftTiddler && draftTiddler.fields[\"draft.of\"];\n\tif(draftTiddler && originalTitle) {\n\t\t// Ask for confirmation if the tiddler text has changed\n\t\tvar isConfirmed = true,\n\t\t\toriginalTiddler = this.wiki.getTiddler(originalTitle),\n\t\t\tstoryList = this.getStoryList();\n\t\tif(this.wiki.isDraftModified(draftTitle)) {\n\t\t\tisConfirmed = confirm($tw.language.getString(\n\t\t\t\t\"ConfirmCancelTiddler\",\n\t\t\t\t{variables:\n\t\t\t\t\t{title: draftTitle}\n\t\t\t\t}\n\t\t\t));\n\t\t}\n\t\t// Remove the draft tiddler\n\t\tif(isConfirmed) {\n\t\t\tthis.wiki.deleteTiddler(draftTitle);\n\t\t\tif(!event.paramObject || event.paramObject.suppressNavigation !== \"yes\") {\n\t\t\t\tif(originalTiddler) {\n\t\t\t\t\tthis.replaceFirstTitleInStory(storyList,draftTitle,originalTitle);\n\t\t\t\t\tthis.addToHistory(originalTitle,event.navigateFromClientRect);\n\t\t\t\t} else {\n\t\t\t\t\tthis.removeTitleFromStory(storyList,draftTitle);\n\t\t\t\t}\n\t\t\t\tthis.saveStoryList(storyList);\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n};\n\n// Create a new draft tiddler\n// event.param can either be the title of a template tiddler, or a hashmap of fields.\n//\n// The title of the newly created tiddler follows these rules:\n// * If a hashmap was used and a title field was specified, use that title\n// * If a hashmap was used without a title field, use a default title, if necessary making it unique with a numeric suffix\n// * If a template tiddler was used, use the title of the template, if necessary making it unique with a numeric suffix\n//\n// If a draft of the target tiddler already exists then it is reused\nNavigatorWidget.prototype.handleNewTiddlerEvent = function(event) {\n\t// Get the story details\n\tvar storyList = this.getStoryList(),\n\t\ttemplateTiddler, additionalFields, title, draftTitle, existingTiddler;\n\t// Get the template tiddler (if any)\n\tif(typeof event.param === \"string\") {\n\t\t// Get the template tiddler\n\t\ttemplateTiddler = this.wiki.getTiddler(event.param);\n\t\t// Generate a new title\n\t\ttitle = this.wiki.generateNewTitle(event.param || $tw.language.getString(\"DefaultNewTiddlerTitle\"));\n\t}\n\t// Get the specified additional fields\n\tif(typeof event.paramObject === \"object\") {\n\t\tadditionalFields = event.paramObject;\n\t}\n\tif(typeof event.param === \"object\") { // Backwards compatibility with 5.1.3\n\t\tadditionalFields = event.param;\n\t}\n\tif(additionalFields && additionalFields.title) {\n\t\ttitle = additionalFields.title;\n\t}\n\t// Generate a title if we don't have one\n\ttitle = title || this.wiki.generateNewTitle($tw.language.getString(\"DefaultNewTiddlerTitle\"));\n\t// Find any existing draft for this tiddler\n\tdraftTitle = this.wiki.findDraft(title);\n\t// Pull in any existing tiddler\n\tif(draftTitle) {\n\t\texistingTiddler = this.wiki.getTiddler(draftTitle);\n\t} else {\n\t\tdraftTitle = this.generateDraftTitle(title);\n\t\texistingTiddler = this.wiki.getTiddler(title);\n\t}\n\t// Merge the tags\n\tvar mergedTags = [];\n\tif(existingTiddler && existingTiddler.fields.tags) {\n\t\t$tw.utils.pushTop(mergedTags,existingTiddler.fields.tags)\n\t}\n\tif(additionalFields && additionalFields.tags) {\n\t\t// Merge tags\n\t\tmergedTags = $tw.utils.pushTop(mergedTags,$tw.utils.parseStringArray(additionalFields.tags));\n\t}\n\tif(templateTiddler && templateTiddler.fields.tags) {\n\t\t// Merge tags\n\t\tmergedTags = $tw.utils.pushTop(mergedTags,templateTiddler.fields.tags);\n\t}\n\t// Save the draft tiddler\n\tvar draftTiddler = new $tw.Tiddler({\n\t\t\ttext: \"\",\n\t\t\t\"draft.title\": title\n\t\t},\n\t\ttemplateTiddler,\n\t\texistingTiddler,\n\t\tadditionalFields,\n\t\tthis.wiki.getCreationFields(),\n\t\t{\n\t\t\ttitle: draftTitle,\n\t\t\t\"draft.of\": title,\n\t\t\ttags: mergedTags\n\t\t},this.wiki.getModificationFields());\n\tthis.wiki.addTiddler(draftTiddler);\n\t// Update the story to insert the new draft at the top and remove any existing tiddler\n\tif(storyList.indexOf(draftTitle) === -1) {\n\t\tvar slot = storyList.indexOf(event.navigateFromTitle);\n\t\tstoryList.splice(slot + 1,0,draftTitle);\n\t}\n\tif(storyList.indexOf(title) !== -1) {\n\t\tstoryList.splice(storyList.indexOf(title),1);\t\t\n\t}\n\tthis.saveStoryList(storyList);\n\t// Add a new record to the top of the history stack\n\tthis.addToHistory(draftTitle);\n\treturn false;\n};\n\n// Import JSON tiddlers into a pending import tiddler\nNavigatorWidget.prototype.handleImportTiddlersEvent = function(event) {\n\tvar self = this;\n\t// Get the tiddlers\n\tvar tiddlers = [];\n\ttry {\n\t\ttiddlers = JSON.parse(event.param);\t\n\t} catch(e) {\n\t}\n\t// Get the current $:/Import tiddler\n\tvar importTiddler = this.wiki.getTiddler(IMPORT_TITLE),\n\t\timportData = this.wiki.getTiddlerData(IMPORT_TITLE,{}),\n\t\tnewFields = new Object({\n\t\t\ttitle: IMPORT_TITLE,\n\t\t\ttype: \"application/json\",\n\t\t\t\"plugin-type\": \"import\",\n\t\t\t\"status\": \"pending\"\n\t\t}),\n\t\tincomingTiddlers = [];\n\t// Process each tiddler\n\timportData.tiddlers = importData.tiddlers || {};\n\t$tw.utils.each(tiddlers,function(tiddlerFields) {\n\t\tvar title = tiddlerFields.title;\n\t\tif(title) {\n\t\t\tincomingTiddlers.push(title);\n\t\t\timportData.tiddlers[title] = tiddlerFields;\n\t\t}\n\t});\n\t// Give the active upgrader modules a chance to process the incoming tiddlers\n\tvar messages = this.wiki.invokeUpgraders(incomingTiddlers,importData.tiddlers);\n\t$tw.utils.each(messages,function(message,title) {\n\t\tnewFields[\"message-\" + title] = message;\n\t});\n\t// Deselect any suppressed tiddlers\n\t$tw.utils.each(importData.tiddlers,function(tiddler,title) {\n\t\tif($tw.utils.count(tiddler) === 0) {\n\t\t\tnewFields[\"selection-\" + title] = \"unchecked\";\n\t\t}\n\t});\n\t// Save the $:/Import tiddler\n\tnewFields.text = JSON.stringify(importData,null,$tw.config.preferences.jsonSpaces);\n\tthis.wiki.addTiddler(new $tw.Tiddler(importTiddler,newFields));\n\t// Update the story and history details\n\tif(this.getVariable(\"tv-auto-open-on-import\") !== \"no\") {\n\t\tvar storyList = this.getStoryList(),\n\t\t\thistory = [];\n\t\t// Add it to the story\n\t\tif(storyList.indexOf(IMPORT_TITLE) === -1) {\n\t\t\tstoryList.unshift(IMPORT_TITLE);\n\t\t}\n\t\t// And to history\n\t\thistory.push(IMPORT_TITLE);\n\t\t// Save the updated story and history\n\t\tthis.saveStoryList(storyList);\n\t\tthis.addToHistory(history);\t\t\n\t}\n\treturn false;\n};\n\n// \nNavigatorWidget.prototype.handlePerformImportEvent = function(event) {\n\tvar self = this,\n\t\timportTiddler = this.wiki.getTiddler(event.param),\n\t\timportData = this.wiki.getTiddlerDataCached(event.param,{tiddlers: {}}),\n\t\timportReport = [];\n\t// Add the tiddlers to the store\n\timportReport.push($tw.language.getString(\"Import/Imported/Hint\") + \"\\n\");\n\t$tw.utils.each(importData.tiddlers,function(tiddlerFields) {\n\t\tvar title = tiddlerFields.title;\n\t\tif(title && importTiddler && importTiddler.fields[\"selection-\" + title] !== \"unchecked\") {\n\t\t\tself.wiki.addTiddler(new $tw.Tiddler(tiddlerFields));\n\t\t\timportReport.push(\"# [[\" + tiddlerFields.title + \"]]\");\n\t\t}\n\t});\n\t// Replace the $:/Import tiddler with an import report\n\tthis.wiki.addTiddler(new $tw.Tiddler({\n\t\ttitle: event.param,\n\t\ttext: importReport.join(\"\\n\"),\n\t\t\"status\": \"complete\"\n\t}));\n\t// Navigate to the $:/Import tiddler\n\tthis.addToHistory([event.param]);\n\t// Trigger an autosave\n\t$tw.rootWidget.dispatchEvent({type: \"tm-auto-save-wiki\"});\n};\n\nNavigatorWidget.prototype.handleFoldTiddlerEvent = function(event) {\n\tvar self = this,\n\t\tparamObject = event.paramObject || {};\n\tif(paramObject.foldedState) {\n\t\tvar foldedState = this.wiki.getTiddlerText(paramObject.foldedState,\"show\") === \"show\" ? \"hide\" : \"show\";\n\t\tthis.wiki.setText(paramObject.foldedState,\"text\",null,foldedState);\n\t}\n};\n\nNavigatorWidget.prototype.handleFoldOtherTiddlersEvent = function(event) {\n\tvar self = this,\n\t\tparamObject = event.paramObject || {},\n\t\tprefix = paramObject.foldedStatePrefix;\n\t$tw.utils.each(this.getStoryList(),function(title) {\n\t\tself.wiki.setText(prefix + title,\"text\",null,event.param === title ? \"show\" : \"hide\");\n\t});\n};\n\nNavigatorWidget.prototype.handleFoldAllTiddlersEvent = function(event) {\n\tvar self = this,\n\t\tparamObject = event.paramObject || {},\n\t\tprefix = paramObject.foldedStatePrefix;\n\t$tw.utils.each(this.getStoryList(),function(title) {\n\t\tself.wiki.setText(prefix + title,\"text\",null,\"hide\");\n\t});\n};\n\nNavigatorWidget.prototype.handleUnfoldAllTiddlersEvent = function(event) {\n\tvar self = this,\n\t\tparamObject = event.paramObject || {},\n\t\tprefix = paramObject.foldedStatePrefix;\n\t$tw.utils.each(this.getStoryList(),function(title) {\n\t\tself.wiki.setText(prefix + title,\"text\",null,\"show\");\n\t});\n};\n\nNavigatorWidget.prototype.handleRenameTiddlerEvent = function(event) {\n\tvar self = this,\n\t\tparamObject = event.paramObject || {},\n\t\tfrom = paramObject.from || event.tiddlerTitle,\n\t\tto = paramObject.to;\n\t$tw.wiki.renameTiddler(from,to);\n};\n\nexports.navigator = NavigatorWidget;\n\n})();\n", "title": "$:/core/modules/widgets/navigator.js", "type": "application/javascript", "module-type": "widget" }, "$:/core/modules/widgets/password.js": { "text": "/*\\\ntitle: $:/core/modules/widgets/password.js\ntype: application/javascript\nmodule-type: widget\n\nPassword widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar PasswordWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nPasswordWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nPasswordWidget.prototype.render = function(parent,nextSibling) {\n\t// Save the parent dom node\n\tthis.parentDomNode = parent;\n\t// Compute our attributes\n\tthis.computeAttributes();\n\t// Execute our logic\n\tthis.execute();\n\t// Get the current password\n\tvar password = $tw.browser ? $tw.utils.getPassword(this.passwordName) || \"\" : \"\";\n\t// Create our element\n\tvar domNode = this.document.createElement(\"input\");\n\tdomNode.setAttribute(\"type\",\"password\");\n\tdomNode.setAttribute(\"value\",password);\n\t// Add a click event handler\n\t$tw.utils.addEventListeners(domNode,[\n\t\t{name: \"change\", handlerObject: this, handlerMethod: \"handleChangeEvent\"}\n\t]);\n\t// Insert the label into the DOM and render any children\n\tparent.insertBefore(domNode,nextSibling);\n\tthis.renderChildren(domNode,null);\n\tthis.domNodes.push(domNode);\n};\n\nPasswordWidget.prototype.handleChangeEvent = function(event) {\n\tvar password = this.domNodes[0].value;\n\treturn $tw.utils.savePassword(this.passwordName,password);\n};\n\n/*\nCompute the internal state of the widget\n*/\nPasswordWidget.prototype.execute = function() {\n\t// Get the parameters from the attributes\n\tthis.passwordName = this.getAttribute(\"name\",\"\");\n\t// Make the child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nPasswordWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.name) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\treturn this.refreshChildren(changedTiddlers);\n\t}\n};\n\nexports.password = PasswordWidget;\n\n})();\n", "title": "$:/core/modules/widgets/password.js", "type": "application/javascript", "module-type": "widget" }, "$:/core/modules/widgets/radio.js": { "text": "/*\\\ntitle: $:/core/modules/widgets/radio.js\ntype: application/javascript\nmodule-type: widget\n\nRadio widget\n\nWill set a field to the selected value:\n\n```\n\t<$radio field=\"myfield\" value=\"check 1\">one</$radio>\n\t<$radio field=\"myfield\" value=\"check 2\">two</$radio>\n\t<$radio field=\"myfield\" value=\"check 3\">three</$radio>\n```\n\n|Parameter |Description |h\n|tiddler |Name of the tiddler in which the field should be set. Defaults to current tiddler |\n|field |The name of the field to be set |\n|value |The value to set |\n|class |Optional class name(s) |\n\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar RadioWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nRadioWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nRadioWidget.prototype.render = function(parent,nextSibling) {\n\t// Save the parent dom node\n\tthis.parentDomNode = parent;\n\t// Compute our attributes\n\tthis.computeAttributes();\n\t// Execute our logic\n\tthis.execute();\n\t// Create our elements\n\tthis.labelDomNode = this.document.createElement(\"label\");\n\tthis.labelDomNode.setAttribute(\"class\",this.radioClass);\n\tthis.inputDomNode = this.document.createElement(\"input\");\n\tthis.inputDomNode.setAttribute(\"type\",\"radio\");\n\tif(this.getValue() == this.radioValue) {\n\t\tthis.inputDomNode.setAttribute(\"checked\",\"true\");\n\t}\n\tthis.labelDomNode.appendChild(this.inputDomNode);\n\tthis.spanDomNode = this.document.createElement(\"span\");\n\tthis.labelDomNode.appendChild(this.spanDomNode);\n\t// Add a click event handler\n\t$tw.utils.addEventListeners(this.inputDomNode,[\n\t\t{name: \"change\", handlerObject: this, handlerMethod: \"handleChangeEvent\"}\n\t]);\n\t// Insert the label into the DOM and render any children\n\tparent.insertBefore(this.labelDomNode,nextSibling);\n\tthis.renderChildren(this.spanDomNode,null);\n\tthis.domNodes.push(this.labelDomNode);\n};\n\nRadioWidget.prototype.getValue = function() {\n\tvar tiddler = this.wiki.getTiddler(this.radioTitle);\n\treturn tiddler && tiddler.getFieldString(this.radioField);\n};\n\nRadioWidget.prototype.setValue = function() {\n\tif(this.radioField) {\n\t\tvar tiddler = this.wiki.getTiddler(this.radioTitle),\n\t\t\taddition = {};\n\t\taddition[this.radioField] = this.radioValue;\n\t\tthis.wiki.addTiddler(new $tw.Tiddler(this.wiki.getCreationFields(),{title: this.radioTitle},tiddler,addition,this.wiki.getModificationFields()));\n\t}\n};\n\nRadioWidget.prototype.handleChangeEvent = function(event) {\n\tif(this.inputDomNode.checked) {\n\t\tthis.setValue();\n\t}\n};\n\n/*\nCompute the internal state of the widget\n*/\nRadioWidget.prototype.execute = function() {\n\t// Get the parameters from the attributes\n\tthis.radioTitle = this.getAttribute(\"tiddler\",this.getVariable(\"currentTiddler\"));\n\tthis.radioField = this.getAttribute(\"field\",\"text\");\n\tthis.radioValue = this.getAttribute(\"value\");\n\tthis.radioClass = this.getAttribute(\"class\",\"\");\n\tif(this.radioClass !== \"\") {\n\t\tthis.radioClass += \" \";\n\t}\n\tthis.radioClass += \"tc-radio\";\n\t// Make the child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nRadioWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.tiddler || changedAttributes.field || changedAttributes.value || changedAttributes[\"class\"]) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\tvar refreshed = false;\n\t\tif(changedTiddlers[this.radioTitle]) {\n\t\t\tthis.inputDomNode.checked = this.getValue() === this.radioValue;\n\t\t\trefreshed = true;\n\t\t}\n\t\treturn this.refreshChildren(changedTiddlers) || refreshed;\n\t}\n};\n\nexports.radio = RadioWidget;\n\n})();\n", "title": "$:/core/modules/widgets/radio.js", "type": "application/javascript", "module-type": "widget" }, "$:/core/modules/widgets/raw.js": { "text": "/*\\\ntitle: $:/core/modules/widgets/raw.js\ntype: application/javascript\nmodule-type: widget\n\nRaw widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar RawWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nRawWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nRawWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.execute();\n\tvar div = this.document.createElement(\"div\");\n\tdiv.innerHTML=this.parseTreeNode.html;\n\tparent.insertBefore(div,nextSibling);\n\tthis.domNodes.push(div);\t\n};\n\n/*\nCompute the internal state of the widget\n*/\nRawWidget.prototype.execute = function() {\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nRawWidget.prototype.refresh = function(changedTiddlers) {\n\treturn false;\n};\n\nexports.raw = RawWidget;\n\n})();\n", "title": "$:/core/modules/widgets/raw.js", "type": "application/javascript", "module-type": "widget" }, "$:/core/modules/widgets/reveal.js": { "text": "/*\\\ntitle: $:/core/modules/widgets/reveal.js\ntype: application/javascript\nmodule-type: widget\n\nReveal widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar RevealWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nRevealWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nRevealWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tvar tag = this.parseTreeNode.isBlock ? \"div\" : \"span\";\n\tif(this.revealTag && $tw.config.htmlUnsafeElements.indexOf(this.revealTag) === -1) {\n\t\ttag = this.revealTag;\n\t}\n\tvar domNode = this.document.createElement(tag);\n\tvar classes = this[\"class\"].split(\" \") || [];\n\tclasses.push(\"tc-reveal\");\n\tdomNode.className = classes.join(\" \");\n\tif(this.style) {\n\t\tdomNode.setAttribute(\"style\",this.style);\n\t}\n\tparent.insertBefore(domNode,nextSibling);\n\tthis.renderChildren(domNode,null);\n\tif(!domNode.isTiddlyWikiFakeDom && this.type === \"popup\" && this.isOpen) {\n\t\tthis.positionPopup(domNode);\n\t\t$tw.utils.addClass(domNode,\"tc-popup\"); // Make sure that clicks don't dismiss popups within the revealed content\n\t}\n\tif(!this.isOpen) {\n\t\tdomNode.setAttribute(\"hidden\",\"true\");\n\t}\n\tthis.domNodes.push(domNode);\n};\n\nRevealWidget.prototype.positionPopup = function(domNode) {\n\tdomNode.style.position = \"absolute\";\n\tdomNode.style.zIndex = \"1000\";\n\tswitch(this.position) {\n\t\tcase \"left\":\n\t\t\tdomNode.style.left = (this.popup.left - domNode.offsetWidth) + \"px\";\n\t\t\tdomNode.style.top = this.popup.top + \"px\";\n\t\t\tbreak;\n\t\tcase \"above\":\n\t\t\tdomNode.style.left = this.popup.left + \"px\";\n\t\t\tdomNode.style.top = (this.popup.top - domNode.offsetHeight) + \"px\";\n\t\t\tbreak;\n\t\tcase \"aboveright\":\n\t\t\tdomNode.style.left = (this.popup.left + this.popup.width) + \"px\";\n\t\t\tdomNode.style.top = (this.popup.top + this.popup.height - domNode.offsetHeight) + \"px\";\n\t\t\tbreak;\n\t\tcase \"right\":\n\t\t\tdomNode.style.left = (this.popup.left + this.popup.width) + \"px\";\n\t\t\tdomNode.style.top = this.popup.top + \"px\";\n\t\t\tbreak;\n\t\tcase \"belowleft\":\n\t\t\tdomNode.style.left = (this.popup.left + this.popup.width - domNode.offsetWidth) + \"px\";\n\t\t\tdomNode.style.top = (this.popup.top + this.popup.height) + \"px\";\n\t\t\tbreak;\n\t\tdefault: // Below\n\t\t\tdomNode.style.left = this.popup.left + \"px\";\n\t\t\tdomNode.style.top = (this.popup.top + this.popup.height) + \"px\";\n\t\t\tbreak;\n\t}\n};\n\n/*\nCompute the internal state of the widget\n*/\nRevealWidget.prototype.execute = function() {\n\t// Get our parameters\n\tthis.state = this.getAttribute(\"state\");\n\tthis.revealTag = this.getAttribute(\"tag\");\n\tthis.type = this.getAttribute(\"type\");\n\tthis.text = this.getAttribute(\"text\");\n\tthis.position = this.getAttribute(\"position\");\n\tthis[\"class\"] = this.getAttribute(\"class\",\"\");\n\tthis.style = this.getAttribute(\"style\",\"\");\n\tthis[\"default\"] = this.getAttribute(\"default\",\"\");\n\tthis.animate = this.getAttribute(\"animate\",\"no\");\n\tthis.retain = this.getAttribute(\"retain\",\"no\");\n\tthis.openAnimation = this.animate === \"no\" ? undefined : \"open\";\n\tthis.closeAnimation = this.animate === \"no\" ? undefined : \"close\";\n\t// Compute the title of the state tiddler and read it\n\tthis.stateTitle = this.state;\n\tthis.readState();\n\t// Construct the child widgets\n\tvar childNodes = this.isOpen ? this.parseTreeNode.children : [];\n\tthis.hasChildNodes = this.isOpen;\n\tthis.makeChildWidgets(childNodes);\n};\n\n/*\nRead the state tiddler\n*/\nRevealWidget.prototype.readState = function() {\n\t// Read the information from the state tiddler\n\tvar state = this.stateTitle ? this.wiki.getTextReference(this.stateTitle,this[\"default\"],this.getVariable(\"currentTiddler\")) : this[\"default\"];\n\tswitch(this.type) {\n\t\tcase \"popup\":\n\t\t\tthis.readPopupState(state);\n\t\t\tbreak;\n\t\tcase \"match\":\n\t\t\tthis.readMatchState(state);\n\t\t\tbreak;\n\t\tcase \"nomatch\":\n\t\t\tthis.readMatchState(state);\n\t\t\tthis.isOpen = !this.isOpen;\n\t\t\tbreak;\n\t}\n};\n\nRevealWidget.prototype.readMatchState = function(state) {\n\tthis.isOpen = state === this.text;\n};\n\nRevealWidget.prototype.readPopupState = function(state) {\n\tvar popupLocationRegExp = /^\\((-?[0-9\\.E]+),(-?[0-9\\.E]+),(-?[0-9\\.E]+),(-?[0-9\\.E]+)\\)$/,\n\t\tmatch = popupLocationRegExp.exec(state);\n\t// Check if the state matches the location regexp\n\tif(match) {\n\t\t// If so, we're open\n\t\tthis.isOpen = true;\n\t\t// Get the location\n\t\tthis.popup = {\n\t\t\tleft: parseFloat(match[1]),\n\t\t\ttop: parseFloat(match[2]),\n\t\t\twidth: parseFloat(match[3]),\n\t\t\theight: parseFloat(match[4])\n\t\t};\n\t} else {\n\t\t// If not, we're closed\n\t\tthis.isOpen = false;\n\t}\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nRevealWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.state || changedAttributes.type || changedAttributes.text || changedAttributes.position || changedAttributes[\"default\"] || changedAttributes.animate) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\tvar refreshed = false,\n\t\t\tcurrentlyOpen = this.isOpen;\n\t\tthis.readState();\n\t\tif(this.isOpen !== currentlyOpen) {\n\t\t\tif(this.retain === \"yes\") {\n\t\t\t\tthis.updateState();\n\t\t\t} else {\n\t\t\t\tthis.refreshSelf();\n\t\t\t\trefreshed = true;\n\t\t\t}\n\t\t}\n\t\treturn this.refreshChildren(changedTiddlers) || refreshed;\n\t}\n};\n\n/*\nCalled by refresh() to dynamically show or hide the content\n*/\nRevealWidget.prototype.updateState = function() {\n\t// Read the current state\n\tthis.readState();\n\t// Construct the child nodes if needed\n\tvar domNode = this.domNodes[0];\n\tif(this.isOpen && !this.hasChildNodes) {\n\t\tthis.hasChildNodes = true;\n\t\tthis.makeChildWidgets(this.parseTreeNode.children);\n\t\tthis.renderChildren(domNode,null);\n\t}\n\t// Animate our DOM node\n\tif(!domNode.isTiddlyWikiFakeDom && this.type === \"popup\" && this.isOpen) {\n\t\tthis.positionPopup(domNode);\n\t\t$tw.utils.addClass(domNode,\"tc-popup\"); // Make sure that clicks don't dismiss popups within the revealed content\n\n\t}\n\tif(this.isOpen) {\n\t\tdomNode.removeAttribute(\"hidden\");\n $tw.anim.perform(this.openAnimation,domNode);\n\t} else {\n\t\t$tw.anim.perform(this.closeAnimation,domNode,{callback: function() {\n\t\t\tdomNode.setAttribute(\"hidden\",\"true\");\n }});\n\t}\n};\n\nexports.reveal = RevealWidget;\n\n})();\n", "title": "$:/core/modules/widgets/reveal.js", "type": "application/javascript", "module-type": "widget" }, "$:/core/modules/widgets/scrollable.js": { "text": "/*\\\ntitle: $:/core/modules/widgets/scrollable.js\ntype: application/javascript\nmodule-type: widget\n\nScrollable widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar ScrollableWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n\tthis.scaleFactor = 1;\n\tthis.addEventListeners([\n\t\t{type: \"tm-scroll\", handler: \"handleScrollEvent\"}\n\t]);\n\tif($tw.browser) {\n\t\tthis.requestAnimationFrame = window.requestAnimationFrame ||\n\t\t\twindow.webkitRequestAnimationFrame ||\n\t\t\twindow.mozRequestAnimationFrame ||\n\t\t\tfunction(callback) {\n\t\t\t\treturn window.setTimeout(callback, 1000/60);\n\t\t\t};\n\t\tthis.cancelAnimationFrame = window.cancelAnimationFrame ||\n\t\t\twindow.webkitCancelAnimationFrame ||\n\t\t\twindow.webkitCancelRequestAnimationFrame ||\n\t\t\twindow.mozCancelAnimationFrame ||\n\t\t\twindow.mozCancelRequestAnimationFrame ||\n\t\t\tfunction(id) {\n\t\t\t\twindow.clearTimeout(id);\n\t\t\t};\n\t}\n};\n\n/*\nInherit from the base widget class\n*/\nScrollableWidget.prototype = new Widget();\n\nScrollableWidget.prototype.cancelScroll = function() {\n\tif(this.idRequestFrame) {\n\t\tthis.cancelAnimationFrame.call(window,this.idRequestFrame);\n\t\tthis.idRequestFrame = null;\n\t}\n};\n\n/*\nHandle a scroll event\n*/\nScrollableWidget.prototype.handleScrollEvent = function(event) {\n\t// Pass the scroll event through if our offsetsize is larger than our scrollsize\n\tif(this.outerDomNode.scrollWidth <= this.outerDomNode.offsetWidth && this.outerDomNode.scrollHeight <= this.outerDomNode.offsetHeight && this.fallthrough === \"yes\") {\n\t\treturn true;\n\t}\n\tthis.scrollIntoView(event.target);\n\treturn false; // Handled event\n};\n\n/*\nScroll an element into view\n*/\nScrollableWidget.prototype.scrollIntoView = function(element) {\n\tvar duration = $tw.utils.getAnimationDuration();\n\tthis.cancelScroll();\n\tthis.startTime = Date.now();\n\tvar scrollPosition = {\n\t\tx: this.outerDomNode.scrollLeft,\n\t\ty: this.outerDomNode.scrollTop\n\t};\n\t// Get the client bounds of the element and adjust by the scroll position\n\tvar scrollableBounds = this.outerDomNode.getBoundingClientRect(),\n\t\tclientTargetBounds = element.getBoundingClientRect(),\n\t\tbounds = {\n\t\t\tleft: clientTargetBounds.left + scrollPosition.x - scrollableBounds.left,\n\t\t\ttop: clientTargetBounds.top + scrollPosition.y - scrollableBounds.top,\n\t\t\twidth: clientTargetBounds.width,\n\t\t\theight: clientTargetBounds.height\n\t\t};\n\t// We'll consider the horizontal and vertical scroll directions separately via this function\n\tvar getEndPos = function(targetPos,targetSize,currentPos,currentSize) {\n\t\t\t// If the target is already visible then stay where we are\n\t\t\tif(targetPos >= currentPos && (targetPos + targetSize) <= (currentPos + currentSize)) {\n\t\t\t\treturn currentPos;\n\t\t\t// If the target is above/left of the current view, then scroll to its top/left\n\t\t\t} else if(targetPos <= currentPos) {\n\t\t\t\treturn targetPos;\n\t\t\t// If the target is smaller than the window and the scroll position is too far up, then scroll till the target is at the bottom of the window\n\t\t\t} else if(targetSize < currentSize && currentPos < (targetPos + targetSize - currentSize)) {\n\t\t\t\treturn targetPos + targetSize - currentSize;\n\t\t\t// If the target is big, then just scroll to the top\n\t\t\t} else if(currentPos < targetPos) {\n\t\t\t\treturn targetPos;\n\t\t\t// Otherwise, stay where we are\n\t\t\t} else {\n\t\t\t\treturn currentPos;\n\t\t\t}\n\t\t},\n\t\tendX = getEndPos(bounds.left,bounds.width,scrollPosition.x,this.outerDomNode.offsetWidth),\n\t\tendY = getEndPos(bounds.top,bounds.height,scrollPosition.y,this.outerDomNode.offsetHeight);\n\t// Only scroll if necessary\n\tif(endX !== scrollPosition.x || endY !== scrollPosition.y) {\n\t\tvar self = this,\n\t\t\tdrawFrame;\n\t\tdrawFrame = function () {\n\t\t\tvar t;\n\t\t\tif(duration <= 0) {\n\t\t\t\tt = 1;\n\t\t\t} else {\n\t\t\t\tt = ((Date.now()) - self.startTime) / duration;\t\n\t\t\t}\n\t\t\tif(t >= 1) {\n\t\t\t\tself.cancelScroll();\n\t\t\t\tt = 1;\n\t\t\t}\n\t\t\tt = $tw.utils.slowInSlowOut(t);\n\t\t\tself.outerDomNode.scrollLeft = scrollPosition.x + (endX - scrollPosition.x) * t;\n\t\t\tself.outerDomNode.scrollTop = scrollPosition.y + (endY - scrollPosition.y) * t;\n\t\t\tif(t < 1) {\n\t\t\t\tself.idRequestFrame = self.requestAnimationFrame.call(window,drawFrame);\n\t\t\t}\n\t\t};\n\t\tdrawFrame();\n\t}\n};\n\n/*\nRender this widget into the DOM\n*/\nScrollableWidget.prototype.render = function(parent,nextSibling) {\n\tvar self = this;\n\t// Remember parent\n\tthis.parentDomNode = parent;\n\t// Compute attributes and execute state\n\tthis.computeAttributes();\n\tthis.execute();\n\t// Create elements\n\tthis.outerDomNode = this.document.createElement(\"div\");\n\t$tw.utils.setStyle(this.outerDomNode,[\n\t\t{overflowY: \"auto\"},\n\t\t{overflowX: \"auto\"},\n\t\t{webkitOverflowScrolling: \"touch\"}\n\t]);\n\tthis.innerDomNode = this.document.createElement(\"div\");\n\tthis.outerDomNode.appendChild(this.innerDomNode);\n\t// Assign classes\n\tthis.outerDomNode.className = this[\"class\"] || \"\";\n\t// Insert element\n\tparent.insertBefore(this.outerDomNode,nextSibling);\n\tthis.renderChildren(this.innerDomNode,null);\n\tthis.domNodes.push(this.outerDomNode);\n};\n\n/*\nCompute the internal state of the widget\n*/\nScrollableWidget.prototype.execute = function() {\n\t// Get attributes\n\tthis.fallthrough = this.getAttribute(\"fallthrough\",\"yes\");\n\tthis[\"class\"] = this.getAttribute(\"class\");\n\t// Make child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nScrollableWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes[\"class\"]) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t}\n\treturn this.refreshChildren(changedTiddlers);\n};\n\nexports.scrollable = ScrollableWidget;\n\n})();\n", "title": "$:/core/modules/widgets/scrollable.js", "type": "application/javascript", "module-type": "widget" }, "$:/core/modules/widgets/select.js": { "text": "/*\\\ntitle: $:/core/modules/widgets/select.js\ntype: application/javascript\nmodule-type: widget\n\nSelect widget:\n\n```\n<$select tiddler=\"MyTiddler\" field=\"text\">\n<$list filter=\"[tag[chapter]]\">\n<option value=<<currentTiddler>>>\n<$view field=\"description\"/>\n</option>\n</$list>\n</$select>\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar SelectWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nSelectWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nSelectWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tthis.renderChildren(parent,nextSibling);\n\tthis.setSelectValue();\n\t$tw.utils.addEventListeners(this.getSelectDomNode(),[\n\t\t{name: \"change\", handlerObject: this, handlerMethod: \"handleChangeEvent\"}\n\t]);\n};\n\n/*\nHandle a change event\n*/\nSelectWidget.prototype.handleChangeEvent = function(event) {\n\t// Get the new value and assign it to the tiddler\n\tif(this.selectMultiple == false) {\n\t\tvar value = this.getSelectDomNode().value;\n\t} else {\n\t\tvar value = this.getSelectValues()\n\t\t\t\tvalue = $tw.utils.stringifyList(value);\n\t}\n\tthis.wiki.setText(this.selectTitle,this.selectField,this.selectIndex,value);\n\t// Trigger actions\n\tif(this.selectActions) {\n\t\tthis.invokeActionString(this.selectActions,this,event);\n\t}\n};\n\n/*\nIf necessary, set the value of the select element to the current value\n*/\nSelectWidget.prototype.setSelectValue = function() {\n\tvar value = this.selectDefault;\n\t// Get the value\n\tif(this.selectIndex) {\n\t\tvalue = this.wiki.extractTiddlerDataItem(this.selectTitle,this.selectIndex);\n\t} else {\n\t\tvar tiddler = this.wiki.getTiddler(this.selectTitle);\n\t\tif(tiddler) {\n\t\t\tif(this.selectField === \"text\") {\n\t\t\t\t// Calling getTiddlerText() triggers lazy loading of skinny tiddlers\n\t\t\t\tvalue = this.wiki.getTiddlerText(this.selectTitle);\n\t\t\t} else {\n\t\t\t\tif($tw.utils.hop(tiddler.fields,this.selectField)) {\n\t\t\t\t\tvalue = tiddler.getFieldString(this.selectField);\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tif(this.selectField === \"title\") {\n\t\t\t\tvalue = this.selectTitle;\n\t\t\t}\n\t\t}\n\t}\n\t// Assign it to the select element if it's different than the current value\n\tif (this.selectMultiple) {\n\t\tvalue = value === undefined ? \"\" : value;\n\t\tvar select = this.getSelectDomNode();\n\t\tvar values = Array.isArray(value) ? value : $tw.utils.parseStringArray(value);\n\t\tfor(var i=0; i < select.children.length; i++){\n\t\t\tif(values.indexOf(select.children[i].value) != -1) {\n\t\t\t\tselect.children[i].selected = true;\n\t\t\t}\n\t\t}\n\t\t\n\t} else {\n\t\tvar domNode = this.getSelectDomNode();\n\t\tif(domNode.value !== value) {\n\t\t\tdomNode.value = value;\n\t\t}\n\t}\n};\n\n/*\nGet the DOM node of the select element\n*/\nSelectWidget.prototype.getSelectDomNode = function() {\n\treturn this.children[0].domNodes[0];\n};\n\n// Return an array of the selected opion values\n// select is an HTML select element\nSelectWidget.prototype.getSelectValues = function() {\n\tvar select, result, options, opt;\n\tselect = this.getSelectDomNode();\n\tresult = [];\n\toptions = select && select.options;\n\tfor (var i=0; i<options.length; i++) {\n\t\topt = options[i];\n\t\tif (opt.selected) {\n\t\t\tresult.push(opt.value || opt.text);\n\t\t}\n\t}\n\treturn result;\n}\n\n/*\nCompute the internal state of the widget\n*/\nSelectWidget.prototype.execute = function() {\n\t// Get our parameters\n\tthis.selectActions = this.getAttribute(\"actions\");\n\tthis.selectTitle = this.getAttribute(\"tiddler\",this.getVariable(\"currentTiddler\"));\n\tthis.selectField = this.getAttribute(\"field\",\"text\");\n\tthis.selectIndex = this.getAttribute(\"index\");\n\tthis.selectClass = this.getAttribute(\"class\");\n\tthis.selectDefault = this.getAttribute(\"default\");\n\tthis.selectMultiple = this.getAttribute(\"multiple\", false);\n\tthis.selectSize = this.getAttribute(\"size\");\n\t// Make the child widgets\n\tvar selectNode = {\n\t\ttype: \"element\",\n\t\ttag: \"select\",\n\t\tchildren: this.parseTreeNode.children\n\t};\n\tif(this.selectClass) {\n\t\t$tw.utils.addAttributeToParseTreeNode(selectNode,\"class\",this.selectClass);\n\t}\n\tif(this.selectMultiple) {\n\t\t$tw.utils.addAttributeToParseTreeNode(selectNode,\"multiple\",\"multiple\");\n\t}\n\tif(this.selectSize) {\n\t\t$tw.utils.addAttributeToParseTreeNode(selectNode,\"size\",this.selectSize);\n\t}\n\tthis.makeChildWidgets([selectNode]);\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nSelectWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\t// If we're using a different tiddler/field/index then completely refresh ourselves\n\tif(changedAttributes.selectTitle || changedAttributes.selectField || changedAttributes.selectIndex) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t// If the target tiddler value has changed, just update setting and refresh the children\n\t} else {\n\t\tvar childrenRefreshed = this.refreshChildren(changedTiddlers);\n\t\tif(changedTiddlers[this.selectTitle] || childrenRefreshed) {\n\t\t\tthis.setSelectValue();\n\t\t} \n\t\treturn childrenRefreshed;\n\t}\n};\n\nexports.select = SelectWidget;\n\n})();\n", "title": "$:/core/modules/widgets/select.js", "type": "application/javascript", "module-type": "widget" }, "$:/core/modules/widgets/set.js": { "text": "/*\\\ntitle: $:/core/modules/widgets/set.js\ntype: application/javascript\nmodule-type: widget\n\nSet variable widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar SetWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nSetWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nSetWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tthis.renderChildren(parent,nextSibling);\n};\n\n/*\nCompute the internal state of the widget\n*/\nSetWidget.prototype.execute = function() {\n\t// Get our parameters\n\tthis.setName = this.getAttribute(\"name\",\"currentTiddler\");\n\tthis.setFilter = this.getAttribute(\"filter\");\n\tthis.setValue = this.getAttribute(\"value\");\n\tthis.setEmptyValue = this.getAttribute(\"emptyValue\");\n\t// Set context variable\n\tthis.setVariable(this.setName,this.getValue(),this.parseTreeNode.params);\n\t// Construct the child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nGet the value to be assigned\n*/\nSetWidget.prototype.getValue = function() {\n\tvar value = this.setValue;\n\tif(this.setFilter) {\n\t\tvar results = this.wiki.filterTiddlers(this.setFilter,this);\n\t\tif(!this.setValue) {\n\t\t\tvalue = $tw.utils.stringifyList(results);\n\t\t}\n\t\tif(results.length === 0 && this.setEmptyValue !== undefined) {\n\t\t\tvalue = this.setEmptyValue;\n\t\t}\n\t} else if(!value && this.setEmptyValue) {\n\t\tvalue = this.setEmptyValue;\n\t}\n\treturn value;\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nSetWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.name || changedAttributes.filter || changedAttributes.value || changedAttributes.emptyValue ||\n\t (this.setFilter && this.getValue() != this.variables[this.setName].value)) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\treturn this.refreshChildren(changedTiddlers);\n\t}\n};\n\nexports.setvariable = SetWidget;\nexports.set = SetWidget;\n\n})();\n", "title": "$:/core/modules/widgets/set.js", "type": "application/javascript", "module-type": "widget" }, "$:/core/modules/widgets/text.js": { "text": "/*\\\ntitle: $:/core/modules/widgets/text.js\ntype: application/javascript\nmodule-type: widget\n\nText node widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar TextNodeWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nTextNodeWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nTextNodeWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tvar text = this.getAttribute(\"text\",this.parseTreeNode.text || \"\");\n\ttext = text.replace(/\\r/mg,\"\");\n\tvar textNode = this.document.createTextNode(text);\n\tparent.insertBefore(textNode,nextSibling);\n\tthis.domNodes.push(textNode);\n};\n\n/*\nCompute the internal state of the widget\n*/\nTextNodeWidget.prototype.execute = function() {\n\t// Nothing to do for a text node\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nTextNodeWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.text) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\treturn false;\t\n\t}\n};\n\nexports.text = TextNodeWidget;\n\n})();\n", "title": "$:/core/modules/widgets/text.js", "type": "application/javascript", "module-type": "widget" }, "$:/core/modules/widgets/tiddler.js": { "text": "/*\\\ntitle: $:/core/modules/widgets/tiddler.js\ntype: application/javascript\nmodule-type: widget\n\nTiddler widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar TiddlerWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nTiddlerWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nTiddlerWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tthis.renderChildren(parent,nextSibling);\n};\n\n/*\nCompute the internal state of the widget\n*/\nTiddlerWidget.prototype.execute = function() {\n\tthis.tiddlerState = this.computeTiddlerState();\n\tthis.setVariable(\"currentTiddler\",this.tiddlerState.currentTiddler);\n\tthis.setVariable(\"missingTiddlerClass\",this.tiddlerState.missingTiddlerClass);\n\tthis.setVariable(\"shadowTiddlerClass\",this.tiddlerState.shadowTiddlerClass);\n\tthis.setVariable(\"systemTiddlerClass\",this.tiddlerState.systemTiddlerClass);\n\tthis.setVariable(\"tiddlerTagClasses\",this.tiddlerState.tiddlerTagClasses);\n\t// Construct the child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nCompute the tiddler state flags\n*/\nTiddlerWidget.prototype.computeTiddlerState = function() {\n\t// Get our parameters\n\tthis.tiddlerTitle = this.getAttribute(\"tiddler\",this.getVariable(\"currentTiddler\"));\n\t// Compute the state\n\tvar state = {\n\t\tcurrentTiddler: this.tiddlerTitle || \"\",\n\t\tmissingTiddlerClass: (this.wiki.tiddlerExists(this.tiddlerTitle) || this.wiki.isShadowTiddler(this.tiddlerTitle)) ? \"tc-tiddler-exists\" : \"tc-tiddler-missing\",\n\t\tshadowTiddlerClass: this.wiki.isShadowTiddler(this.tiddlerTitle) ? \"tc-tiddler-shadow\" : \"\",\n\t\tsystemTiddlerClass: this.wiki.isSystemTiddler(this.tiddlerTitle) ? \"tc-tiddler-system\" : \"\",\n\t\ttiddlerTagClasses: this.getTagClasses()\n\t};\n\t// Compute a simple hash to make it easier to detect changes\n\tstate.hash = state.currentTiddler + state.missingTiddlerClass + state.shadowTiddlerClass + state.systemTiddlerClass + state.tiddlerTagClasses;\n\treturn state;\n};\n\n/*\nCreate a string of CSS classes derived from the tags of the current tiddler\n*/\nTiddlerWidget.prototype.getTagClasses = function() {\n\tvar tiddler = this.wiki.getTiddler(this.tiddlerTitle);\n\tif(tiddler) {\n\t\tvar tags = [];\n\t\t$tw.utils.each(tiddler.fields.tags,function(tag) {\n\t\t\ttags.push(\"tc-tagged-\" + encodeURIComponent(tag));\n\t\t});\n\t\treturn tags.join(\" \");\n\t} else {\n\t\treturn \"\";\n\t}\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nTiddlerWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes(),\n\t\tnewTiddlerState = this.computeTiddlerState();\n\tif(changedAttributes.tiddler || newTiddlerState.hash !== this.tiddlerState.hash) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\treturn this.refreshChildren(changedTiddlers);\t\t\n\t}\n};\n\nexports.tiddler = TiddlerWidget;\n\n})();\n", "title": "$:/core/modules/widgets/tiddler.js", "type": "application/javascript", "module-type": "widget" }, "$:/core/modules/widgets/transclude.js": { "text": "/*\\\ntitle: $:/core/modules/widgets/transclude.js\ntype: application/javascript\nmodule-type: widget\n\nTransclude widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar TranscludeWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nTranscludeWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nTranscludeWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tthis.renderChildren(parent,nextSibling);\n};\n\n/*\nCompute the internal state of the widget\n*/\nTranscludeWidget.prototype.execute = function() {\n\t// Get our parameters\n\tthis.transcludeTitle = this.getAttribute(\"tiddler\",this.getVariable(\"currentTiddler\"));\n\tthis.transcludeSubTiddler = this.getAttribute(\"subtiddler\");\n\tthis.transcludeField = this.getAttribute(\"field\");\n\tthis.transcludeIndex = this.getAttribute(\"index\");\n\tthis.transcludeMode = this.getAttribute(\"mode\");\n\t// Parse the text reference\n\tvar parseAsInline = !this.parseTreeNode.isBlock;\n\tif(this.transcludeMode === \"inline\") {\n\t\tparseAsInline = true;\n\t} else if(this.transcludeMode === \"block\") {\n\t\tparseAsInline = false;\n\t}\n\tvar parser = this.wiki.parseTextReference(\n\t\t\t\t\t\tthis.transcludeTitle,\n\t\t\t\t\t\tthis.transcludeField,\n\t\t\t\t\t\tthis.transcludeIndex,\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tparseAsInline: parseAsInline,\n\t\t\t\t\t\t\tsubTiddler: this.transcludeSubTiddler\n\t\t\t\t\t\t}),\n\t\tparseTreeNodes = parser ? parser.tree : this.parseTreeNode.children;\n\t// Set context variables for recursion detection\n\tvar recursionMarker = this.makeRecursionMarker();\n\tthis.setVariable(\"transclusion\",recursionMarker);\n\t// Check for recursion\n\tif(parser) {\n\t\tif(this.parentWidget && this.parentWidget.hasVariable(\"transclusion\",recursionMarker)) {\n\t\t\tparseTreeNodes = [{type: \"element\", tag: \"span\", attributes: {\n\t\t\t\t\"class\": {type: \"string\", value: \"tc-error\"}\n\t\t\t}, children: [\n\t\t\t\t{type: \"text\", text: $tw.language.getString(\"Error/RecursiveTransclusion\")}\n\t\t\t]}];\n\t\t}\n\t}\n\t// Construct the child widgets\n\tthis.makeChildWidgets(parseTreeNodes);\n};\n\n/*\nCompose a string comprising the title, field and/or index to identify this transclusion for recursion detection\n*/\nTranscludeWidget.prototype.makeRecursionMarker = function() {\n\tvar output = [];\n\toutput.push(\"{\");\n\toutput.push(this.getVariable(\"currentTiddler\",{defaultValue: \"\"}));\n\toutput.push(\"|\");\n\toutput.push(this.transcludeTitle || \"\");\n\toutput.push(\"|\");\n\toutput.push(this.transcludeField || \"\");\n\toutput.push(\"|\");\n\toutput.push(this.transcludeIndex || \"\");\n\toutput.push(\"|\");\n\toutput.push(this.transcludeSubTiddler || \"\");\n\toutput.push(\"}\");\n\treturn output.join(\"\");\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nTranscludeWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.tiddler || changedAttributes.field || changedAttributes.index || changedTiddlers[this.transcludeTitle]) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\treturn this.refreshChildren(changedTiddlers);\t\t\n\t}\n};\n\nexports.transclude = TranscludeWidget;\n\n})();\n", "title": "$:/core/modules/widgets/transclude.js", "type": "application/javascript", "module-type": "widget" }, "$:/core/modules/widgets/vars.js": { "text": "/*\\\ntitle: $:/core/modules/widgets/vars.js\ntype: application/javascript\nmodule-type: widget\n\nThis widget allows multiple variables to be set in one go:\n\n```\n\\define helloworld() Hello world!\n<$vars greeting=\"Hi\" me={{!!title}} sentence=<<helloworld>>>\n <<greeting>>! I am <<me>> and I say: <<sentence>>\n</$vars>\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar VarsWidget = function(parseTreeNode,options) {\n\t// Call the constructor\n\tWidget.call(this);\n\t// Initialise\t\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nVarsWidget.prototype = Object.create(Widget.prototype);\n\n/*\nRender this widget into the DOM\n*/\nVarsWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tthis.renderChildren(parent,nextSibling);\n};\n\n/*\nCompute the internal state of the widget\n*/\nVarsWidget.prototype.execute = function() {\n\t// Parse variables\n\tvar self = this;\n\t$tw.utils.each(this.attributes,function(val,key) {\n\t\tif(key.charAt(0) !== \"$\") {\n\t\t\tself.setVariable(key,val);\n\t\t}\n\t});\n\t// Construct the child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nRefresh the widget by ensuring our attributes are up to date\n*/\nVarsWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(Object.keys(changedAttributes).length) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t}\n\treturn this.refreshChildren(changedTiddlers);\n};\n\nexports[\"vars\"] = VarsWidget;\n\n})();\n", "title": "$:/core/modules/widgets/vars.js", "type": "application/javascript", "module-type": "widget" }, "$:/core/modules/widgets/view.js": { "text": "/*\\\ntitle: $:/core/modules/widgets/view.js\ntype: application/javascript\nmodule-type: widget\n\nView widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar ViewWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nViewWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nViewWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tif(this.text) {\n\t\tvar textNode = this.document.createTextNode(this.text);\n\t\tparent.insertBefore(textNode,nextSibling);\n\t\tthis.domNodes.push(textNode);\n\t} else {\n\t\tthis.makeChildWidgets();\n\t\tthis.renderChildren(parent,nextSibling);\n\t}\n};\n\n/*\nCompute the internal state of the widget\n*/\nViewWidget.prototype.execute = function() {\n\t// Get parameters from our attributes\n\tthis.viewTitle = this.getAttribute(\"tiddler\",this.getVariable(\"currentTiddler\"));\n\tthis.viewSubtiddler = this.getAttribute(\"subtiddler\");\n\tthis.viewField = this.getAttribute(\"field\",\"text\");\n\tthis.viewIndex = this.getAttribute(\"index\");\n\tthis.viewFormat = this.getAttribute(\"format\",\"text\");\n\tthis.viewTemplate = this.getAttribute(\"template\",\"\");\n\tswitch(this.viewFormat) {\n\t\tcase \"htmlwikified\":\n\t\t\tthis.text = this.getValueAsHtmlWikified();\n\t\t\tbreak;\n\t\tcase \"plainwikified\":\n\t\t\tthis.text = this.getValueAsPlainWikified();\n\t\t\tbreak;\n\t\tcase \"htmlencodedplainwikified\":\n\t\t\tthis.text = this.getValueAsHtmlEncodedPlainWikified();\n\t\t\tbreak;\n\t\tcase \"htmlencoded\":\n\t\t\tthis.text = this.getValueAsHtmlEncoded();\n\t\t\tbreak;\n\t\tcase \"urlencoded\":\n\t\t\tthis.text = this.getValueAsUrlEncoded();\n\t\t\tbreak;\n\t\tcase \"doubleurlencoded\":\n\t\t\tthis.text = this.getValueAsDoubleUrlEncoded();\n\t\t\tbreak;\n\t\tcase \"date\":\n\t\t\tthis.text = this.getValueAsDate(this.viewTemplate);\n\t\t\tbreak;\n\t\tcase \"relativedate\":\n\t\t\tthis.text = this.getValueAsRelativeDate();\n\t\t\tbreak;\n\t\tcase \"stripcomments\":\n\t\t\tthis.text = this.getValueAsStrippedComments();\n\t\t\tbreak;\n\t\tcase \"jsencoded\":\n\t\t\tthis.text = this.getValueAsJsEncoded();\n\t\t\tbreak;\n\t\tdefault: // \"text\"\n\t\t\tthis.text = this.getValueAsText();\n\t\t\tbreak;\n\t}\n};\n\n/*\nThe various formatter functions are baked into this widget for the moment. Eventually they will be replaced by macro functions\n*/\n\n/*\nRetrieve the value of the widget. Options are:\nasString: Optionally return the value as a string\n*/\nViewWidget.prototype.getValue = function(options) {\n\toptions = options || {};\n\tvar value = options.asString ? \"\" : undefined;\n\tif(this.viewIndex) {\n\t\tvalue = this.wiki.extractTiddlerDataItem(this.viewTitle,this.viewIndex);\n\t} else {\n\t\tvar tiddler;\n\t\tif(this.viewSubtiddler) {\n\t\t\ttiddler = this.wiki.getSubTiddler(this.viewTitle,this.viewSubtiddler);\t\n\t\t} else {\n\t\t\ttiddler = this.wiki.getTiddler(this.viewTitle);\n\t\t}\n\t\tif(tiddler) {\n\t\t\tif(this.viewField === \"text\" && !this.viewSubtiddler) {\n\t\t\t\t// Calling getTiddlerText() triggers lazy loading of skinny tiddlers\n\t\t\t\tvalue = this.wiki.getTiddlerText(this.viewTitle);\n\t\t\t} else {\n\t\t\t\tif($tw.utils.hop(tiddler.fields,this.viewField)) {\n\t\t\t\t\tif(options.asString) {\n\t\t\t\t\t\tvalue = tiddler.getFieldString(this.viewField);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tvalue = tiddler.fields[this.viewField];\t\t\t\t\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tif(this.viewField === \"title\") {\n\t\t\t\tvalue = this.viewTitle;\n\t\t\t}\n\t\t}\n\t}\n\treturn value;\n};\n\nViewWidget.prototype.getValueAsText = function() {\n\treturn this.getValue({asString: true});\n};\n\nViewWidget.prototype.getValueAsHtmlWikified = function() {\n\treturn this.wiki.renderText(\"text/html\",\"text/vnd.tiddlywiki\",this.getValueAsText(),{parentWidget: this});\n};\n\nViewWidget.prototype.getValueAsPlainWikified = function() {\n\treturn this.wiki.renderText(\"text/plain\",\"text/vnd.tiddlywiki\",this.getValueAsText(),{parentWidget: this});\n};\n\nViewWidget.prototype.getValueAsHtmlEncodedPlainWikified = function() {\n\treturn $tw.utils.htmlEncode(this.wiki.renderText(\"text/plain\",\"text/vnd.tiddlywiki\",this.getValueAsText(),{parentWidget: this}));\n};\n\nViewWidget.prototype.getValueAsHtmlEncoded = function() {\n\treturn $tw.utils.htmlEncode(this.getValueAsText());\n};\n\nViewWidget.prototype.getValueAsUrlEncoded = function() {\n\treturn encodeURIComponent(this.getValueAsText());\n};\n\nViewWidget.prototype.getValueAsDoubleUrlEncoded = function() {\n\treturn encodeURIComponent(encodeURIComponent(this.getValueAsText()));\n};\n\nViewWidget.prototype.getValueAsDate = function(format) {\n\tformat = format || \"YYYY MM DD 0hh:0mm\";\n\tvar value = $tw.utils.parseDate(this.getValue());\n\tif(value && $tw.utils.isDate(value) && value.toString() !== \"Invalid Date\") {\n\t\treturn $tw.utils.formatDateString(value,format);\n\t} else {\n\t\treturn \"\";\n\t}\n};\n\nViewWidget.prototype.getValueAsRelativeDate = function(format) {\n\tvar value = $tw.utils.parseDate(this.getValue());\n\tif(value && $tw.utils.isDate(value) && value.toString() !== \"Invalid Date\") {\n\t\treturn $tw.utils.getRelativeDate((new Date()) - (new Date(value))).description;\n\t} else {\n\t\treturn \"\";\n\t}\n};\n\nViewWidget.prototype.getValueAsStrippedComments = function() {\n\tvar lines = this.getValueAsText().split(\"\\n\"),\n\t\tout = [];\n\tfor(var line=0; line<lines.length; line++) {\n\t\tvar text = lines[line];\n\t\tif(!/^\\s*\\/\\/#/.test(text)) {\n\t\t\tout.push(text);\n\t\t}\n\t}\n\treturn out.join(\"\\n\");\n};\n\nViewWidget.prototype.getValueAsJsEncoded = function() {\n\treturn $tw.utils.stringify(this.getValueAsText());\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nViewWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.tiddler || changedAttributes.field || changedAttributes.index || changedAttributes.template || changedAttributes.format || changedTiddlers[this.viewTitle]) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\treturn false;\t\n\t}\n};\n\nexports.view = ViewWidget;\n\n})();\n", "title": "$:/core/modules/widgets/view.js", "type": "application/javascript", "module-type": "widget" }, "$:/core/modules/widgets/widget.js": { "text": "/*\\\ntitle: $:/core/modules/widgets/widget.js\ntype: application/javascript\nmodule-type: widget\n\nWidget base class\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nCreate a widget object for a parse tree node\n\tparseTreeNode: reference to the parse tree node to be rendered\n\toptions: see below\nOptions include:\n\twiki: mandatory reference to wiki associated with this render tree\n\tparentWidget: optional reference to a parent renderer node for the context chain\n\tdocument: optional document object to use instead of global document\n*/\nvar Widget = function(parseTreeNode,options) {\n\tif(arguments.length > 0) {\n\t\tthis.initialise(parseTreeNode,options);\n\t}\n};\n\n/*\nInitialise widget properties. These steps are pulled out of the constructor so that we can reuse them in subclasses\n*/\nWidget.prototype.initialise = function(parseTreeNode,options) {\n\toptions = options || {};\n\t// Save widget info\n\tthis.parseTreeNode = parseTreeNode;\n\tthis.wiki = options.wiki;\n\tthis.parentWidget = options.parentWidget;\n\tthis.variablesConstructor = function() {};\n\tthis.variablesConstructor.prototype = this.parentWidget ? this.parentWidget.variables : {};\n\tthis.variables = new this.variablesConstructor();\n\tthis.document = options.document;\n\tthis.attributes = {};\n\tthis.children = [];\n\tthis.domNodes = [];\n\tthis.eventListeners = {};\n\t// Hashmap of the widget classes\n\tif(!this.widgetClasses) {\n\t\tWidget.prototype.widgetClasses = $tw.modules.applyMethods(\"widget\");\n\t}\n};\n\n/*\nRender this widget into the DOM\n*/\nWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.execute();\n\tthis.renderChildren(parent,nextSibling);\n};\n\n/*\nCompute the internal state of the widget\n*/\nWidget.prototype.execute = function() {\n\tthis.makeChildWidgets();\n};\n\n/*\nSet the value of a context variable\nname: name of the variable\nvalue: value of the variable\nparams: array of {name:, default:} for each parameter\n*/\nWidget.prototype.setVariable = function(name,value,params) {\n\tthis.variables[name] = {value: value, params: params};\n};\n\n/*\nGet the prevailing value of a context variable\nname: name of variable\noptions: see below\nOptions include\nparams: array of {name:, value:} for each parameter\ndefaultValue: default value if the variable is not defined\n*/\nWidget.prototype.getVariable = function(name,options) {\n\toptions = options || {};\n\tvar actualParams = options.params || [],\n\t\tparentWidget = this.parentWidget;\n\t// Check for the variable defined in the parent widget (or an ancestor in the prototype chain)\n\tif(parentWidget && name in parentWidget.variables) {\n\t\tvar variable = parentWidget.variables[name],\n\t\t\tvalue = variable.value;\n\t\t// Substitute any parameters specified in the definition\n\t\tvalue = this.substituteVariableParameters(value,variable.params,actualParams);\n\t\tvalue = this.substituteVariableReferences(value);\n\t\treturn value;\n\t}\n\t// If the variable doesn't exist in the parent widget then look for a macro module\n\treturn this.evaluateMacroModule(name,actualParams,options.defaultValue);\n};\n\nWidget.prototype.substituteVariableParameters = function(text,formalParams,actualParams) {\n\tif(formalParams) {\n\t\tvar nextAnonParameter = 0, // Next candidate anonymous parameter in macro call\n\t\t\tparamInfo, paramValue;\n\t\t// Step through each of the parameters in the macro definition\n\t\tfor(var p=0; p<formalParams.length; p++) {\n\t\t\t// Check if we've got a macro call parameter with the same name\n\t\t\tparamInfo = formalParams[p];\n\t\t\tparamValue = undefined;\n\t\t\tfor(var m=0; m<actualParams.length; m++) {\n\t\t\t\tif(actualParams[m].name === paramInfo.name) {\n\t\t\t\t\tparamValue = actualParams[m].value;\n\t\t\t\t}\n\t\t\t}\n\t\t\t// If not, use the next available anonymous macro call parameter\n\t\t\twhile(nextAnonParameter < actualParams.length && actualParams[nextAnonParameter].name) {\n\t\t\t\tnextAnonParameter++;\n\t\t\t}\n\t\t\tif(paramValue === undefined && nextAnonParameter < actualParams.length) {\n\t\t\t\tparamValue = actualParams[nextAnonParameter++].value;\n\t\t\t}\n\t\t\t// If we've still not got a value, use the default, if any\n\t\t\tparamValue = paramValue || paramInfo[\"default\"] || \"\";\n\t\t\t// Replace any instances of this parameter\n\t\t\ttext = text.replace(new RegExp(\"\\\\$\" + $tw.utils.escapeRegExp(paramInfo.name) + \"\\\\$\",\"mg\"),paramValue);\n\t\t}\n\t}\n\treturn text;\n};\n\nWidget.prototype.substituteVariableReferences = function(text) {\n\tvar self = this;\n\treturn (text || \"\").replace(/\\$\\(([^\\)\\$]+)\\)\\$/g,function(match,p1,offset,string) {\n\t\treturn self.getVariable(p1,{defaultValue: \"\"});\n\t});\n};\n\nWidget.prototype.evaluateMacroModule = function(name,actualParams,defaultValue) {\n\tif($tw.utils.hop($tw.macros,name)) {\n\t\tvar macro = $tw.macros[name],\n\t\t\targs = [];\n\t\tif(macro.params.length > 0) {\n\t\t\tvar nextAnonParameter = 0, // Next candidate anonymous parameter in macro call\n\t\t\t\tparamInfo, paramValue;\n\t\t\t// Step through each of the parameters in the macro definition\n\t\t\tfor(var p=0; p<macro.params.length; p++) {\n\t\t\t\t// Check if we've got a macro call parameter with the same name\n\t\t\t\tparamInfo = macro.params[p];\n\t\t\t\tparamValue = undefined;\n\t\t\t\tfor(var m=0; m<actualParams.length; m++) {\n\t\t\t\t\tif(actualParams[m].name === paramInfo.name) {\n\t\t\t\t\t\tparamValue = actualParams[m].value;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t// If not, use the next available anonymous macro call parameter\n\t\t\t\twhile(nextAnonParameter < actualParams.length && actualParams[nextAnonParameter].name) {\n\t\t\t\t\tnextAnonParameter++;\n\t\t\t\t}\n\t\t\t\tif(paramValue === undefined && nextAnonParameter < actualParams.length) {\n\t\t\t\t\tparamValue = actualParams[nextAnonParameter++].value;\n\t\t\t\t}\n\t\t\t\t// If we've still not got a value, use the default, if any\n\t\t\t\tparamValue = paramValue || paramInfo[\"default\"] || \"\";\n\t\t\t\t// Save the parameter\n\t\t\t\targs.push(paramValue);\n\t\t\t}\n\t\t}\n\t\telse for(var i=0; i<actualParams.length; ++i) {\n\t\t\targs.push(actualParams[i].value);\n\t\t}\n\t\treturn (macro.run.apply(this,args) || \"\").toString();\n\t} else {\n\t\treturn defaultValue;\n\t}\n};\n\n/*\nCheck whether a given context variable value exists in the parent chain\n*/\nWidget.prototype.hasVariable = function(name,value) {\n\tvar node = this;\n\twhile(node) {\n\t\tif($tw.utils.hop(node.variables,name) && node.variables[name].value === value) {\n\t\t\treturn true;\n\t\t}\n\t\tnode = node.parentWidget;\n\t}\n\treturn false;\n};\n\n/*\nConstruct a qualifying string based on a hash of concatenating the values of a given variable in the parent chain\n*/\nWidget.prototype.getStateQualifier = function(name) {\n\tthis.qualifiers = this.qualifiers || Object.create(null);\n\tname = name || \"transclusion\";\n\tif(this.qualifiers[name]) {\n\t\treturn this.qualifiers[name];\n\t} else {\n\t\tvar output = [],\n\t\t\tnode = this;\n\t\twhile(node && node.parentWidget) {\n\t\t\tif($tw.utils.hop(node.parentWidget.variables,name)) {\n\t\t\t\toutput.push(node.getVariable(name));\n\t\t\t}\n\t\t\tnode = node.parentWidget;\n\t\t}\n\t\tvar value = $tw.utils.hashString(output.join(\"\"));\n\t\tthis.qualifiers[name] = value;\n\t\treturn value;\n\t}\n};\n\n/*\nCompute the current values of the attributes of the widget. Returns a hashmap of the names of the attributes that have changed\n*/\nWidget.prototype.computeAttributes = function() {\n\tvar changedAttributes = {},\n\t\tself = this,\n\t\tvalue;\n\t$tw.utils.each(this.parseTreeNode.attributes,function(attribute,name) {\n\t\tif(attribute.type === \"indirect\") {\n\t\t\tvalue = self.wiki.getTextReference(attribute.textReference,\"\",self.getVariable(\"currentTiddler\"));\n\t\t} else if(attribute.type === \"macro\") {\n\t\t\tvalue = self.getVariable(attribute.value.name,{params: attribute.value.params});\n\t\t} else { // String attribute\n\t\t\tvalue = attribute.value;\n\t\t}\n\t\t// Check whether the attribute has changed\n\t\tif(self.attributes[name] !== value) {\n\t\t\tself.attributes[name] = value;\n\t\t\tchangedAttributes[name] = true;\n\t\t}\n\t});\n\treturn changedAttributes;\n};\n\n/*\nCheck for the presence of an attribute\n*/\nWidget.prototype.hasAttribute = function(name) {\n\treturn $tw.utils.hop(this.attributes,name);\n};\n\n/*\nGet the value of an attribute\n*/\nWidget.prototype.getAttribute = function(name,defaultText) {\n\tif($tw.utils.hop(this.attributes,name)) {\n\t\treturn this.attributes[name];\n\t} else {\n\t\treturn defaultText;\n\t}\n};\n\n/*\nAssign the computed attributes of the widget to a domNode\noptions include:\nexcludeEventAttributes: ignores attributes whose name begins with \"on\"\n*/\nWidget.prototype.assignAttributes = function(domNode,options) {\n\toptions = options || {};\n\tvar self = this;\n\t$tw.utils.each(this.attributes,function(v,a) {\n\t\t// Check exclusions\n\t\tif(options.excludeEventAttributes && a.substr(0,2) === \"on\") {\n\t\t\tv = undefined;\n\t\t}\n\t\tif(v !== undefined) {\n\t\t\tvar b = a.split(\":\");\n\t\t\t// Setting certain attributes can cause a DOM error (eg xmlns on the svg element)\n\t\t\ttry {\n\t\t\t\tif (b.length == 2 && b[0] == \"xlink\"){\n\t\t\t\t\tdomNode.setAttributeNS(\"http://www.w3.org/1999/xlink\",b[1],v);\n\t\t\t\t} else {\n\t\t\t\t\tdomNode.setAttributeNS(null,a,v);\n\t\t\t\t}\n\t\t\t} catch(e) {\n\t\t\t}\n\t\t}\n\t});\n};\n\n/*\nMake child widgets correspondng to specified parseTreeNodes\n*/\nWidget.prototype.makeChildWidgets = function(parseTreeNodes) {\n\tthis.children = [];\n\tvar self = this;\n\t$tw.utils.each(parseTreeNodes || (this.parseTreeNode && this.parseTreeNode.children),function(childNode) {\n\t\tself.children.push(self.makeChildWidget(childNode));\n\t});\n};\n\n/*\nConstruct the widget object for a parse tree node\n*/\nWidget.prototype.makeChildWidget = function(parseTreeNode) {\n\tvar WidgetClass = this.widgetClasses[parseTreeNode.type];\n\tif(!WidgetClass) {\n\t\tWidgetClass = this.widgetClasses.text;\n\t\tparseTreeNode = {type: \"text\", text: \"Undefined widget '\" + parseTreeNode.type + \"'\"};\n\t}\n\treturn new WidgetClass(parseTreeNode,{\n\t\twiki: this.wiki,\n\t\tvariables: {},\n\t\tparentWidget: this,\n\t\tdocument: this.document\n\t});\n};\n\n/*\nGet the next sibling of this widget\n*/\nWidget.prototype.nextSibling = function() {\n\tif(this.parentWidget) {\n\t\tvar index = this.parentWidget.children.indexOf(this);\n\t\tif(index !== -1 && index < this.parentWidget.children.length-1) {\n\t\t\treturn this.parentWidget.children[index+1];\n\t\t}\n\t}\n\treturn null;\n};\n\n/*\nGet the previous sibling of this widget\n*/\nWidget.prototype.previousSibling = function() {\n\tif(this.parentWidget) {\n\t\tvar index = this.parentWidget.children.indexOf(this);\n\t\tif(index !== -1 && index > 0) {\n\t\t\treturn this.parentWidget.children[index-1];\n\t\t}\n\t}\n\treturn null;\n};\n\n/*\nRender the children of this widget into the DOM\n*/\nWidget.prototype.renderChildren = function(parent,nextSibling) {\n\t$tw.utils.each(this.children,function(childWidget) {\n\t\tchildWidget.render(parent,nextSibling);\n\t});\n};\n\n/*\nAdd a list of event listeners from an array [{type:,handler:},...]\n*/\nWidget.prototype.addEventListeners = function(listeners) {\n\tvar self = this;\n\t$tw.utils.each(listeners,function(listenerInfo) {\n\t\tself.addEventListener(listenerInfo.type,listenerInfo.handler);\n\t});\n};\n\n/*\nAdd an event listener\n*/\nWidget.prototype.addEventListener = function(type,handler) {\n\tvar self = this;\n\tif(typeof handler === \"string\") { // The handler is a method name on this widget\n\t\tthis.eventListeners[type] = function(event) {\n\t\t\treturn self[handler].call(self,event);\n\t\t};\n\t} else { // The handler is a function\n\t\tthis.eventListeners[type] = function(event) {\n\t\t\treturn handler.call(self,event);\n\t\t};\n\t}\n};\n\n/*\nDispatch an event to a widget. If the widget doesn't handle the event then it is also dispatched to the parent widget\n*/\nWidget.prototype.dispatchEvent = function(event) {\n\t// Dispatch the event if this widget handles it\n\tvar listener = this.eventListeners[event.type];\n\tif(listener) {\n\t\t// Don't propagate the event if the listener returned false\n\t\tif(!listener(event)) {\n\t\t\treturn false;\n\t\t}\n\t}\n\t// Dispatch the event to the parent widget\n\tif(this.parentWidget) {\n\t\treturn this.parentWidget.dispatchEvent(event);\n\t}\n\treturn true;\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nWidget.prototype.refresh = function(changedTiddlers) {\n\treturn this.refreshChildren(changedTiddlers);\n};\n\n/*\nRebuild a previously rendered widget\n*/\nWidget.prototype.refreshSelf = function() {\n\tvar nextSibling = this.findNextSiblingDomNode();\n\tthis.removeChildDomNodes();\n\tthis.render(this.parentDomNode,nextSibling);\n};\n\n/*\nRefresh all the children of a widget\n*/\nWidget.prototype.refreshChildren = function(changedTiddlers) {\n\tvar self = this,\n\t\trefreshed = false;\n\t$tw.utils.each(this.children,function(childWidget) {\n\t\trefreshed = childWidget.refresh(changedTiddlers) || refreshed;\n\t});\n\treturn refreshed;\n};\n\n/*\nFind the next sibling in the DOM to this widget. This is done by scanning the widget tree through all next siblings and their descendents that share the same parent DOM node\n*/\nWidget.prototype.findNextSiblingDomNode = function(startIndex) {\n\t// Refer to this widget by its index within its parents children\n\tvar parent = this.parentWidget,\n\t\tindex = startIndex !== undefined ? startIndex : parent.children.indexOf(this);\nif(index === -1) {\n\tthrow \"node not found in parents children\";\n}\n\t// Look for a DOM node in the later siblings\n\twhile(++index < parent.children.length) {\n\t\tvar domNode = parent.children[index].findFirstDomNode();\n\t\tif(domNode) {\n\t\t\treturn domNode;\n\t\t}\n\t}\n\t// Go back and look for later siblings of our parent if it has the same parent dom node\n\tvar grandParent = parent.parentWidget;\n\tif(grandParent && parent.parentDomNode === this.parentDomNode) {\n\t\tindex = grandParent.children.indexOf(parent);\n\t\tif(index !== -1) {\n\t\t\treturn parent.findNextSiblingDomNode(index);\n\t\t}\n\t}\n\treturn null;\n};\n\n/*\nFind the first DOM node generated by a widget or its children\n*/\nWidget.prototype.findFirstDomNode = function() {\n\t// Return the first dom node of this widget, if we've got one\n\tif(this.domNodes.length > 0) {\n\t\treturn this.domNodes[0];\n\t}\n\t// Otherwise, recursively call our children\n\tfor(var t=0; t<this.children.length; t++) {\n\t\tvar domNode = this.children[t].findFirstDomNode();\n\t\tif(domNode) {\n\t\t\treturn domNode;\n\t\t}\n\t}\n\treturn null;\n};\n\n/*\nRemove any DOM nodes created by this widget or its children\n*/\nWidget.prototype.removeChildDomNodes = function() {\n\t// If this widget has directly created DOM nodes, delete them and exit. This assumes that any child widgets are contained within the created DOM nodes, which would normally be the case\n\tif(this.domNodes.length > 0) {\n\t\t$tw.utils.each(this.domNodes,function(domNode) {\n\t\t\tdomNode.parentNode.removeChild(domNode);\n\t\t});\n\t\tthis.domNodes = [];\n\t} else {\n\t\t// Otherwise, ask the child widgets to delete their DOM nodes\n\t\t$tw.utils.each(this.children,function(childWidget) {\n\t\t\tchildWidget.removeChildDomNodes();\n\t\t});\n\t}\n};\n\n/*\nInvoke the action widgets that are descendents of the current widget.\n*/\nWidget.prototype.invokeActions = function(triggeringWidget,event) {\n\tvar handled = false;\n\t// For each child widget\n\tfor(var t=0; t<this.children.length; t++) {\n\t\tvar child = this.children[t];\n\t\t// Invoke the child if it is an action widget\n\t\tif(child.invokeAction && child.invokeAction(triggeringWidget,event)) {\n\t\t\thandled = true;\n\t\t}\n\t\t// Propagate through through the child if it permits it\n\t\tif(child.allowActionPropagation() && child.invokeActions(triggeringWidget,event)) {\n\t\t\thandled = true;\n\t\t}\n\t}\n\treturn handled;\n};\n\n/*\nInvoke the action widgets defined in a string\n*/\nWidget.prototype.invokeActionString = function(actions,triggeringWidget,event) {\n\tactions = actions || \"\";\n\tvar parser = this.wiki.parseText(\"text/vnd.tiddlywiki\",actions,{\n\t\t\tparentWidget: this,\n\t\t\tdocument: this.document\n\t\t}),\n\t\twidgetNode = this.wiki.makeWidget(parser,{\n\t\t\tparentWidget: this,\n\t\t\tdocument: this.document\n\t\t});\n\tvar container = this.document.createElement(\"div\");\n\twidgetNode.render(container,null);\n\treturn widgetNode.invokeActions(this,event);\n};\n\nWidget.prototype.allowActionPropagation = function() {\n\treturn true;\n};\n\nexports.widget = Widget;\n\n})();\n", "title": "$:/core/modules/widgets/widget.js", "type": "application/javascript", "module-type": "widget" }, "$:/core/modules/widgets/wikify.js": { "text": "/*\\\ntitle: $:/core/modules/widgets/wikify.js\ntype: application/javascript\nmodule-type: widget\n\nWidget to wikify text into a variable\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar WikifyWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nWikifyWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nWikifyWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tthis.renderChildren(parent,nextSibling);\n};\n\n/*\nCompute the internal state of the widget\n*/\nWikifyWidget.prototype.execute = function() {\n\t// Get our parameters\n\tthis.wikifyName = this.getAttribute(\"name\");\n\tthis.wikifyText = this.getAttribute(\"text\");\n\tthis.wikifyType = this.getAttribute(\"type\");\n\tthis.wikifyMode = this.getAttribute(\"mode\",\"block\");\n\tthis.wikifyOutput = this.getAttribute(\"output\",\"text\");\n\t// Create the parse tree\n\tthis.wikifyParser = this.wiki.parseText(this.wikifyType,this.wikifyText,{\n\t\t\tparseAsInline: this.wikifyMode === \"inline\"\n\t\t});\n\t// Create the widget tree \n\tthis.wikifyWidgetNode = this.wiki.makeWidget(this.wikifyParser,{\n\t\t\tdocument: $tw.fakeDocument,\n\t\t\tparentWidget: this\n\t\t});\n\t// Render the widget tree to the container\n\tthis.wikifyContainer = $tw.fakeDocument.createElement(\"div\");\n\tthis.wikifyWidgetNode.render(this.wikifyContainer,null);\n\tthis.wikifyResult = this.getResult();\n\t// Set context variable\n\tthis.setVariable(this.wikifyName,this.wikifyResult);\n\t// Construct the child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nReturn the result string\n*/\nWikifyWidget.prototype.getResult = function() {\n\tvar result;\n\tswitch(this.wikifyOutput) {\n\t\tcase \"text\":\n\t\t\tresult = this.wikifyContainer.textContent;\n\t\t\tbreak;\n\t\tcase \"html\":\n\t\t\tresult = this.wikifyContainer.innerHTML;\n\t\t\tbreak;\n\t\tcase \"parsetree\":\n\t\t\tresult = JSON.stringify(this.wikifyParser.tree,0,$tw.config.preferences.jsonSpaces);\n\t\t\tbreak;\n\t\tcase \"widgettree\":\n\t\t\tresult = JSON.stringify(this.getWidgetTree(),0,$tw.config.preferences.jsonSpaces);\n\t\t\tbreak;\n\t}\n\treturn result;\n};\n\n/*\nReturn a string of the widget tree\n*/\nWikifyWidget.prototype.getWidgetTree = function() {\n\tvar copyNode = function(widgetNode,resultNode) {\n\t\t\tvar type = widgetNode.parseTreeNode.type;\n\t\t\tresultNode.type = type;\n\t\t\tswitch(type) {\n\t\t\t\tcase \"element\":\n\t\t\t\t\tresultNode.tag = widgetNode.parseTreeNode.tag;\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"text\":\n\t\t\t\t\tresultNode.text = widgetNode.parseTreeNode.text;\n\t\t\t\t\tbreak;\t\n\t\t\t}\n\t\t\tif(Object.keys(widgetNode.attributes || {}).length > 0) {\n\t\t\t\tresultNode.attributes = {};\n\t\t\t\t$tw.utils.each(widgetNode.attributes,function(attr,attrName) {\n\t\t\t\t\tresultNode.attributes[attrName] = widgetNode.getAttribute(attrName);\n\t\t\t\t});\n\t\t\t}\n\t\t\tif(Object.keys(widgetNode.children || {}).length > 0) {\n\t\t\t\tresultNode.children = [];\n\t\t\t\t$tw.utils.each(widgetNode.children,function(widgetChildNode) {\n\t\t\t\t\tvar node = {};\n\t\t\t\t\tresultNode.children.push(node);\n\t\t\t\t\tcopyNode(widgetChildNode,node);\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\t\tresults = {};\n\tcopyNode(this.wikifyWidgetNode,results);\n\treturn results;\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nWikifyWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\t// Refresh ourselves entirely if any of our attributes have changed\n\tif(changedAttributes.name || changedAttributes.text || changedAttributes.type || changedAttributes.mode || changedAttributes.output) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\t// Refresh the widget tree\n\t\tif(this.wikifyWidgetNode.refresh(changedTiddlers)) {\n\t\t\t// Check if there was any change\n\t\t\tvar result = this.getResult();\n\t\t\tif(result !== this.wikifyResult) {\n\t\t\t\t// If so, save the change\n\t\t\t\tthis.wikifyResult = result;\n\t\t\t\tthis.setVariable(this.wikifyName,this.wikifyResult);\n\t\t\t\t// Refresh each of our child widgets\n\t\t\t\t$tw.utils.each(this.children,function(childWidget) {\n\t\t\t\t\tchildWidget.refreshSelf();\n\t\t\t\t});\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t\t// Just refresh the children\n\t\treturn this.refreshChildren(changedTiddlers);\n\t}\n};\n\nexports.wikify = WikifyWidget;\n\n})();\n", "title": "$:/core/modules/widgets/wikify.js", "type": "application/javascript", "module-type": "widget" }, "$:/core/modules/wiki-bulkops.js": { "text": "/*\\\ntitle: $:/core/modules/wiki-bulkops.js\ntype: application/javascript\nmodule-type: wikimethod\n\nBulk tiddler operations such as rename.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nRename a tiddler, and relink any tags or lists that reference it.\n*/\nexports.renameTiddler = function(fromTitle,toTitle) {\n\tvar self = this;\n\tfromTitle = (fromTitle || \"\").trim();\n\ttoTitle = (toTitle || \"\").trim();\n\tif(fromTitle && toTitle && fromTitle !== toTitle) {\n\t\t// Rename the tiddler itself\n\t\tvar tiddler = this.getTiddler(fromTitle);\n\t\tthis.addTiddler(new $tw.Tiddler(tiddler,{title: toTitle},this.getModificationFields()));\n\t\tthis.deleteTiddler(fromTitle);\n\t\t// Rename any tags or lists that reference it\n\t\tthis.each(function(tiddler,title) {\n\t\t\tvar tags = (tiddler.fields.tags || []).slice(0),\n\t\t\t\tlist = (tiddler.fields.list || []).slice(0),\n\t\t\t\tisModified = false;\n\t\t\t// Rename tags\n\t\t\t$tw.utils.each(tags,function (title,index) {\n\t\t\t\tif(title === fromTitle) {\n\t\t\t\t\ttags[index] = toTitle;\n\t\t\t\t\tisModified = true;\n\t\t\t\t}\n\t\t\t});\n\t\t\t// Rename lists\n\t\t\t$tw.utils.each(list,function (title,index) {\n\t\t\t\tif(title === fromTitle) {\n\t\t\t\t\tlist[index] = toTitle;\n\t\t\t\t\tisModified = true;\n\t\t\t\t}\n\t\t\t});\n\t\t\tif(isModified) {\n\t\t\t\tself.addTiddler(new $tw.Tiddler(tiddler,{tags: tags, list: list},self.getModificationFields()));\n\t\t\t}\n\t\t});\n\t}\n}\n\n})();\n", "title": "$:/core/modules/wiki-bulkops.js", "type": "application/javascript", "module-type": "wikimethod" }, "$:/core/modules/wiki.js": { "text": "/*\\\ntitle: $:/core/modules/wiki.js\ntype: application/javascript\nmodule-type: wikimethod\n\nExtension methods for the $tw.Wiki object\n\nAdds the following properties to the wiki object:\n\n* `eventListeners` is a hashmap by type of arrays of listener functions\n* `changedTiddlers` is a hashmap describing changes to named tiddlers since wiki change events were last dispatched. Each entry is a hashmap containing two fields:\n\tmodified: true/false\n\tdeleted: true/false\n* `changeCount` is a hashmap by tiddler title containing a numerical index that starts at zero and is incremented each time a tiddler is created changed or deleted\n* `caches` is a hashmap by tiddler title containing a further hashmap of named cache objects. Caches are automatically cleared when a tiddler is modified or deleted\n* `globalCache` is a hashmap by cache name of cache objects that are cleared whenever any tiddler change occurs\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar widget = require(\"$:/core/modules/widgets/widget.js\");\n\nvar USER_NAME_TITLE = \"$:/status/UserName\";\n\n/*\nGet the value of a text reference. Text references can have any of these forms:\n\t<tiddlertitle>\n\t<tiddlertitle>!!<fieldname>\n\t!!<fieldname> - specifies a field of the current tiddlers\n\t<tiddlertitle>##<index>\n*/\nexports.getTextReference = function(textRef,defaultText,currTiddlerTitle) {\n\tvar tr = $tw.utils.parseTextReference(textRef),\n\t\ttitle = tr.title || currTiddlerTitle;\n\tif(tr.field) {\n\t\tvar tiddler = this.getTiddler(title);\n\t\tif(tr.field === \"title\") { // Special case so we can return the title of a non-existent tiddler\n\t\t\treturn title;\n\t\t} else if(tiddler && $tw.utils.hop(tiddler.fields,tr.field)) {\n\t\t\treturn tiddler.getFieldString(tr.field);\n\t\t} else {\n\t\t\treturn defaultText;\n\t\t}\n\t} else if(tr.index) {\n\t\treturn this.extractTiddlerDataItem(title,tr.index,defaultText);\n\t} else {\n\t\treturn this.getTiddlerText(title,defaultText);\n\t}\n};\n\nexports.setTextReference = function(textRef,value,currTiddlerTitle) {\n\tvar tr = $tw.utils.parseTextReference(textRef),\n\t\ttitle = tr.title || currTiddlerTitle;\n\tthis.setText(title,tr.field,tr.index,value);\n};\n\nexports.setText = function(title,field,index,value,options) {\n\toptions = options || {};\n\tvar creationFields = options.suppressTimestamp ? {} : this.getCreationFields(),\n\t\tmodificationFields = options.suppressTimestamp ? {} : this.getModificationFields();\n\t// Check if it is a reference to a tiddler field\n\tif(index) {\n\t\tvar data = this.getTiddlerData(title,Object.create(null));\n\t\tif(value !== undefined) {\n\t\t\tdata[index] = value;\n\t\t} else {\n\t\t\tdelete data[index];\n\t\t}\n\t\tthis.setTiddlerData(title,data,modificationFields);\n\t} else {\n\t\tvar tiddler = this.getTiddler(title),\n\t\t\tfields = {title: title};\n\t\tfields[field || \"text\"] = value;\n\t\tthis.addTiddler(new $tw.Tiddler(creationFields,tiddler,fields,modificationFields));\n\t}\n};\n\nexports.deleteTextReference = function(textRef,currTiddlerTitle) {\n\tvar tr = $tw.utils.parseTextReference(textRef),\n\t\ttitle,tiddler,fields;\n\t// Check if it is a reference to a tiddler\n\tif(tr.title && !tr.field) {\n\t\tthis.deleteTiddler(tr.title);\n\t// Else check for a field reference\n\t} else if(tr.field) {\n\t\ttitle = tr.title || currTiddlerTitle;\n\t\ttiddler = this.getTiddler(title);\n\t\tif(tiddler && $tw.utils.hop(tiddler.fields,tr.field)) {\n\t\t\tfields = Object.create(null);\n\t\t\tfields[tr.field] = undefined;\n\t\t\tthis.addTiddler(new $tw.Tiddler(tiddler,fields,this.getModificationFields()));\n\t\t}\n\t}\n};\n\nexports.addEventListener = function(type,listener) {\n\tthis.eventListeners = this.eventListeners || {};\n\tthis.eventListeners[type] = this.eventListeners[type] || [];\n\tthis.eventListeners[type].push(listener);\t\n};\n\nexports.removeEventListener = function(type,listener) {\n\tvar listeners = this.eventListeners[type];\n\tif(listeners) {\n\t\tvar p = listeners.indexOf(listener);\n\t\tif(p !== -1) {\n\t\t\tlisteners.splice(p,1);\n\t\t}\n\t}\n};\n\nexports.dispatchEvent = function(type /*, args */) {\n\tvar args = Array.prototype.slice.call(arguments,1),\n\t\tlisteners = this.eventListeners[type];\n\tif(listeners) {\n\t\tfor(var p=0; p<listeners.length; p++) {\n\t\t\tvar listener = listeners[p];\n\t\t\tlistener.apply(listener,args);\n\t\t}\n\t}\n};\n\n/*\nCauses a tiddler to be marked as changed, incrementing the change count, and triggers event handlers.\nThis method should be called after the changes it describes have been made to the wiki.tiddlers[] array.\n\ttitle: Title of tiddler\n\tisDeleted: defaults to false (meaning the tiddler has been created or modified),\n\t\ttrue if the tiddler has been deleted\n*/\nexports.enqueueTiddlerEvent = function(title,isDeleted) {\n\t// Record the touch in the list of changed tiddlers\n\tthis.changedTiddlers = this.changedTiddlers || Object.create(null);\n\tthis.changedTiddlers[title] = this.changedTiddlers[title] || Object.create(null);\n\tthis.changedTiddlers[title][isDeleted ? \"deleted\" : \"modified\"] = true;\n\t// Increment the change count\n\tthis.changeCount = this.changeCount || Object.create(null);\n\tif($tw.utils.hop(this.changeCount,title)) {\n\t\tthis.changeCount[title]++;\n\t} else {\n\t\tthis.changeCount[title] = 1;\n\t}\n\t// Trigger events\n\tthis.eventListeners = this.eventListeners || {};\n\tif(!this.eventsTriggered) {\n\t\tvar self = this;\n\t\t$tw.utils.nextTick(function() {\n\t\t\tvar changes = self.changedTiddlers;\n\t\t\tself.changedTiddlers = Object.create(null);\n\t\t\tself.eventsTriggered = false;\n\t\t\tif($tw.utils.count(changes) > 0) {\n\t\t\t\tself.dispatchEvent(\"change\",changes);\n\t\t\t}\n\t\t});\n\t\tthis.eventsTriggered = true;\n\t}\n};\n\nexports.getSizeOfTiddlerEventQueue = function() {\n\treturn $tw.utils.count(this.changedTiddlers);\n};\n\nexports.clearTiddlerEventQueue = function() {\n\tthis.changedTiddlers = Object.create(null);\n\tthis.changeCount = Object.create(null);\n};\n\nexports.getChangeCount = function(title) {\n\tthis.changeCount = this.changeCount || Object.create(null);\n\tif($tw.utils.hop(this.changeCount,title)) {\n\t\treturn this.changeCount[title];\n\t} else {\n\t\treturn 0;\n\t}\n};\n\n/*\nGenerate an unused title from the specified base\n*/\nexports.generateNewTitle = function(baseTitle,options) {\n\toptions = options || {};\n\tvar c = 0,\n\t\ttitle = baseTitle;\n\twhile(this.tiddlerExists(title) || this.isShadowTiddler(title) || this.findDraft(title)) {\n\t\ttitle = baseTitle + \n\t\t\t(options.prefix || \" \") + \n\t\t\t(++c);\n\t}\n\treturn title;\n};\n\nexports.isSystemTiddler = function(title) {\n\treturn title && title.indexOf(\"$:/\") === 0;\n};\n\nexports.isTemporaryTiddler = function(title) {\n\treturn title && title.indexOf(\"$:/temp/\") === 0;\n};\n\nexports.isImageTiddler = function(title) {\n\tvar tiddler = this.getTiddler(title);\n\tif(tiddler) {\t\t\n\t\tvar contentTypeInfo = $tw.config.contentTypeInfo[tiddler.fields.type || \"text/vnd.tiddlywiki\"];\n\t\treturn !!contentTypeInfo && contentTypeInfo.flags.indexOf(\"image\") !== -1;\n\t} else {\n\t\treturn null;\n\t}\n};\n\n/*\nLike addTiddler() except it will silently reject any plugin tiddlers that are older than the currently loaded version. Returns true if the tiddler was imported\n*/\nexports.importTiddler = function(tiddler) {\n\tvar existingTiddler = this.getTiddler(tiddler.fields.title);\n\t// Check if we're dealing with a plugin\n\tif(tiddler && tiddler.hasField(\"plugin-type\") && tiddler.hasField(\"version\") && existingTiddler && existingTiddler.hasField(\"plugin-type\") && existingTiddler.hasField(\"version\")) {\n\t\t// Reject the incoming plugin if it is older\n\t\tif(!$tw.utils.checkVersions(tiddler.fields.version,existingTiddler.fields.version)) {\n\t\t\treturn false;\n\t\t}\n\t}\n\t// Fall through to adding the tiddler\n\tthis.addTiddler(tiddler);\n\treturn true;\n};\n\n/*\nReturn a hashmap of the fields that should be set when a tiddler is created\n*/\nexports.getCreationFields = function() {\n\tvar fields = {\n\t\t\tcreated: new Date()\n\t\t},\n\t\tcreator = this.getTiddlerText(USER_NAME_TITLE);\n\tif(creator) {\n\t\tfields.creator = creator;\n\t}\n\treturn fields;\n};\n\n/*\nReturn a hashmap of the fields that should be set when a tiddler is modified\n*/\nexports.getModificationFields = function() {\n\tvar fields = Object.create(null),\n\t\tmodifier = this.getTiddlerText(USER_NAME_TITLE);\n\tfields.modified = new Date();\n\tif(modifier) {\n\t\tfields.modifier = modifier;\n\t}\n\treturn fields;\n};\n\n/*\nReturn a sorted array of tiddler titles. Options include:\nsortField: field to sort by\nexcludeTag: tag to exclude\nincludeSystem: whether to include system tiddlers (defaults to false)\n*/\nexports.getTiddlers = function(options) {\n\toptions = options || Object.create(null);\n\tvar self = this,\n\t\tsortField = options.sortField || \"title\",\n\t\ttiddlers = [], t, titles = [];\n\tthis.each(function(tiddler,title) {\n\t\tif(options.includeSystem || !self.isSystemTiddler(title)) {\n\t\t\tif(!options.excludeTag || !tiddler.hasTag(options.excludeTag)) {\n\t\t\t\ttiddlers.push(tiddler);\n\t\t\t}\n\t\t}\n\t});\n\ttiddlers.sort(function(a,b) {\n\t\tvar aa = a.fields[sortField].toLowerCase() || \"\",\n\t\t\tbb = b.fields[sortField].toLowerCase() || \"\";\n\t\tif(aa < bb) {\n\t\t\treturn -1;\n\t\t} else {\n\t\t\tif(aa > bb) {\n\t\t\t\treturn 1;\n\t\t\t} else {\n\t\t\t\treturn 0;\n\t\t\t}\n\t\t}\n\t});\n\tfor(t=0; t<tiddlers.length; t++) {\n\t\ttitles.push(tiddlers[t].fields.title);\n\t}\n\treturn titles;\n};\n\nexports.countTiddlers = function(excludeTag) {\n\tvar tiddlers = this.getTiddlers({excludeTag: excludeTag});\n\treturn $tw.utils.count(tiddlers);\n};\n\n/*\nReturns a function iterator(callback) that iterates through the specified titles, and invokes the callback with callback(tiddler,title)\n*/\nexports.makeTiddlerIterator = function(titles) {\n\tvar self = this;\n\tif(!$tw.utils.isArray(titles)) {\n\t\ttitles = Object.keys(titles);\n\t} else {\n\t\ttitles = titles.slice(0);\n\t}\n\treturn function(callback) {\n\t\ttitles.forEach(function(title) {\n\t\t\tcallback(self.getTiddler(title),title);\n\t\t});\n\t};\n};\n\n/*\nSort an array of tiddler titles by a specified field\n\ttitles: array of titles (sorted in place)\n\tsortField: name of field to sort by\n\tisDescending: true if the sort should be descending\n\tisCaseSensitive: true if the sort should consider upper and lower case letters to be different\n*/\nexports.sortTiddlers = function(titles,sortField,isDescending,isCaseSensitive,isNumeric) {\n\tvar self = this;\n\ttitles.sort(function(a,b) {\n\t\tvar x,y,\n\t\t\tcompareNumbers = function(x,y) {\n\t\t\t\tvar result = \n\t\t\t\t\tisNaN(x) && !isNaN(y) ? (isDescending ? -1 : 1) :\n\t\t\t\t\t!isNaN(x) && isNaN(y) ? (isDescending ? 1 : -1) :\n\t\t\t\t\t (isDescending ? y - x : x - y);\n\t\t\t\treturn result;\n\t\t\t};\n\t\tif(sortField !== \"title\") {\n\t\t\tvar tiddlerA = self.getTiddler(a),\n\t\t\t\ttiddlerB = self.getTiddler(b);\n\t\t\tif(tiddlerA) {\n\t\t\t\ta = tiddlerA.fields[sortField] || \"\";\n\t\t\t} else {\n\t\t\t\ta = \"\";\n\t\t\t}\n\t\t\tif(tiddlerB) {\n\t\t\t\tb = tiddlerB.fields[sortField] || \"\";\n\t\t\t} else {\n\t\t\t\tb = \"\";\n\t\t\t}\n\t\t}\n\t\tx = Number(a);\n\t\ty = Number(b);\n\t\tif(isNumeric && (!isNaN(x) || !isNaN(y))) {\n\t\t\treturn compareNumbers(x,y);\n\t\t} else if($tw.utils.isDate(a) && $tw.utils.isDate(b)) {\n\t\t\treturn isDescending ? b - a : a - b;\n\t\t} else {\n\t\t\ta = String(a);\n\t\t\tb = String(b);\n\t\t\tif(!isCaseSensitive) {\n\t\t\t\ta = a.toLowerCase();\n\t\t\t\tb = b.toLowerCase();\n\t\t\t}\n\t\t\treturn isDescending ? b.localeCompare(a) : a.localeCompare(b);\n\t\t}\n\t});\n};\n\n/*\nFor every tiddler invoke a callback(title,tiddler) with `this` set to the wiki object. Options include:\nsortField: field to sort by\nexcludeTag: tag to exclude\nincludeSystem: whether to include system tiddlers (defaults to false)\n*/\nexports.forEachTiddler = function(/* [options,]callback */) {\n\tvar arg = 0,\n\t\toptions = arguments.length >= 2 ? arguments[arg++] : {},\n\t\tcallback = arguments[arg++],\n\t\ttitles = this.getTiddlers(options),\n\t\tt, tiddler;\n\tfor(t=0; t<titles.length; t++) {\n\t\ttiddler = this.getTiddler(titles[t]);\n\t\tif(tiddler) {\n\t\t\tcallback.call(this,tiddler.fields.title,tiddler);\n\t\t}\n\t}\n};\n\n/*\nReturn an array of tiddler titles that are directly linked from the specified tiddler\n*/\nexports.getTiddlerLinks = function(title) {\n\tvar self = this;\n\t// We'll cache the links so they only get computed if the tiddler changes\n\treturn this.getCacheForTiddler(title,\"links\",function() {\n\t\t// Parse the tiddler\n\t\tvar parser = self.parseTiddler(title);\n\t\t// Count up the links\n\t\tvar links = [],\n\t\t\tcheckParseTree = function(parseTree) {\n\t\t\t\tfor(var t=0; t<parseTree.length; t++) {\n\t\t\t\t\tvar parseTreeNode = parseTree[t];\n\t\t\t\t\tif(parseTreeNode.type === \"link\" && parseTreeNode.attributes.to && parseTreeNode.attributes.to.type === \"string\") {\n\t\t\t\t\t\tvar value = parseTreeNode.attributes.to.value;\n\t\t\t\t\t\tif(links.indexOf(value) === -1) {\n\t\t\t\t\t\t\tlinks.push(value);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif(parseTreeNode.children) {\n\t\t\t\t\t\tcheckParseTree(parseTreeNode.children);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t};\n\t\tif(parser) {\n\t\t\tcheckParseTree(parser.tree);\n\t\t}\n\t\treturn links;\n\t});\n};\n\n/*\nReturn an array of tiddler titles that link to the specified tiddler\n*/\nexports.getTiddlerBacklinks = function(targetTitle) {\n\tvar self = this,\n\t\tbacklinks = [];\n\tthis.forEachTiddler(function(title,tiddler) {\n\t\tvar links = self.getTiddlerLinks(title);\n\t\tif(links.indexOf(targetTitle) !== -1) {\n\t\t\tbacklinks.push(title);\n\t\t}\n\t});\n\treturn backlinks;\n};\n\n/*\nReturn a hashmap of tiddler titles that are referenced but not defined. Each value is the number of times the missing tiddler is referenced\n*/\nexports.getMissingTitles = function() {\n\tvar self = this,\n\t\tmissing = [];\n// We should cache the missing tiddler list, even if we recreate it every time any tiddler is modified\n\tthis.forEachTiddler(function(title,tiddler) {\n\t\tvar links = self.getTiddlerLinks(title);\n\t\t$tw.utils.each(links,function(link) {\n\t\t\tif((!self.tiddlerExists(link) && !self.isShadowTiddler(link)) && missing.indexOf(link) === -1) {\n\t\t\t\tmissing.push(link);\n\t\t\t}\n\t\t});\n\t});\n\treturn missing;\n};\n\nexports.getOrphanTitles = function() {\n\tvar self = this,\n\t\torphans = this.getTiddlers();\n\tthis.forEachTiddler(function(title,tiddler) {\n\t\tvar links = self.getTiddlerLinks(title);\n\t\t$tw.utils.each(links,function(link) {\n\t\t\tvar p = orphans.indexOf(link);\n\t\t\tif(p !== -1) {\n\t\t\t\torphans.splice(p,1);\n\t\t\t}\n\t\t});\n\t});\n\treturn orphans; // Todo\n};\n\n/*\nRetrieves a list of the tiddler titles that are tagged with a given tag\n*/\nexports.getTiddlersWithTag = function(tag) {\n\tvar self = this;\n\treturn this.getGlobalCache(\"taglist-\" + tag,function() {\n\t\tvar tagmap = self.getTagMap();\n\t\treturn self.sortByList(tagmap[tag],tag);\n\t});\n};\n\n/*\nGet a hashmap by tag of arrays of tiddler titles\n*/\nexports.getTagMap = function() {\n\tvar self = this;\n\treturn this.getGlobalCache(\"tagmap\",function() {\n\t\tvar tags = Object.create(null),\n\t\t\tstoreTags = function(tagArray,title) {\n\t\t\t\tif(tagArray) {\n\t\t\t\t\tfor(var index=0; index<tagArray.length; index++) {\n\t\t\t\t\t\tvar tag = tagArray[index];\n\t\t\t\t\t\tif($tw.utils.hop(tags,tag)) {\n\t\t\t\t\t\t\ttags[tag].push(title);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ttags[tag] = [title];\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\t\t\ttitle, tiddler;\n\t\t// Collect up all the tags\n\t\tself.eachShadow(function(tiddler,title) {\n\t\t\tif(!self.tiddlerExists(title)) {\n\t\t\t\ttiddler = self.getTiddler(title);\n\t\t\t\tstoreTags(tiddler.fields.tags,title);\n\t\t\t}\n\t\t});\n\t\tself.each(function(tiddler,title) {\n\t\t\tstoreTags(tiddler.fields.tags,title);\n\t\t});\n\t\treturn tags;\n\t});\n};\n\n/*\nLookup a given tiddler and return a list of all the tiddlers that include it in the specified list field\n*/\nexports.findListingsOfTiddler = function(targetTitle,fieldName) {\n\tfieldName = fieldName || \"list\";\n\tvar titles = [];\n\tthis.each(function(tiddler,title) {\n\t\tvar list = $tw.utils.parseStringArray(tiddler.fields[fieldName]);\n\t\tif(list && list.indexOf(targetTitle) !== -1) {\n\t\t\ttitles.push(title);\n\t\t}\n\t});\n\treturn titles;\n};\n\n/*\nSorts an array of tiddler titles according to an ordered list\n*/\nexports.sortByList = function(array,listTitle) {\n\tvar list = this.getTiddlerList(listTitle);\n\tif(!array || array.length === 0) {\n\t\treturn [];\n\t} else {\n\t\tvar titles = [], t, title;\n\t\t// First place any entries that are present in the list\n\t\tfor(t=0; t<list.length; t++) {\n\t\t\ttitle = list[t];\n\t\t\tif(array.indexOf(title) !== -1) {\n\t\t\t\ttitles.push(title);\n\t\t\t}\n\t\t}\n\t\t// Then place any remaining entries\n\t\tfor(t=0; t<array.length; t++) {\n\t\t\ttitle = array[t];\n\t\t\tif(list.indexOf(title) === -1) {\n\t\t\t\ttitles.push(title);\n\t\t\t}\n\t\t}\n\t\t// Finally obey the list-before and list-after fields of each tiddler in turn\n\t\tvar sortedTitles = titles.slice(0);\n\t\tfor(t=0; t<sortedTitles.length; t++) {\n\t\t\ttitle = sortedTitles[t];\n\t\t\tvar currPos = titles.indexOf(title),\n\t\t\t\tnewPos = -1,\n\t\t\t\ttiddler = this.getTiddler(title);\n\t\t\tif(tiddler) {\n\t\t\t\tvar beforeTitle = tiddler.fields[\"list-before\"],\n\t\t\t\t\tafterTitle = tiddler.fields[\"list-after\"];\n\t\t\t\tif(beforeTitle === \"\") {\n\t\t\t\t\tnewPos = 0;\n\t\t\t\t} else if(beforeTitle) {\n\t\t\t\t\tnewPos = titles.indexOf(beforeTitle);\n\t\t\t\t} else if(afterTitle) {\n\t\t\t\t\tnewPos = titles.indexOf(afterTitle);\n\t\t\t\t\tif(newPos >= 0) {\n\t\t\t\t\t\t++newPos;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif(newPos === -1) {\n\t\t\t\t\tnewPos = currPos;\n\t\t\t\t}\n\t\t\t\tif(newPos !== currPos) {\n\t\t\t\t\ttitles.splice(currPos,1);\n\t\t\t\t\tif(newPos >= currPos) {\n\t\t\t\t\t\tnewPos--;\n\t\t\t\t\t}\n\t\t\t\t\ttitles.splice(newPos,0,title);\n\t\t\t\t}\n\t\t\t}\n\n\t\t}\n\t\treturn titles;\n\t}\n};\n\nexports.getSubTiddler = function(title,subTiddlerTitle) {\n\tvar bundleInfo = this.getPluginInfo(title) || this.getTiddlerDataCached(title);\n\tif(bundleInfo && bundleInfo.tiddlers) {\n\t\tvar subTiddler = bundleInfo.tiddlers[subTiddlerTitle];\n\t\tif(subTiddler) {\n\t\t\treturn new $tw.Tiddler(subTiddler);\n\t\t}\n\t}\n\treturn null;\n};\n\n/*\nRetrieve a tiddler as a JSON string of the fields\n*/\nexports.getTiddlerAsJson = function(title) {\n\tvar tiddler = this.getTiddler(title);\n\tif(tiddler) {\n\t\tvar fields = Object.create(null);\n\t\t$tw.utils.each(tiddler.fields,function(value,name) {\n\t\t\tfields[name] = tiddler.getFieldString(name);\n\t\t});\n\t\treturn JSON.stringify(fields);\n\t} else {\n\t\treturn JSON.stringify({title: title});\n\t}\n};\n\n/*\nGet the content of a tiddler as a JavaScript object. How this is done depends on the type of the tiddler:\n\napplication/json: the tiddler JSON is parsed into an object\napplication/x-tiddler-dictionary: the tiddler is parsed as sequence of name:value pairs\n\nOther types currently just return null.\n\ntitleOrTiddler: string tiddler title or a tiddler object\ndefaultData: default data to be returned if the tiddler is missing or doesn't contain data\n\nNote that the same value is returned for repeated calls for the same tiddler data. The value is frozen to prevent modification; otherwise modifications would be visible to all callers\n*/\nexports.getTiddlerDataCached = function(titleOrTiddler,defaultData) {\n\tvar self = this,\n\t\ttiddler = titleOrTiddler;\n\tif(!(tiddler instanceof $tw.Tiddler)) {\n\t\ttiddler = this.getTiddler(tiddler);\t\n\t}\n\tif(tiddler) {\n\t\treturn this.getCacheForTiddler(tiddler.fields.title,\"data\",function() {\n\t\t\t// Return the frozen value\n\t\t\tvar value = self.getTiddlerData(tiddler.fields.title,defaultData);\n\t\t\t$tw.utils.deepFreeze(value);\n\t\t\treturn value;\n\t\t});\n\t} else {\n\t\treturn defaultData;\n\t}\n};\n\n/*\nAlternative, uncached version of getTiddlerDataCached(). The return value can be mutated freely and reused\n*/\nexports.getTiddlerData = function(titleOrTiddler,defaultData) {\n\tvar tiddler = titleOrTiddler,\n\t\tdata;\n\tif(!(tiddler instanceof $tw.Tiddler)) {\n\t\ttiddler = this.getTiddler(tiddler);\t\n\t}\n\tif(tiddler && tiddler.fields.text) {\n\t\tswitch(tiddler.fields.type) {\n\t\t\tcase \"application/json\":\n\t\t\t\t// JSON tiddler\n\t\t\t\ttry {\n\t\t\t\t\tdata = JSON.parse(tiddler.fields.text);\n\t\t\t\t} catch(ex) {\n\t\t\t\t\treturn defaultData;\n\t\t\t\t}\n\t\t\t\treturn data;\n\t\t\tcase \"application/x-tiddler-dictionary\":\n\t\t\t\treturn $tw.utils.parseFields(tiddler.fields.text);\n\t\t}\n\t}\n\treturn defaultData;\n};\n\n/*\nExtract an indexed field from within a data tiddler\n*/\nexports.extractTiddlerDataItem = function(titleOrTiddler,index,defaultText) {\n\tvar data = this.getTiddlerData(titleOrTiddler,Object.create(null)),\n\t\ttext;\n\tif(data && $tw.utils.hop(data,index)) {\n\t\ttext = data[index];\n\t}\n\tif(typeof text === \"string\" || typeof text === \"number\") {\n\t\treturn text.toString();\n\t} else {\n\t\treturn defaultText;\n\t}\n};\n\n/*\nSet a tiddlers content to a JavaScript object. Currently this is done by setting the tiddler's type to \"application/json\" and setting the text to the JSON text of the data.\ntitle: title of tiddler\ndata: object that can be serialised to JSON\nfields: optional hashmap of additional tiddler fields to be set\n*/\nexports.setTiddlerData = function(title,data,fields) {\n\tvar existingTiddler = this.getTiddler(title),\n\t\tnewFields = {\n\t\t\ttitle: title\n\t};\n\tif(existingTiddler && existingTiddler.fields.type === \"application/x-tiddler-dictionary\") {\n\t\tnewFields.text = $tw.utils.makeTiddlerDictionary(data);\n\t} else {\n\t\tnewFields.type = \"application/json\";\n\t\tnewFields.text = JSON.stringify(data,null,$tw.config.preferences.jsonSpaces);\n\t}\n\tthis.addTiddler(new $tw.Tiddler(this.getCreationFields(),existingTiddler,fields,newFields,this.getModificationFields()));\n};\n\n/*\nReturn the content of a tiddler as an array containing each line\n*/\nexports.getTiddlerList = function(title,field,index) {\n\tif(index) {\n\t\treturn $tw.utils.parseStringArray(this.extractTiddlerDataItem(title,index,\"\"));\n\t}\n\tfield = field || \"list\";\n\tvar tiddler = this.getTiddler(title);\n\tif(tiddler) {\n\t\treturn ($tw.utils.parseStringArray(tiddler.fields[field]) || []).slice(0);\n\t}\n\treturn [];\n};\n\n// Return a named global cache object. Global cache objects are cleared whenever a tiddler change occurs\nexports.getGlobalCache = function(cacheName,initializer) {\n\tthis.globalCache = this.globalCache || Object.create(null);\n\tif($tw.utils.hop(this.globalCache,cacheName)) {\n\t\treturn this.globalCache[cacheName];\n\t} else {\n\t\tthis.globalCache[cacheName] = initializer();\n\t\treturn this.globalCache[cacheName];\n\t}\n};\n\nexports.clearGlobalCache = function() {\n\tthis.globalCache = Object.create(null);\n};\n\n// Return the named cache object for a tiddler. If the cache doesn't exist then the initializer function is invoked to create it\nexports.getCacheForTiddler = function(title,cacheName,initializer) {\n\tthis.caches = this.caches || Object.create(null);\n\tvar caches = this.caches[title];\n\tif(caches && caches[cacheName]) {\n\t\treturn caches[cacheName];\n\t} else {\n\t\tif(!caches) {\n\t\t\tcaches = Object.create(null);\n\t\t\tthis.caches[title] = caches;\n\t\t}\n\t\tcaches[cacheName] = initializer();\n\t\treturn caches[cacheName];\n\t}\n};\n\n// Clear all caches associated with a particular tiddler, or, if the title is null, clear all the caches for all the tiddlers\nexports.clearCache = function(title) {\n\tif(title) {\n\t\tthis.caches = this.caches || Object.create(null);\n\t\tif($tw.utils.hop(this.caches,title)) {\n\t\t\tdelete this.caches[title];\n\t\t}\n\t} else {\n\t\tthis.caches = Object.create(null);\n\t}\n};\n\nexports.initParsers = function(moduleType) {\n\t// Install the parser modules\n\t$tw.Wiki.parsers = {};\n\tvar self = this;\n\t$tw.modules.forEachModuleOfType(\"parser\",function(title,module) {\n\t\tfor(var f in module) {\n\t\t\tif($tw.utils.hop(module,f)) {\n\t\t\t\t$tw.Wiki.parsers[f] = module[f]; // Store the parser class\n\t\t\t}\n\t\t}\n\t});\n};\n\n/*\nParse a block of text of a specified MIME type\n\ttype: content type of text to be parsed\n\ttext: text\n\toptions: see below\nOptions include:\n\tparseAsInline: if true, the text of the tiddler will be parsed as an inline run\n\t_canonical_uri: optional string of the canonical URI of this content\n*/\nexports.parseText = function(type,text,options) {\n\ttext = text || \"\";\n\toptions = options || {};\n\t// Select a parser\n\tvar Parser = $tw.Wiki.parsers[type];\n\tif(!Parser && $tw.utils.getFileExtensionInfo(type)) {\n\t\tParser = $tw.Wiki.parsers[$tw.utils.getFileExtensionInfo(type).type];\n\t}\n\tif(!Parser) {\n\t\tParser = $tw.Wiki.parsers[options.defaultType || \"text/vnd.tiddlywiki\"];\n\t}\n\tif(!Parser) {\n\t\treturn null;\n\t}\n\t// Return the parser instance\n\treturn new Parser(type,text,{\n\t\tparseAsInline: options.parseAsInline,\n\t\twiki: this,\n\t\t_canonical_uri: options._canonical_uri\n\t});\n};\n\n/*\nParse a tiddler according to its MIME type\n*/\nexports.parseTiddler = function(title,options) {\n\toptions = $tw.utils.extend({},options);\n\tvar cacheType = options.parseAsInline ? \"inlineParseTree\" : \"blockParseTree\",\n\t\ttiddler = this.getTiddler(title),\n\t\tself = this;\n\treturn tiddler ? this.getCacheForTiddler(title,cacheType,function() {\n\t\t\tif(tiddler.hasField(\"_canonical_uri\")) {\n\t\t\t\toptions._canonical_uri = tiddler.fields._canonical_uri;\n\t\t\t}\n\t\t\treturn self.parseText(tiddler.fields.type,tiddler.fields.text,options);\n\t\t}) : null;\n};\n\nexports.parseTextReference = function(title,field,index,options) {\n\tvar tiddler,text;\n\tif(options.subTiddler) {\n\t\ttiddler = this.getSubTiddler(title,options.subTiddler);\n\t} else {\n\t\ttiddler = this.getTiddler(title);\n\t\tif(field === \"text\" || (!field && !index)) {\n\t\t\tthis.getTiddlerText(title); // Force the tiddler to be lazily loaded\n\t\t\treturn this.parseTiddler(title,options);\n\t\t}\n\t}\n\tif(field === \"text\" || (!field && !index)) {\n\t\tif(tiddler && tiddler.fields) {\n\t\t\treturn this.parseText(tiddler.fields.type || \"text/vnd.tiddlywiki\",tiddler.fields.text,options);\t\t\t\n\t\t} else {\n\t\t\treturn null;\n\t\t}\n\t} else if(field) {\n\t\tif(field === \"title\") {\n\t\t\ttext = title;\n\t\t} else {\n\t\t\tif(!tiddler || !tiddler.hasField(field)) {\n\t\t\t\treturn null;\n\t\t\t}\n\t\t\ttext = tiddler.fields[field];\n\t\t}\n\t\treturn this.parseText(\"text/vnd.tiddlywiki\",text.toString(),options);\n\t} else if(index) {\n\t\tthis.getTiddlerText(title); // Force the tiddler to be lazily loaded\n\t\ttext = this.extractTiddlerDataItem(tiddler,index,undefined);\n\t\tif(text === undefined) {\n\t\t\treturn null;\n\t\t}\n\t\treturn this.parseText(\"text/vnd.tiddlywiki\",text,options);\n\t}\n};\n\n/*\nMake a widget tree for a parse tree\nparser: parser object\noptions: see below\nOptions include:\ndocument: optional document to use\nvariables: hashmap of variables to set\nparentWidget: optional parent widget for the root node\n*/\nexports.makeWidget = function(parser,options) {\n\toptions = options || {};\n\tvar widgetNode = {\n\t\t\ttype: \"widget\",\n\t\t\tchildren: []\n\t\t},\n\t\tcurrWidgetNode = widgetNode;\n\t// Create set variable widgets for each variable\n\t$tw.utils.each(options.variables,function(value,name) {\n\t\tvar setVariableWidget = {\n\t\t\ttype: \"set\",\n\t\t\tattributes: {\n\t\t\t\tname: {type: \"string\", value: name},\n\t\t\t\tvalue: {type: \"string\", value: value}\n\t\t\t},\n\t\t\tchildren: []\n\t\t};\n\t\tcurrWidgetNode.children = [setVariableWidget];\n\t\tcurrWidgetNode = setVariableWidget;\n\t});\n\t// Add in the supplied parse tree nodes\n\tcurrWidgetNode.children = parser ? parser.tree : [];\n\t// Create the widget\n\treturn new widget.widget(widgetNode,{\n\t\twiki: this,\n\t\tdocument: options.document || $tw.fakeDocument,\n\t\tparentWidget: options.parentWidget\n\t});\n};\n\n/*\nMake a widget tree for transclusion\ntitle: target tiddler title\noptions: as for wiki.makeWidget() plus:\noptions.field: optional field to transclude (defaults to \"text\")\noptions.mode: transclusion mode \"inline\" or \"block\"\noptions.children: optional array of children for the transclude widget\n*/\nexports.makeTranscludeWidget = function(title,options) {\n\toptions = options || {};\n\tvar parseTree = {tree: [{\n\t\t\ttype: \"element\",\n\t\t\ttag: \"div\",\n\t\t\tchildren: [{\n\t\t\t\ttype: \"transclude\",\n\t\t\t\tattributes: {\n\t\t\t\t\ttiddler: {\n\t\t\t\t\t\tname: \"tiddler\",\n\t\t\t\t\t\ttype: \"string\",\n\t\t\t\t\t\tvalue: title}},\n\t\t\t\tisBlock: !options.parseAsInline}]}\n\t]};\n\tif(options.field) {\n\t\tparseTree.tree[0].children[0].attributes.field = {type: \"string\", value: options.field};\n\t}\n\tif(options.mode) {\n\t\tparseTree.tree[0].children[0].attributes.mode = {type: \"string\", value: options.mode};\n\t}\n\tif(options.children) {\n\t\tparseTree.tree[0].children[0].children = options.children;\n\t}\n\treturn $tw.wiki.makeWidget(parseTree,options);\n};\n\n/*\nParse text in a specified format and render it into another format\n\toutputType: content type for the output\n\ttextType: content type of the input text\n\ttext: input text\n\toptions: see below\nOptions include:\nvariables: hashmap of variables to set\nparentWidget: optional parent widget for the root node\n*/\nexports.renderText = function(outputType,textType,text,options) {\n\toptions = options || {};\n\tvar parser = this.parseText(textType,text,options),\n\t\twidgetNode = this.makeWidget(parser,options);\n\tvar container = $tw.fakeDocument.createElement(\"div\");\n\twidgetNode.render(container,null);\n\treturn outputType === \"text/html\" ? container.innerHTML : container.textContent;\n};\n\n/*\nParse text from a tiddler and render it into another format\n\toutputType: content type for the output\n\ttitle: title of the tiddler to be rendered\n\toptions: see below\nOptions include:\nvariables: hashmap of variables to set\nparentWidget: optional parent widget for the root node\n*/\nexports.renderTiddler = function(outputType,title,options) {\n\toptions = options || {};\n\tvar parser = this.parseTiddler(title,options),\n\t\twidgetNode = this.makeWidget(parser,options);\n\tvar container = $tw.fakeDocument.createElement(\"div\");\n\twidgetNode.render(container,null);\n\treturn outputType === \"text/html\" ? container.innerHTML : (outputType === \"text/plain-formatted\" ? container.formattedTextContent : container.textContent);\n};\n\n/*\nReturn an array of tiddler titles that match a search string\n\ttext: The text string to search for\n\toptions: see below\nOptions available:\n\tsource: an iterator function for the source tiddlers, called source(iterator), where iterator is called as iterator(tiddler,title)\n\texclude: An array of tiddler titles to exclude from the search\n\tinvert: If true returns tiddlers that do not contain the specified string\n\tcaseSensitive: If true forces a case sensitive search\n\tliteral: If true, searches for literal string, rather than separate search terms\n\tfield: If specified, restricts the search to the specified field\n*/\nexports.search = function(text,options) {\n\toptions = options || {};\n\tvar self = this,\n\t\tt,\n\t\tinvert = !!options.invert;\n\t// Convert the search string into a regexp for each term\n\tvar terms, searchTermsRegExps,\n\t\tflags = options.caseSensitive ? \"\" : \"i\";\n\tif(options.literal) {\n\t\tif(text.length === 0) {\n\t\t\tsearchTermsRegExps = null;\n\t\t} else {\n\t\t\tsearchTermsRegExps = [new RegExp(\"(\" + $tw.utils.escapeRegExp(text) + \")\",flags)];\n\t\t}\n\t} else {\n\t\tterms = text.split(/ +/);\n\t\tif(terms.length === 1 && terms[0] === \"\") {\n\t\t\tsearchTermsRegExps = null;\n\t\t} else {\n\t\t\tsearchTermsRegExps = [];\n\t\t\tfor(t=0; t<terms.length; t++) {\n\t\t\t\tsearchTermsRegExps.push(new RegExp(\"(\" + $tw.utils.escapeRegExp(terms[t]) + \")\",flags));\n\t\t\t}\n\t\t}\n\t}\n\t// Function to check a given tiddler for the search term\n\tvar searchTiddler = function(title) {\n\t\tif(!searchTermsRegExps) {\n\t\t\treturn true;\n\t\t}\n\t\tvar tiddler = self.getTiddler(title);\n\t\tif(!tiddler) {\n\t\t\ttiddler = new $tw.Tiddler({title: title, text: \"\", type: \"text/vnd.tiddlywiki\"});\n\t\t}\n\t\tvar contentTypeInfo = $tw.config.contentTypeInfo[tiddler.fields.type] || $tw.config.contentTypeInfo[\"text/vnd.tiddlywiki\"],\n\t\t\tmatch;\n\t\tfor(var t=0; t<searchTermsRegExps.length; t++) {\n\t\t\tmatch = false;\n\t\t\tif(options.field) {\n\t\t\t\tmatch = searchTermsRegExps[t].test(tiddler.getFieldString(options.field));\n\t\t\t} else {\n\t\t\t\t// Search title, tags and body\n\t\t\t\tif(contentTypeInfo.encoding === \"utf8\") {\n\t\t\t\t\tmatch = match || searchTermsRegExps[t].test(tiddler.fields.text);\n\t\t\t\t}\n\t\t\t\tvar tags = tiddler.fields.tags ? tiddler.fields.tags.join(\"\\0\") : \"\";\n\t\t\t\tmatch = match || searchTermsRegExps[t].test(tags) || searchTermsRegExps[t].test(tiddler.fields.title);\n\t\t\t}\n\t\t\tif(!match) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\t\treturn true;\n\t};\n\t// Loop through all the tiddlers doing the search\n\tvar results = [],\n\t\tsource = options.source || this.each;\n\tsource(function(tiddler,title) {\n\t\tif(searchTiddler(title) !== options.invert) {\n\t\t\tresults.push(title);\n\t\t}\n\t});\n\t// Remove any of the results we have to exclude\n\tif(options.exclude) {\n\t\tfor(t=0; t<options.exclude.length; t++) {\n\t\t\tvar p = results.indexOf(options.exclude[t]);\n\t\t\tif(p !== -1) {\n\t\t\t\tresults.splice(p,1);\n\t\t\t}\n\t\t}\n\t}\n\treturn results;\n};\n\n/*\nTrigger a load for a tiddler if it is skinny. Returns the text, or undefined if the tiddler is missing, null if the tiddler is being lazily loaded.\n*/\nexports.getTiddlerText = function(title,defaultText) {\n\tvar tiddler = this.getTiddler(title);\n\t// Return undefined if the tiddler isn't found\n\tif(!tiddler) {\n\t\treturn defaultText;\n\t}\n\tif(tiddler.fields.text !== undefined) {\n\t\t// Just return the text if we've got it\n\t\treturn tiddler.fields.text;\n\t} else {\n\t\t// Tell any listeners about the need to lazily load this tiddler\n\t\tthis.dispatchEvent(\"lazyLoad\",title);\n\t\t// Indicate that the text is being loaded\n\t\treturn null;\n\t}\n};\n\n/*\nRead an array of browser File objects, invoking callback(tiddlerFieldsArray) once they're all read\n*/\nexports.readFiles = function(files,callback) {\n\tvar result = [],\n\t\toutstanding = files.length;\n\tfor(var f=0; f<files.length; f++) {\n\t\tthis.readFile(files[f],function(tiddlerFieldsArray) {\n\t\t\tresult.push.apply(result,tiddlerFieldsArray);\n\t\t\tif(--outstanding === 0) {\n\t\t\t\tcallback(result);\n\t\t\t}\n\t\t});\n\t}\n\treturn files.length;\n};\n\n/*\nRead a browser File object, invoking callback(tiddlerFieldsArray) with an array of tiddler fields objects\n*/\nexports.readFile = function(file,callback) {\n\t// Get the type, falling back to the filename extension\n\tvar self = this,\n\t\ttype = file.type;\n\tif(type === \"\" || !type) {\n\t\tvar dotPos = file.name.lastIndexOf(\".\");\n\t\tif(dotPos !== -1) {\n\t\t\tvar fileExtensionInfo = $tw.utils.getFileExtensionInfo(file.name.substr(dotPos));\n\t\t\tif(fileExtensionInfo) {\n\t\t\t\ttype = fileExtensionInfo.type;\n\t\t\t}\n\t\t}\n\t}\n\t// Figure out if we're reading a binary file\n\tvar contentTypeInfo = $tw.config.contentTypeInfo[type],\n\t\tisBinary = contentTypeInfo ? contentTypeInfo.encoding === \"base64\" : false;\n\t// Log some debugging information\n\tif($tw.log.IMPORT) {\n\t\tconsole.log(\"Importing file '\" + file.name + \"', type: '\" + type + \"', isBinary: \" + isBinary);\n\t}\n\t// Create the FileReader\n\tvar reader = new FileReader();\n\t// Onload\n\treader.onload = function(event) {\n\t\t// Deserialise the file contents\n\t\tvar text = event.target.result,\n\t\t\ttiddlerFields = {title: file.name || \"Untitled\", type: type};\n\t\t// Are we binary?\n\t\tif(isBinary) {\n\t\t\t// The base64 section starts after the first comma in the data URI\n\t\t\tvar commaPos = text.indexOf(\",\");\n\t\t\tif(commaPos !== -1) {\n\t\t\t\ttiddlerFields.text = text.substr(commaPos+1);\n\t\t\t\tcallback([tiddlerFields]);\n\t\t\t}\n\t\t} else {\n\t\t\t// Check whether this is an encrypted TiddlyWiki file\n\t\t\tvar encryptedJson = $tw.utils.extractEncryptedStoreArea(text);\n\t\t\tif(encryptedJson) {\n\t\t\t\t// If so, attempt to decrypt it with the current password\n\t\t\t\t$tw.utils.decryptStoreAreaInteractive(encryptedJson,function(tiddlers) {\n\t\t\t\t\tcallback(tiddlers);\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\t// Otherwise, just try to deserialise any tiddlers in the file\n\t\t\t\tcallback(self.deserializeTiddlers(type,text,tiddlerFields));\n\t\t\t}\n\t\t}\n\t};\n\t// Kick off the read\n\tif(isBinary) {\n\t\treader.readAsDataURL(file);\n\t} else {\n\t\treader.readAsText(file);\n\t}\n};\n\n/*\nFind any existing draft of a specified tiddler\n*/\nexports.findDraft = function(targetTitle) {\n\tvar draftTitle = undefined;\n\tthis.forEachTiddler({includeSystem: true},function(title,tiddler) {\n\t\tif(tiddler.fields[\"draft.title\"] && tiddler.fields[\"draft.of\"] === targetTitle) {\n\t\t\tdraftTitle = title;\n\t\t}\n\t});\n\treturn draftTitle;\n}\n\n/*\nCheck whether the specified draft tiddler has been modified.\nIf the original tiddler doesn't exist, create a vanilla tiddler variable,\nto check if additional fields have been added.\n*/\nexports.isDraftModified = function(title) {\n\tvar tiddler = this.getTiddler(title);\n\tif(!tiddler.isDraft()) {\n\t\treturn false;\n\t}\n\tvar ignoredFields = [\"created\", \"modified\", \"title\", \"draft.title\", \"draft.of\"],\n\t\torigTiddler = this.getTiddler(tiddler.fields[\"draft.of\"]) || new $tw.Tiddler({text:\"\", tags:[]}),\n\t\ttitleModified = tiddler.fields[\"draft.title\"] !== tiddler.fields[\"draft.of\"];\n\treturn titleModified || !tiddler.isEqual(origTiddler,ignoredFields);\n};\n\n/*\nAdd a new record to the top of the history stack\ntitle: a title string or an array of title strings\nfromPageRect: page coordinates of the origin of the navigation\nhistoryTitle: title of history tiddler (defaults to $:/HistoryList)\n*/\nexports.addToHistory = function(title,fromPageRect,historyTitle) {\n\tvar story = new $tw.Story({wiki: this, historyTitle: historyTitle});\n\tstory.addToHistory(title,fromPageRect);\n};\n\n/*\nInvoke the available upgrader modules\ntitles: array of tiddler titles to be processed\ntiddlers: hashmap by title of tiddler fields of pending import tiddlers. These can be modified by the upgraders. An entry with no fields indicates a tiddler that was pending import has been suppressed. When entries are added to the pending import the tiddlers hashmap may have entries that are not present in the titles array\nReturns a hashmap of messages keyed by tiddler title.\n*/\nexports.invokeUpgraders = function(titles,tiddlers) {\n\t// Collect up the available upgrader modules\n\tvar self = this;\n\tif(!this.upgraderModules) {\n\t\tthis.upgraderModules = [];\n\t\t$tw.modules.forEachModuleOfType(\"upgrader\",function(title,module) {\n\t\t\tif(module.upgrade) {\n\t\t\t\tself.upgraderModules.push(module);\n\t\t\t}\n\t\t});\n\t}\n\t// Invoke each upgrader in turn\n\tvar messages = {};\n\tfor(var t=0; t<this.upgraderModules.length; t++) {\n\t\tvar upgrader = this.upgraderModules[t],\n\t\t\tupgraderMessages = upgrader.upgrade(this,titles,tiddlers);\n\t\t$tw.utils.extend(messages,upgraderMessages);\n\t}\n\treturn messages;\n};\n\n})();\n", "title": "$:/core/modules/wiki.js", "type": "application/javascript", "module-type": "wikimethod" }, "$:/palettes/Blanca": { "title": "$:/palettes/Blanca", "name": "Blanca", "description": "A clean white palette to let you focus", "tags": "$:/tags/Palette", "type": "application/x-tiddler-dictionary", "text": "alert-background: #ffe476\nalert-border: #b99e2f\nalert-highlight: #881122\nalert-muted-foreground: #b99e2f\nbackground: #ffffff\nblockquote-bar: <<colour muted-foreground>>\nbutton-background:\nbutton-foreground:\nbutton-border:\ncode-background: #f7f7f9\ncode-border: #e1e1e8\ncode-foreground: #dd1144\ndirty-indicator: #ff0000\ndownload-background: #66cccc\ndownload-foreground: <<colour background>>\ndragger-background: <<colour foreground>>\ndragger-foreground: <<colour background>>\ndropdown-background: <<colour background>>\ndropdown-border: <<colour muted-foreground>>\ndropdown-tab-background-selected: #fff\ndropdown-tab-background: #ececec\ndropzone-background: rgba(0,200,0,0.7)\nexternal-link-background-hover: inherit\nexternal-link-background-visited: inherit\nexternal-link-background: inherit\nexternal-link-foreground-hover: inherit\nexternal-link-foreground-visited: #0000aa\nexternal-link-foreground: #0000ee\nforeground: #333333\nmessage-background: #ecf2ff\nmessage-border: #cfd6e6\nmessage-foreground: #547599\nmodal-backdrop: <<colour foreground>>\nmodal-background: <<colour background>>\nmodal-border: #999999\nmodal-footer-background: #f5f5f5\nmodal-footer-border: #dddddd\nmodal-header-border: #eeeeee\nmuted-foreground: #999999\nnotification-background: #ffffdd\nnotification-border: #999999\npage-background: #ffffff\npre-background: #f5f5f5\npre-border: #cccccc\nprimary: #7897f3\nsidebar-button-foreground: <<colour foreground>>\nsidebar-controls-foreground-hover: #000000\nsidebar-controls-foreground: #ccc\nsidebar-foreground-shadow: rgba(255,255,255, 0.8)\nsidebar-foreground: #acacac\nsidebar-muted-foreground-hover: #444444\nsidebar-muted-foreground: #c0c0c0\nsidebar-tab-background-selected: #ffffff\nsidebar-tab-background: <<colour tab-background>>\nsidebar-tab-border-selected: <<colour tab-border-selected>>\nsidebar-tab-border: <<colour tab-border>>\nsidebar-tab-divider: <<colour tab-divider>>\nsidebar-tab-foreground-selected: \nsidebar-tab-foreground: <<colour tab-foreground>>\nsidebar-tiddler-link-foreground-hover: #444444\nsidebar-tiddler-link-foreground: #7897f3\nsite-title-foreground: <<colour tiddler-title-foreground>>\nstatic-alert-foreground: #aaaaaa\ntab-background-selected: #ffffff\ntab-background: #eeeeee\ntab-border-selected: #cccccc\ntab-border: #cccccc\ntab-divider: #d8d8d8\ntab-foreground-selected: <<colour tab-foreground>>\ntab-foreground: #666666\ntable-border: #dddddd\ntable-footer-background: #a8a8a8\ntable-header-background: #f0f0f0\ntag-background: #ffeedd\ntag-foreground: #000\ntiddler-background: <<colour background>>\ntiddler-border: #eee\ntiddler-controls-foreground-hover: #888888\ntiddler-controls-foreground-selected: #444444\ntiddler-controls-foreground: #cccccc\ntiddler-editor-background: #f8f8f8\ntiddler-editor-border-image: #ffffff\ntiddler-editor-border: #cccccc\ntiddler-editor-fields-even: #e0e8e0\ntiddler-editor-fields-odd: #f0f4f0\ntiddler-info-background: #f8f8f8\ntiddler-info-border: #dddddd\ntiddler-info-tab-background: #f8f8f8\ntiddler-link-background: <<colour background>>\ntiddler-link-foreground: <<colour primary>>\ntiddler-subtitle-foreground: #c0c0c0\ntiddler-title-foreground: #ff9900\ntoolbar-new-button:\ntoolbar-options-button:\ntoolbar-save-button:\ntoolbar-info-button:\ntoolbar-edit-button:\ntoolbar-close-button:\ntoolbar-delete-button:\ntoolbar-cancel-button:\ntoolbar-done-button:\nuntagged-background: #999999\nvery-muted-foreground: #888888\n" }, "$:/palettes/Blue": { "title": "$:/palettes/Blue", "name": "Blue", "description": "A blue theme", "tags": "$:/tags/Palette", "type": "application/x-tiddler-dictionary", "text": "alert-background: #ffe476\nalert-border: #b99e2f\nalert-highlight: #881122\nalert-muted-foreground: #b99e2f\nbackground: #fff\nblockquote-bar: <<colour muted-foreground>>\nbutton-background:\nbutton-foreground:\nbutton-border:\ncode-background: #f7f7f9\ncode-border: #e1e1e8\ncode-foreground: #dd1144\ndirty-indicator: #ff0000\ndownload-background: #34c734\ndownload-foreground: <<colour foreground>>\ndragger-background: <<colour foreground>>\ndragger-foreground: <<colour background>>\ndropdown-background: <<colour background>>\ndropdown-border: <<colour muted-foreground>>\ndropdown-tab-background-selected: #fff\ndropdown-tab-background: #ececec\ndropzone-background: rgba(0,200,0,0.7)\nexternal-link-background-hover: inherit\nexternal-link-background-visited: inherit\nexternal-link-background: inherit\nexternal-link-foreground-hover: inherit\nexternal-link-foreground-visited: #0000aa\nexternal-link-foreground: #0000ee\nforeground: #333353\nmessage-background: #ecf2ff\nmessage-border: #cfd6e6\nmessage-foreground: #547599\nmodal-backdrop: <<colour foreground>>\nmodal-background: <<colour background>>\nmodal-border: #999999\nmodal-footer-background: #f5f5f5\nmodal-footer-border: #dddddd\nmodal-header-border: #eeeeee\nmuted-foreground: #999999\nnotification-background: #ffffdd\nnotification-border: #999999\npage-background: #ddddff\npre-background: #f5f5f5\npre-border: #cccccc\nprimary: #5778d8\nsidebar-button-foreground: <<colour foreground>>\nsidebar-controls-foreground-hover: #000000\nsidebar-controls-foreground: #ffffff\nsidebar-foreground-shadow: rgba(255,255,255, 0.8)\nsidebar-foreground: #acacac\nsidebar-muted-foreground-hover: #444444\nsidebar-muted-foreground: #c0c0c0\nsidebar-tab-background-selected: <<colour page-background>>\nsidebar-tab-background: <<colour tab-background>>\nsidebar-tab-border-selected: <<colour tab-border-selected>>\nsidebar-tab-border: <<colour tab-border>>\nsidebar-tab-divider: <<colour tab-divider>>\nsidebar-tab-foreground-selected: \nsidebar-tab-foreground: <<colour tab-foreground>>\nsidebar-tiddler-link-foreground-hover: #444444\nsidebar-tiddler-link-foreground: #5959c0\nsite-title-foreground: <<colour tiddler-title-foreground>>\nstatic-alert-foreground: #aaaaaa\ntab-background-selected: <<colour background>>\ntab-background: #ccccdd\ntab-border-selected: #ccccdd\ntab-border: #cccccc\ntab-divider: #d8d8d8\ntab-foreground-selected: <<colour tab-foreground>>\ntab-foreground: #666666\ntable-border: #dddddd\ntable-footer-background: #a8a8a8\ntable-header-background: #f0f0f0\ntag-background: #eeeeff\ntag-foreground: #000\ntiddler-background: <<colour background>>\ntiddler-border: <<colour background>>\ntiddler-controls-foreground-hover: #666666\ntiddler-controls-foreground-selected: #444444\ntiddler-controls-foreground: #cccccc\ntiddler-editor-background: #f8f8f8\ntiddler-editor-border-image: #ffffff\ntiddler-editor-border: #cccccc\ntiddler-editor-fields-even: #e0e8e0\ntiddler-editor-fields-odd: #f0f4f0\ntiddler-info-background: #ffffff\ntiddler-info-border: #dddddd\ntiddler-info-tab-background: #ffffff\ntiddler-link-background: <<colour background>>\ntiddler-link-foreground: <<colour primary>>\ntiddler-subtitle-foreground: #c0c0c0\ntiddler-title-foreground: #5959c0\ntoolbar-new-button: #5eb95e\ntoolbar-options-button: rgb(128, 88, 165)\ntoolbar-save-button: #0e90d2\ntoolbar-info-button: #0e90d2\ntoolbar-edit-button: rgb(243, 123, 29)\ntoolbar-close-button: #dd514c\ntoolbar-delete-button: #dd514c\ntoolbar-cancel-button: rgb(243, 123, 29)\ntoolbar-done-button: #5eb95e\nuntagged-background: #999999\nvery-muted-foreground: #888888\n" }, "$:/palettes/Muted": { "title": "$:/palettes/Muted", "name": "Muted", "description": "Bright tiddlers on a muted background", "tags": "$:/tags/Palette", "type": "application/x-tiddler-dictionary", "text": "alert-background: #ffe476\nalert-border: #b99e2f\nalert-highlight: #881122\nalert-muted-foreground: #b99e2f\nbackground: #ffffff\nblockquote-bar: <<colour muted-foreground>>\nbutton-background:\nbutton-foreground:\nbutton-border:\ncode-background: #f7f7f9\ncode-border: #e1e1e8\ncode-foreground: #dd1144\ndirty-indicator: #ff0000\ndownload-background: #34c734\ndownload-foreground: <<colour background>>\ndragger-background: <<colour foreground>>\ndragger-foreground: <<colour background>>\ndropdown-background: <<colour background>>\ndropdown-border: <<colour muted-foreground>>\ndropdown-tab-background-selected: #fff\ndropdown-tab-background: #ececec\ndropzone-background: rgba(0,200,0,0.7)\nexternal-link-background-hover: inherit\nexternal-link-background-visited: inherit\nexternal-link-background: inherit\nexternal-link-foreground-hover: inherit\nexternal-link-foreground-visited: #0000aa\nexternal-link-foreground: #0000ee\nforeground: #333333\nmessage-background: #ecf2ff\nmessage-border: #cfd6e6\nmessage-foreground: #547599\nmodal-backdrop: <<colour foreground>>\nmodal-background: <<colour background>>\nmodal-border: #999999\nmodal-footer-background: #f5f5f5\nmodal-footer-border: #dddddd\nmodal-header-border: #eeeeee\nmuted-foreground: #bbb\nnotification-background: #ffffdd\nnotification-border: #999999\npage-background: #6f6f70\npre-background: #f5f5f5\npre-border: #cccccc\nprimary: #29a6ee\nsidebar-button-foreground: <<colour foreground>>\nsidebar-controls-foreground-hover: #000000\nsidebar-controls-foreground: #c2c1c2\nsidebar-foreground-shadow: rgba(255,255,255,0)\nsidebar-foreground: #d3d2d4\nsidebar-muted-foreground-hover: #444444\nsidebar-muted-foreground: #c0c0c0\nsidebar-tab-background-selected: #6f6f70\nsidebar-tab-background: #666667\nsidebar-tab-border-selected: #999\nsidebar-tab-border: #515151\nsidebar-tab-divider: #999\nsidebar-tab-foreground-selected: \nsidebar-tab-foreground: #999\nsidebar-tiddler-link-foreground-hover: #444444\nsidebar-tiddler-link-foreground: #d1d0d2\nsite-title-foreground: <<colour tiddler-title-foreground>>\nstatic-alert-foreground: #aaaaaa\ntab-background-selected: #ffffff\ntab-background: #d8d8d8\ntab-border-selected: #d8d8d8\ntab-border: #cccccc\ntab-divider: #d8d8d8\ntab-foreground-selected: <<colour tab-foreground>>\ntab-foreground: #666666\ntable-border: #dddddd\ntable-footer-background: #a8a8a8\ntable-header-background: #f0f0f0\ntag-background: #d5ad34\ntag-foreground: #ffffff\ntiddler-background: <<colour background>>\ntiddler-border: <<colour background>>\ntiddler-controls-foreground-hover: #888888\ntiddler-controls-foreground-selected: #444444\ntiddler-controls-foreground: #cccccc\ntiddler-editor-background: #f8f8f8\ntiddler-editor-border-image: #ffffff\ntiddler-editor-border: #cccccc\ntiddler-editor-fields-even: #e0e8e0\ntiddler-editor-fields-odd: #f0f4f0\ntiddler-info-background: #f8f8f8\ntiddler-info-border: #dddddd\ntiddler-info-tab-background: #f8f8f8\ntiddler-link-background: <<colour background>>\ntiddler-link-foreground: <<colour primary>>\ntiddler-subtitle-foreground: #c0c0c0\ntiddler-title-foreground: #182955\ntoolbar-new-button: \ntoolbar-options-button: \ntoolbar-save-button: \ntoolbar-info-button: \ntoolbar-edit-button: \ntoolbar-close-button: \ntoolbar-delete-button: \ntoolbar-cancel-button: \ntoolbar-done-button: \nuntagged-background: #999999\nvery-muted-foreground: #888888\n" }, "$:/palettes/ContrastLight": { "title": "$:/palettes/ContrastLight", "name": "Contrast (Light)", "description": "High contrast and unambiguous (light version)", "tags": "$:/tags/Palette", "type": "application/x-tiddler-dictionary", "text": "alert-background: #f00\nalert-border: <<colour background>>\nalert-highlight: <<colour foreground>>\nalert-muted-foreground: #800\nbackground: #fff\nblockquote-bar: <<colour muted-foreground>>\nbutton-background: <<colour background>>\nbutton-foreground: <<colour foreground>>\nbutton-border: <<colour foreground>>\ncode-background: <<colour background>>\ncode-border: <<colour foreground>>\ncode-foreground: <<colour foreground>>\ndirty-indicator: #f00\ndownload-background: #080\ndownload-foreground: <<colour background>>\ndragger-background: <<colour foreground>>\ndragger-foreground: <<colour background>>\ndropdown-background: <<colour background>>\ndropdown-border: <<colour muted-foreground>>\ndropdown-tab-background-selected: <<colour foreground>>\ndropdown-tab-background: <<colour foreground>>\ndropzone-background: rgba(0,200,0,0.7)\nexternal-link-background-hover: inherit\nexternal-link-background-visited: inherit\nexternal-link-background: inherit\nexternal-link-foreground-hover: inherit\nexternal-link-foreground-visited: #00a\nexternal-link-foreground: #00e\nforeground: #000\nmessage-background: <<colour foreground>>\nmessage-border: <<colour background>>\nmessage-foreground: <<colour background>>\nmodal-backdrop: <<colour foreground>>\nmodal-background: <<colour background>>\nmodal-border: <<colour foreground>>\nmodal-footer-background: <<colour background>>\nmodal-footer-border: <<colour foreground>>\nmodal-header-border: <<colour foreground>>\nmuted-foreground: <<colour foreground>>\nnotification-background: <<colour background>>\nnotification-border: <<colour foreground>>\npage-background: <<colour background>>\npre-background: <<colour background>>\npre-border: <<colour foreground>>\nprimary: #00f\nsidebar-button-foreground: <<colour foreground>>\nsidebar-controls-foreground-hover: <<colour background>>\nsidebar-controls-foreground: <<colour foreground>>\nsidebar-foreground-shadow: rgba(0,0,0, 0)\nsidebar-foreground: <<colour foreground>>\nsidebar-muted-foreground-hover: #444444\nsidebar-muted-foreground: <<colour foreground>>\nsidebar-tab-background-selected: <<colour background>>\nsidebar-tab-background: <<colour tab-background>>\nsidebar-tab-border-selected: <<colour tab-border-selected>>\nsidebar-tab-border: <<colour tab-border>>\nsidebar-tab-divider: <<colour tab-divider>>\nsidebar-tab-foreground-selected: <<colour foreground>>\nsidebar-tab-foreground: <<colour tab-foreground>>\nsidebar-tiddler-link-foreground-hover: <<colour foreground>>\nsidebar-tiddler-link-foreground: <<colour primary>>\nsite-title-foreground: <<colour tiddler-title-foreground>>\nstatic-alert-foreground: #aaaaaa\ntab-background-selected: <<colour background>>\ntab-background: <<colour foreground>>\ntab-border-selected: <<colour foreground>>\ntab-border: <<colour foreground>>\ntab-divider: <<colour foreground>>\ntab-foreground-selected: <<colour foreground>>\ntab-foreground: <<colour background>>\ntable-border: #dddddd\ntable-footer-background: #a8a8a8\ntable-header-background: #f0f0f0\ntag-background: #000\ntag-foreground: #fff\ntiddler-background: <<colour background>>\ntiddler-border: <<colour foreground>>\ntiddler-controls-foreground-hover: #ddd\ntiddler-controls-foreground-selected: #fdd\ntiddler-controls-foreground: <<colour foreground>>\ntiddler-editor-background: <<colour background>>\ntiddler-editor-border-image: <<colour foreground>>\ntiddler-editor-border: #cccccc\ntiddler-editor-fields-even: <<colour background>>\ntiddler-editor-fields-odd: <<colour background>>\ntiddler-info-background: <<colour background>>\ntiddler-info-border: <<colour foreground>>\ntiddler-info-tab-background: <<colour background>>\ntiddler-link-background: <<colour background>>\ntiddler-link-foreground: <<colour primary>>\ntiddler-subtitle-foreground: <<colour foreground>>\ntiddler-title-foreground: <<colour foreground>>\ntoolbar-new-button: \ntoolbar-options-button: \ntoolbar-save-button: \ntoolbar-info-button: \ntoolbar-edit-button: \ntoolbar-close-button: \ntoolbar-delete-button: \ntoolbar-cancel-button: \ntoolbar-done-button: \nuntagged-background: <<colour foreground>>\nvery-muted-foreground: #888888\n" }, "$:/palettes/ContrastDark": { "title": "$:/palettes/ContrastDark", "name": "Contrast (Dark)", "description": "High contrast and unambiguous (dark version)", "tags": "$:/tags/Palette", "type": "application/x-tiddler-dictionary", "text": "alert-background: #f00\nalert-border: <<colour background>>\nalert-highlight: <<colour foreground>>\nalert-muted-foreground: #800\nbackground: #000\nblockquote-bar: <<colour muted-foreground>>\nbutton-background: <<colour background>>\nbutton-foreground: <<colour foreground>>\nbutton-border: <<colour foreground>>\ncode-background: <<colour background>>\ncode-border: <<colour foreground>>\ncode-foreground: <<colour foreground>>\ndirty-indicator: #f00\ndownload-background: #080\ndownload-foreground: <<colour background>>\ndragger-background: <<colour foreground>>\ndragger-foreground: <<colour background>>\ndropdown-background: <<colour background>>\ndropdown-border: <<colour muted-foreground>>\ndropdown-tab-background-selected: <<colour foreground>>\ndropdown-tab-background: <<colour foreground>>\ndropzone-background: rgba(0,200,0,0.7)\nexternal-link-background-hover: inherit\nexternal-link-background-visited: inherit\nexternal-link-background: inherit\nexternal-link-foreground-hover: inherit\nexternal-link-foreground-visited: #00a\nexternal-link-foreground: #00e\nforeground: #fff\nmessage-background: <<colour foreground>>\nmessage-border: <<colour background>>\nmessage-foreground: <<colour background>>\nmodal-backdrop: <<colour foreground>>\nmodal-background: <<colour background>>\nmodal-border: <<colour foreground>>\nmodal-footer-background: <<colour background>>\nmodal-footer-border: <<colour foreground>>\nmodal-header-border: <<colour foreground>>\nmuted-foreground: <<colour foreground>>\nnotification-background: <<colour background>>\nnotification-border: <<colour foreground>>\npage-background: <<colour background>>\npre-background: <<colour background>>\npre-border: <<colour foreground>>\nprimary: #00f\nsidebar-button-foreground: <<colour foreground>>\nsidebar-controls-foreground-hover: <<colour background>>\nsidebar-controls-foreground: <<colour foreground>>\nsidebar-foreground-shadow: rgba(0,0,0, 0)\nsidebar-foreground: <<colour foreground>>\nsidebar-muted-foreground-hover: #444444\nsidebar-muted-foreground: <<colour foreground>>\nsidebar-tab-background-selected: <<colour background>>\nsidebar-tab-background: <<colour tab-background>>\nsidebar-tab-border-selected: <<colour tab-border-selected>>\nsidebar-tab-border: <<colour tab-border>>\nsidebar-tab-divider: <<colour tab-divider>>\nsidebar-tab-foreground-selected: <<colour foreground>>\nsidebar-tab-foreground: <<colour tab-foreground>>\nsidebar-tiddler-link-foreground-hover: <<colour foreground>>\nsidebar-tiddler-link-foreground: <<colour primary>>\nsite-title-foreground: <<colour tiddler-title-foreground>>\nstatic-alert-foreground: #aaaaaa\ntab-background-selected: <<colour background>>\ntab-background: <<colour foreground>>\ntab-border-selected: <<colour foreground>>\ntab-border: <<colour foreground>>\ntab-divider: <<colour foreground>>\ntab-foreground-selected: <<colour foreground>>\ntab-foreground: <<colour background>>\ntable-border: #dddddd\ntable-footer-background: #a8a8a8\ntable-header-background: #f0f0f0\ntag-background: #fff\ntag-foreground: #000\ntiddler-background: <<colour background>>\ntiddler-border: <<colour foreground>>\ntiddler-controls-foreground-hover: #ddd\ntiddler-controls-foreground-selected: #fdd\ntiddler-controls-foreground: <<colour foreground>>\ntiddler-editor-background: <<colour background>>\ntiddler-editor-border-image: <<colour foreground>>\ntiddler-editor-border: #cccccc\ntiddler-editor-fields-even: <<colour background>>\ntiddler-editor-fields-odd: <<colour background>>\ntiddler-info-background: <<colour background>>\ntiddler-info-border: <<colour foreground>>\ntiddler-info-tab-background: <<colour background>>\ntiddler-link-background: <<colour background>>\ntiddler-link-foreground: <<colour primary>>\ntiddler-subtitle-foreground: <<colour foreground>>\ntiddler-title-foreground: <<colour foreground>>\ntoolbar-new-button: \ntoolbar-options-button: \ntoolbar-save-button: \ntoolbar-info-button: \ntoolbar-edit-button: \ntoolbar-close-button: \ntoolbar-delete-button: \ntoolbar-cancel-button: \ntoolbar-done-button: \nuntagged-background: <<colour foreground>>\nvery-muted-foreground: #888888\n" }, "$:/palettes/DarkPhotos": { "created": "20150402111612188", "description": "Good with dark photo backgrounds", "modified": "20150402112344080", "name": "DarkPhotos", "tags": "$:/tags/Palette", "title": "$:/palettes/DarkPhotos", "type": "application/x-tiddler-dictionary", "text": "alert-background: #ffe476\nalert-border: #b99e2f\nalert-highlight: #881122\nalert-muted-foreground: #b99e2f\nbackground: #ffffff\nblockquote-bar: <<colour muted-foreground>>\nbutton-background: \nbutton-foreground: \nbutton-border: \ncode-background: #f7f7f9\ncode-border: #e1e1e8\ncode-foreground: #dd1144\ndirty-indicator: #ff0000\ndownload-background: #34c734\ndownload-foreground: <<colour background>>\ndragger-background: <<colour foreground>>\ndragger-foreground: <<colour background>>\ndropdown-background: <<colour background>>\ndropdown-border: <<colour muted-foreground>>\ndropdown-tab-background-selected: #fff\ndropdown-tab-background: #ececec\ndropzone-background: rgba(0,200,0,0.7)\nexternal-link-background-hover: inherit\nexternal-link-background-visited: inherit\nexternal-link-background: inherit\nexternal-link-foreground-hover: inherit\nexternal-link-foreground-visited: #0000aa\nexternal-link-foreground: #0000ee\nforeground: #333333\nmessage-background: #ecf2ff\nmessage-border: #cfd6e6\nmessage-foreground: #547599\nmodal-backdrop: <<colour foreground>>\nmodal-background: <<colour background>>\nmodal-border: #999999\nmodal-footer-background: #f5f5f5\nmodal-footer-border: #dddddd\nmodal-header-border: #eeeeee\nmuted-foreground: #ddd\nnotification-background: #ffffdd\nnotification-border: #999999\npage-background: #336438\npre-background: #f5f5f5\npre-border: #cccccc\nprimary: #5778d8\nsidebar-button-foreground: <<colour foreground>>\nsidebar-controls-foreground-hover: #ccf\nsidebar-controls-foreground: #fff\nsidebar-foreground-shadow: rgba(0,0,0, 0.5)\nsidebar-foreground: #fff\nsidebar-muted-foreground-hover: #444444\nsidebar-muted-foreground: #eee\nsidebar-tab-background-selected: rgba(255,255,255, 0.8)\nsidebar-tab-background: rgba(255,255,255, 0.4)\nsidebar-tab-border-selected: <<colour tab-border-selected>>\nsidebar-tab-border: <<colour tab-border>>\nsidebar-tab-divider: rgba(255,255,255, 0.2)\nsidebar-tab-foreground-selected: \nsidebar-tab-foreground: <<colour tab-foreground>>\nsidebar-tiddler-link-foreground-hover: #aaf\nsidebar-tiddler-link-foreground: #ddf\nsite-title-foreground: #fff\nstatic-alert-foreground: #aaaaaa\ntab-background-selected: #ffffff\ntab-background: #d8d8d8\ntab-border-selected: #d8d8d8\ntab-border: #cccccc\ntab-divider: #d8d8d8\ntab-foreground-selected: <<colour tab-foreground>>\ntab-foreground: #666666\ntable-border: #dddddd\ntable-footer-background: #a8a8a8\ntable-header-background: #f0f0f0\ntag-background: #ec6\ntag-foreground: #ffffff\ntiddler-background: <<colour background>>\ntiddler-border: <<colour background>>\ntiddler-controls-foreground-hover: #888888\ntiddler-controls-foreground-selected: #444444\ntiddler-controls-foreground: #cccccc\ntiddler-editor-background: #f8f8f8\ntiddler-editor-border-image: #ffffff\ntiddler-editor-border: #cccccc\ntiddler-editor-fields-even: #e0e8e0\ntiddler-editor-fields-odd: #f0f4f0\ntiddler-info-background: #f8f8f8\ntiddler-info-border: #dddddd\ntiddler-info-tab-background: #f8f8f8\ntiddler-link-background: <<colour background>>\ntiddler-link-foreground: <<colour primary>>\ntiddler-subtitle-foreground: #c0c0c0\ntiddler-title-foreground: #182955\ntoolbar-new-button: \ntoolbar-options-button: \ntoolbar-save-button: \ntoolbar-info-button: \ntoolbar-edit-button: \ntoolbar-close-button: \ntoolbar-delete-button: \ntoolbar-cancel-button: \ntoolbar-done-button: \nuntagged-background: #999999\nvery-muted-foreground: #888888\n" }, "$:/palettes/Rocker": { "title": "$:/palettes/Rocker", "name": "Rocker", "description": "A dark theme", "tags": "$:/tags/Palette", "type": "application/x-tiddler-dictionary", "text": "alert-background: #ffe476\nalert-border: #b99e2f\nalert-highlight: #881122\nalert-muted-foreground: #b99e2f\nbackground: #ffffff\nblockquote-bar: <<colour muted-foreground>>\nbutton-background:\nbutton-foreground:\nbutton-border:\ncode-background: #f7f7f9\ncode-border: #e1e1e8\ncode-foreground: #dd1144\ndirty-indicator: #ff0000\ndownload-background: #34c734\ndownload-foreground: <<colour background>>\ndragger-background: <<colour foreground>>\ndragger-foreground: <<colour background>>\ndropdown-background: <<colour background>>\ndropdown-border: <<colour muted-foreground>>\ndropdown-tab-background-selected: #fff\ndropdown-tab-background: #ececec\ndropzone-background: rgba(0,200,0,0.7)\nexternal-link-background-hover: inherit\nexternal-link-background-visited: inherit\nexternal-link-background: inherit\nexternal-link-foreground-hover: inherit\nexternal-link-foreground-visited: #0000aa\nexternal-link-foreground: #0000ee\nforeground: #333333\nmessage-background: #ecf2ff\nmessage-border: #cfd6e6\nmessage-foreground: #547599\nmodal-backdrop: <<colour foreground>>\nmodal-background: <<colour background>>\nmodal-border: #999999\nmodal-footer-background: #f5f5f5\nmodal-footer-border: #dddddd\nmodal-header-border: #eeeeee\nmuted-foreground: #999999\nnotification-background: #ffffdd\nnotification-border: #999999\npage-background: #000\npre-background: #f5f5f5\npre-border: #cccccc\nprimary: #cc0000\nsidebar-button-foreground: <<colour foreground>>\nsidebar-controls-foreground-hover: #000000\nsidebar-controls-foreground: #ffffff\nsidebar-foreground-shadow: rgba(255,255,255, 0.0)\nsidebar-foreground: #acacac\nsidebar-muted-foreground-hover: #444444\nsidebar-muted-foreground: #c0c0c0\nsidebar-tab-background-selected: #000\nsidebar-tab-background: <<colour tab-background>>\nsidebar-tab-border-selected: <<colour tab-border-selected>>\nsidebar-tab-border: <<colour tab-border>>\nsidebar-tab-divider: <<colour tab-divider>>\nsidebar-tab-foreground-selected: \nsidebar-tab-foreground: <<colour tab-foreground>>\nsidebar-tiddler-link-foreground-hover: #ffbb99\nsidebar-tiddler-link-foreground: #cc0000\nsite-title-foreground: <<colour tiddler-title-foreground>>\nstatic-alert-foreground: #aaaaaa\ntab-background-selected: #ffffff\ntab-background: #d8d8d8\ntab-border-selected: #d8d8d8\ntab-border: #cccccc\ntab-divider: #d8d8d8\ntab-foreground-selected: <<colour tab-foreground>>\ntab-foreground: #666666\ntable-border: #dddddd\ntable-footer-background: #a8a8a8\ntable-header-background: #f0f0f0\ntag-background: #ffbb99\ntag-foreground: #000\ntiddler-background: <<colour background>>\ntiddler-border: <<colour background>>\ntiddler-controls-foreground-hover: #888888\ntiddler-controls-foreground-selected: #444444\ntiddler-controls-foreground: #cccccc\ntiddler-editor-background: #f8f8f8\ntiddler-editor-border-image: #ffffff\ntiddler-editor-border: #cccccc\ntiddler-editor-fields-even: #e0e8e0\ntiddler-editor-fields-odd: #f0f4f0\ntiddler-info-background: #f8f8f8\ntiddler-info-border: #dddddd\ntiddler-info-tab-background: #f8f8f8\ntiddler-link-background: <<colour background>>\ntiddler-link-foreground: <<colour primary>>\ntiddler-subtitle-foreground: #c0c0c0\ntiddler-title-foreground: #cc0000\ntoolbar-new-button:\ntoolbar-options-button:\ntoolbar-save-button:\ntoolbar-info-button:\ntoolbar-edit-button:\ntoolbar-close-button:\ntoolbar-delete-button:\ntoolbar-cancel-button:\ntoolbar-done-button:\nuntagged-background: #999999\nvery-muted-foreground: #888888\n" }, "$:/palettes/SolarFlare": { "title": "$:/palettes/SolarFlare", "name": "Solar Flare", "description": "Warm, relaxing earth colours", "tags": "$:/tags/Palette", "type": "application/x-tiddler-dictionary", "text": ": Background Tones\n\nbase03: #002b36\nbase02: #073642\n\n: Content Tones\n\nbase01: #586e75\nbase00: #657b83\nbase0: #839496\nbase1: #93a1a1\n\n: Background Tones\n\nbase2: #eee8d5\nbase3: #fdf6e3\n\n: Accent Colors\n\nyellow: #b58900\norange: #cb4b16\nred: #dc322f\nmagenta: #d33682\nviolet: #6c71c4\nblue: #268bd2\ncyan: #2aa198\ngreen: #859900\n\n: Additional Tones (RA)\n\nbase10: #c0c4bb\nviolet-muted: #7c81b0\nblue-muted: #4e7baa\n\nyellow-hot: #ffcc44\norange-hot: #eb6d20\nred-hot: #ff2222\nblue-hot: #2298ee\ngreen-hot: #98ee22\n\n: Palette\n\n: Do not use colour macro for background and foreground\nbackground: #fdf6e3\n download-foreground: <<colour background>>\n dragger-foreground: <<colour background>>\n dropdown-background: <<colour background>>\n modal-background: <<colour background>>\n sidebar-foreground-shadow: <<colour background>>\n tiddler-background: <<colour background>>\n tiddler-border: <<colour background>>\n tiddler-link-background: <<colour background>>\n tab-background-selected: <<colour background>>\n dropdown-tab-background-selected: <<colour tab-background-selected>>\nforeground: #657b83\n dragger-background: <<colour foreground>>\n tab-foreground: <<colour foreground>>\n tab-foreground-selected: <<colour tab-foreground>>\n sidebar-tab-foreground-selected: <<colour tab-foreground-selected>>\n sidebar-tab-foreground: <<colour tab-foreground>>\n sidebar-button-foreground: <<colour foreground>>\n sidebar-controls-foreground: <<colour foreground>>\n sidebar-foreground: <<colour foreground>>\n: base03\n: base02\n: base01\n alert-muted-foreground: <<colour base01>>\n: base00\n code-foreground: <<colour base00>>\n message-foreground: <<colour base00>>\n tag-foreground: <<colour base00>>\n: base0\n sidebar-tiddler-link-foreground: <<colour base0>>\n: base1\n muted-foreground: <<colour base1>>\n blockquote-bar: <<colour muted-foreground>>\n dropdown-border: <<colour muted-foreground>>\n sidebar-muted-foreground: <<colour muted-foreground>>\n tiddler-title-foreground: <<colour muted-foreground>>\n site-title-foreground: <<colour tiddler-title-foreground>>\n: base2\n modal-footer-background: <<colour base2>>\n page-background: <<colour base2>>\n modal-backdrop: <<colour page-background>>\n notification-background: <<colour page-background>>\n code-background: <<colour page-background>>\n code-border: <<colour code-background>>\n pre-background: <<colour page-background>>\n pre-border: <<colour pre-background>>\n sidebar-tab-background-selected: <<colour page-background>>\n table-header-background: <<colour base2>>\n tag-background: <<colour base2>>\n tiddler-editor-background: <<colour base2>>\n tiddler-info-background: <<colour base2>>\n tiddler-info-tab-background: <<colour base2>>\n tab-background: <<colour base2>>\n dropdown-tab-background: <<colour tab-background>>\n: base3\n alert-background: <<colour base3>>\n message-background: <<colour base3>>\n: yellow\n: orange\n: red\n: magenta\n alert-highlight: <<colour magenta>>\n: violet\n external-link-foreground: <<colour violet>>\n: blue\n: cyan\n: green\n: base10\n tiddler-controls-foreground: <<colour base10>>\n: violet-muted\n external-link-foreground-visited: <<colour violet-muted>>\n: blue-muted\n primary: <<colour blue-muted>>\n download-background: <<colour primary>>\n tiddler-link-foreground: <<colour primary>>\n\nalert-border: #b99e2f\ndirty-indicator: #ff0000\ndropzone-background: rgba(0,200,0,0.7)\nexternal-link-background-hover: inherit\nexternal-link-background-visited: inherit\nexternal-link-background: inherit\nexternal-link-foreground-hover: inherit\nmessage-border: #cfd6e6\nmodal-border: #999999\nsidebar-controls-foreground-hover:\nsidebar-muted-foreground-hover:\nsidebar-tab-background: #ded8c5\nsidebar-tiddler-link-foreground-hover:\nstatic-alert-foreground: #aaaaaa\ntab-border: #cccccc\n modal-footer-border: <<colour tab-border>>\n modal-header-border: <<colour tab-border>>\n notification-border: <<colour tab-border>>\n sidebar-tab-border: <<colour tab-border>>\n tab-border-selected: <<colour tab-border>>\n sidebar-tab-border-selected: <<colour tab-border-selected>>\ntab-divider: #d8d8d8\n sidebar-tab-divider: <<colour tab-divider>>\ntable-border: #dddddd\ntable-footer-background: #a8a8a8\ntiddler-controls-foreground-hover: #888888\ntiddler-controls-foreground-selected: #444444\ntiddler-editor-border-image: #ffffff\ntiddler-editor-border: #cccccc\ntiddler-editor-fields-even: #e0e8e0\ntiddler-editor-fields-odd: #f0f4f0\ntiddler-info-border: #dddddd\ntiddler-subtitle-foreground: #c0c0c0\ntoolbar-new-button:\ntoolbar-options-button:\ntoolbar-save-button:\ntoolbar-info-button:\ntoolbar-edit-button:\ntoolbar-close-button:\ntoolbar-delete-button:\ntoolbar-cancel-button:\ntoolbar-done-button:\nuntagged-background: #999999\nvery-muted-foreground: #888888\n" }, "$:/palettes/Vanilla": { "title": "$:/palettes/Vanilla", "name": "Vanilla", "description": "Pale and unobtrusive", "tags": "$:/tags/Palette", "type": "application/x-tiddler-dictionary", "text": "alert-background: #ffe476\nalert-border: #b99e2f\nalert-highlight: #881122\nalert-muted-foreground: #b99e2f\nbackground: #ffffff\nblockquote-bar: <<colour muted-foreground>>\nbutton-background:\nbutton-foreground:\nbutton-border:\ncode-background: #f7f7f9\ncode-border: #e1e1e8\ncode-foreground: #dd1144\ndirty-indicator: #ff0000\ndownload-background: #34c734\ndownload-foreground: <<colour background>>\ndragger-background: <<colour foreground>>\ndragger-foreground: <<colour background>>\ndropdown-background: <<colour background>>\ndropdown-border: <<colour muted-foreground>>\ndropdown-tab-background-selected: #fff\ndropdown-tab-background: #ececec\ndropzone-background: rgba(0,200,0,0.7)\nexternal-link-background-hover: inherit\nexternal-link-background-visited: inherit\nexternal-link-background: inherit\nexternal-link-foreground-hover: inherit\nexternal-link-foreground-visited: #0000aa\nexternal-link-foreground: #0000ee\nforeground: #333333\nmessage-background: #ecf2ff\nmessage-border: #cfd6e6\nmessage-foreground: #547599\nmodal-backdrop: <<colour foreground>>\nmodal-background: <<colour background>>\nmodal-border: #999999\nmodal-footer-background: #f5f5f5\nmodal-footer-border: #dddddd\nmodal-header-border: #eeeeee\nmuted-foreground: #bbb\nnotification-background: #ffffdd\nnotification-border: #999999\npage-background: #f4f4f4\npre-background: #f5f5f5\npre-border: #cccccc\nprimary: #5778d8\nsidebar-button-foreground: <<colour foreground>>\nsidebar-controls-foreground-hover: #000000\nsidebar-controls-foreground: #aaaaaa\nsidebar-foreground-shadow: rgba(255,255,255, 0.8)\nsidebar-foreground: #acacac\nsidebar-muted-foreground-hover: #444444\nsidebar-muted-foreground: #c0c0c0\nsidebar-tab-background-selected: #f4f4f4\nsidebar-tab-background: #e0e0e0\nsidebar-tab-border-selected: <<colour tab-border-selected>>\nsidebar-tab-border: <<colour tab-border>>\nsidebar-tab-divider: #e4e4e4\nsidebar-tab-foreground-selected:\nsidebar-tab-foreground: <<colour tab-foreground>>\nsidebar-tiddler-link-foreground-hover: #444444\nsidebar-tiddler-link-foreground: #999999\nsite-title-foreground: <<colour tiddler-title-foreground>>\nstatic-alert-foreground: #aaaaaa\ntab-background-selected: #ffffff\ntab-background: #d8d8d8\ntab-border-selected: #d8d8d8\ntab-border: #cccccc\ntab-divider: #d8d8d8\ntab-foreground-selected: <<colour tab-foreground>>\ntab-foreground: #666666\ntable-border: #dddddd\ntable-footer-background: #a8a8a8\ntable-header-background: #f0f0f0\ntag-background: #ec6\ntag-foreground: #ffffff\ntiddler-background: <<colour background>>\ntiddler-border: <<colour background>>\ntiddler-controls-foreground-hover: #888888\ntiddler-controls-foreground-selected: #444444\ntiddler-controls-foreground: #cccccc\ntiddler-editor-background: #f8f8f8\ntiddler-editor-border-image: #ffffff\ntiddler-editor-border: #cccccc\ntiddler-editor-fields-even: #e0e8e0\ntiddler-editor-fields-odd: #f0f4f0\ntiddler-info-background: #f8f8f8\ntiddler-info-border: #dddddd\ntiddler-info-tab-background: #f8f8f8\ntiddler-link-background: <<colour background>>\ntiddler-link-foreground: <<colour primary>>\ntiddler-subtitle-foreground: #c0c0c0\ntiddler-title-foreground: #182955\ntoolbar-new-button:\ntoolbar-options-button:\ntoolbar-save-button:\ntoolbar-info-button:\ntoolbar-edit-button:\ntoolbar-close-button:\ntoolbar-delete-button:\ntoolbar-cancel-button:\ntoolbar-done-button:\nuntagged-background: #999999\nvery-muted-foreground: #888888\n" }, "$:/core/readme": { "title": "$:/core/readme", "text": "This plugin contains TiddlyWiki's core components, comprising:\n\n* JavaScript code modules\n* Icons\n* Templates needed to create TiddlyWiki's user interface\n* British English (''en-GB'') translations of the localisable strings used by the core\n" }, "$:/core/templates/MOTW.html": { "title": "$:/core/templates/MOTW.html", "text": "\\rules only filteredtranscludeinline transcludeinline entity\n<!-- The following comment is called a MOTW comment and is necessary for the TiddlyIE Internet Explorer extension -->\n<!-- saved from url=(0021)http://tiddlywiki.com --> " }, "$:/core/templates/alltiddlers.template.html": { "title": "$:/core/templates/alltiddlers.template.html", "type": "text/vnd.tiddlywiki-html", "text": "<!-- This template is provided for backwards compatibility with older versions of TiddlyWiki -->\n\n<$set name=\"exportFilter\" value=\"[!is[system]sort[title]]\">\n\n{{$:/core/templates/exporters/StaticRiver}}\n\n</$set>\n" }, "$:/core/templates/canonical-uri-external-image": { "title": "$:/core/templates/canonical-uri-external-image", "text": "<!--\n\nThis template is used to assign the ''_canonical_uri'' field to external images.\n\nChange the `./images/` part to a different base URI. The URI can be relative or absolute.\n\n-->\n./images/<$view field=\"title\" format=\"doubleurlencoded\"/>" }, "$:/core/templates/canonical-uri-external-text": { "title": "$:/core/templates/canonical-uri-external-text", "text": "<!--\n\nThis template is used to assign the ''_canonical_uri'' field to external text files.\n\nChange the `./text/` part to a different base URI. The URI can be relative or absolute.\n\n-->\n./text/<$view field=\"title\" format=\"doubleurlencoded\"/>.tid" }, "$:/core/templates/css-tiddler": { "title": "$:/core/templates/css-tiddler", "text": "<!--\n\nThis template is used for saving CSS tiddlers as a style tag with data attributes representing the tiddler fields.\n\n-->`<style`<$fields template=' data-tiddler-$name$=\"$encoded_value$\"'></$fields>` type=\"text/css\">`<$view field=\"text\" format=\"text\" />`</style>`" }, "$:/core/templates/exporters/CsvFile": { "title": "$:/core/templates/exporters/CsvFile", "tags": "$:/tags/Exporter", "description": "{{$:/language/Exporters/CsvFile}}", "extension": ".csv", "text": "\\define renderContent()\n<$text text=<<csvtiddlers filter:\"\"\"$(exportFilter)$\"\"\" format:\"quoted-comma-sep\">>/>\n\\end\n<<renderContent>>\n" }, "$:/core/templates/exporters/JsonFile": { "title": "$:/core/templates/exporters/JsonFile", "tags": "$:/tags/Exporter", "description": "{{$:/language/Exporters/JsonFile}}", "extension": ".json", "text": "\\define renderContent()\n<$text text=<<jsontiddlers filter:\"\"\"$(exportFilter)$\"\"\">>/>\n\\end\n<<renderContent>>\n" }, "$:/core/templates/exporters/StaticRiver": { "title": "$:/core/templates/exporters/StaticRiver", "tags": "$:/tags/Exporter", "description": "{{$:/language/Exporters/StaticRiver}}", "extension": ".html", "text": "\\define tv-wikilink-template() #$uri_encoded$\n\\define tv-config-toolbar-icons() no\n\\define tv-config-toolbar-text() no\n\\define tv-config-toolbar-class() tc-btn-invisible\n\\rules only filteredtranscludeinline transcludeinline\n<!doctype html>\n<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html;charset=utf-8\" />\n<meta name=\"generator\" content=\"TiddlyWiki\" />\n<meta name=\"tiddlywiki-version\" content=\"{{$:/core/templates/version}}\" />\n<meta name=\"format-detection\" content=\"telephone=no\">\n<link id=\"faviconLink\" rel=\"shortcut icon\" href=\"favicon.ico\">\n<title>{{$:/core/wiki/title}}</title>\n<div id=\"styleArea\">\n{{$:/boot/boot.css||$:/core/templates/css-tiddler}}\n</div>\n<style type=\"text/css\">\n{{$:/core/ui/PageStylesheet||$:/core/templates/wikified-tiddler}}\n</style>\n</head>\n<body class=\"tc-body\">\n{{$:/StaticBanner||$:/core/templates/html-tiddler}}\n<section class=\"tc-story-river\">\n{{$:/core/templates/exporters/StaticRiver/Content||$:/core/templates/html-tiddler}}\n</section>\n</body>\n</html>\n" }, "$:/core/templates/exporters/StaticRiver/Content": { "title": "$:/core/templates/exporters/StaticRiver/Content", "text": "\\define renderContent()\n{{{ $(exportFilter)$ ||$:/core/templates/static-tiddler}}}\n\\end\n<$importvariables filter=\"[[$:/core/ui/PageMacros]] [all[shadows+tiddlers]tag[$:/tags/Macro]!has[draft.of]]\">\n<<renderContent>>\n</$importvariables>\n" }, "$:/core/templates/exporters/TidFile": { "title": "$:/core/templates/exporters/TidFile", "tags": "$:/tags/Exporter", "description": "{{$:/language/Exporters/TidFile}}", "extension": ".tid", "text": "\\define renderContent()\n{{{ $(exportFilter)$ +[limit[1]] ||$:/core/templates/tid-tiddler}}}\n\\end\n<$importvariables filter=\"[[$:/core/ui/PageMacros]] [all[shadows+tiddlers]tag[$:/tags/Macro]!has[draft.of]]\"><<renderContent>></$importvariables>" }, "$:/core/templates/html-div-tiddler": { "title": "$:/core/templates/html-div-tiddler", "text": "<!--\n\nThis template is used for saving tiddlers as an HTML DIV tag with attributes representing the tiddler fields.\n\n-->`<div`<$fields template=' $name$=\"$encoded_value$\"'></$fields>`>\n<pre>`<$view field=\"text\" format=\"htmlencoded\" />`</pre>\n</div>`\n" }, "$:/core/templates/html-tiddler": { "title": "$:/core/templates/html-tiddler", "text": "<!--\n\nThis template is used for saving tiddlers as raw HTML\n\n--><$view field=\"text\" format=\"htmlwikified\" />" }, "$:/core/templates/javascript-tiddler": { "title": "$:/core/templates/javascript-tiddler", "text": "<!--\n\nThis template is used for saving JavaScript tiddlers as a script tag with data attributes representing the tiddler fields.\n\n-->`<script`<$fields template=' data-tiddler-$name$=\"$encoded_value$\"'></$fields>` type=\"text/javascript\">`<$view field=\"text\" format=\"text\" />`</script>`" }, "$:/core/templates/module-tiddler": { "title": "$:/core/templates/module-tiddler", "text": "<!--\n\nThis template is used for saving JavaScript tiddlers as a script tag with data attributes representing the tiddler fields. The body of the tiddler is wrapped in a call to the `$tw.modules.define` function in order to define the body of the tiddler as a module\n\n-->`<script`<$fields template=' data-tiddler-$name$=\"$encoded_value$\"'></$fields>` type=\"text/javascript\" data-module=\"yes\">$tw.modules.define(\"`<$view field=\"title\" format=\"jsencoded\" />`\",\"`<$view field=\"module-type\" format=\"jsencoded\" />`\",function(module,exports,require) {`<$view field=\"text\" format=\"text\" />`});\n</script>`" }, "$:/core/templates/plain-text-tiddler": { "title": "$:/core/templates/plain-text-tiddler", "text": "<$view field=\"text\" format=\"text\" />" }, "$:/core/templates/raw-static-tiddler": { "title": "$:/core/templates/raw-static-tiddler", "text": "<!--\n\nThis template is used for saving tiddlers as static HTML\n\n--><$view field=\"text\" format=\"plainwikified\" />" }, "$:/core/save/all": { "title": "$:/core/save/all", "text": "\\define saveTiddlerFilter()\n[is[tiddler]] -[prefix[$:/state/popup/]] -[[$:/HistoryList]] -[[$:/boot/boot.css]] -[type[application/javascript]library[yes]] -[[$:/boot/boot.js]] -[[$:/boot/bootprefix.js]] +[sort[title]] $(publishFilter)$\n\\end\n{{$:/core/templates/tiddlywiki5.html}}\n" }, "$:/core/save/empty": { "title": "$:/core/save/empty", "text": "\\define saveTiddlerFilter()\n[is[system]] -[prefix[$:/state/popup/]] -[[$:/boot/boot.css]] -[type[application/javascript]library[yes]] -[[$:/boot/boot.js]] -[[$:/boot/bootprefix.js]] +[sort[title]]\n\\end\n{{$:/core/templates/tiddlywiki5.html}}\n" }, "$:/core/save/lazy-all": { "title": "$:/core/save/lazy-all", "text": "\\define saveTiddlerFilter()\n[is[system]] -[prefix[$:/state/popup/]] -[[$:/HistoryList]] -[[$:/boot/boot.css]] -[type[application/javascript]library[yes]] -[[$:/boot/boot.js]] -[[$:/boot/bootprefix.js]] +[sort[title]] \n\\end\n{{$:/core/templates/tiddlywiki5.html}}\n" }, "$:/core/save/lazy-images": { "title": "$:/core/save/lazy-images", "text": "\\define saveTiddlerFilter()\n[is[tiddler]] -[prefix[$:/state/popup/]] -[[$:/HistoryList]] -[[$:/boot/boot.css]] -[type[application/javascript]library[yes]] -[[$:/boot/boot.js]] -[[$:/boot/bootprefix.js]] -[!is[system]is[image]] +[sort[title]] \n\\end\n{{$:/core/templates/tiddlywiki5.html}}\n" }, "$:/core/templates/single.tiddler.window": { "title": "$:/core/templates/single.tiddler.window", "text": "<$set name=\"themeTitle\" value={{$:/view}}>\n\n<$set name=\"tempCurrentTiddler\" value=<<currentTiddler>>>\n\n<$set name=\"currentTiddler\" value={{$:/language}}>\n\n<$set name=\"languageTitle\" value={{!!name}}>\n\n<$set name=\"currentTiddler\" value=<<tempCurrentTiddler>>>\n\n<$importvariables filter=\"[[$:/core/ui/PageMacros]] [all[shadows+tiddlers]tag[$:/tags/Macro]!has[draft.of]]\">\n\n<$navigator story=\"$:/StoryList\" history=\"$:/HistoryList\">\n\n<$transclude mode=\"block\"/>\n\n</$navigator>\n\n</$importvariables>\n\n</$set>\n\n</$set>\n\n</$set>\n\n</$set>\n\n</$set>\n\n" }, "$:/core/templates/split-recipe": { "title": "$:/core/templates/split-recipe", "text": "<$list filter=\"[!is[system]]\">\ntiddler: <$view field=\"title\" format=\"urlencoded\"/>.tid\n</$list>\n" }, "$:/core/templates/static-tiddler": { "title": "$:/core/templates/static-tiddler", "text": "<a name=<<currentTiddler>>>\n<$transclude tiddler=\"$:/core/ui/ViewTemplate\"/>\n</a>" }, "$:/core/templates/static.area": { "title": "$:/core/templates/static.area", "text": "<$reveal type=\"nomatch\" state=\"$:/isEncrypted\" text=\"yes\">\n{{{ [all[shadows+tiddlers]tag[$:/tags/RawStaticContent]!has[draft.of]] ||$:/core/templates/raw-static-tiddler}}}\n{{$:/core/templates/static.content||$:/core/templates/html-tiddler}}\n</$reveal>\n<$reveal type=\"match\" state=\"$:/isEncrypted\" text=\"yes\">\nThis file contains an encrypted ~TiddlyWiki. Enable ~JavaScript and enter the decryption password when prompted.\n</$reveal>\n" }, "$:/core/templates/static.content": { "title": "$:/core/templates/static.content", "type": "text/vnd.tiddlywiki", "text": "<!-- For Google, and people without JavaScript-->\nThis [[TiddlyWiki|http://tiddlywiki.com]] contains the following tiddlers:\n\n<ul>\n<$list filter=<<saveTiddlerFilter>>>\n<li><$view field=\"title\" format=\"text\"></$view></li>\n</$list>\n</ul>\n" }, "$:/core/templates/static.template.css": { "title": "$:/core/templates/static.template.css", "text": "{{$:/boot/boot.css||$:/core/templates/plain-text-tiddler}}\n\n{{$:/core/ui/PageStylesheet||$:/core/templates/wikified-tiddler}}\n" }, "$:/core/templates/static.template.html": { "title": "$:/core/templates/static.template.html", "type": "text/vnd.tiddlywiki-html", "text": "\\define tv-wikilink-template() static/$uri_doubleencoded$.html\n\\define tv-config-toolbar-icons() no\n\\define tv-config-toolbar-text() no\n\\define tv-config-toolbar-class() tc-btn-invisible\n\\rules only filteredtranscludeinline transcludeinline\n<!doctype html>\n<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html;charset=utf-8\" />\n<meta name=\"generator\" content=\"TiddlyWiki\" />\n<meta name=\"tiddlywiki-version\" content=\"{{$:/core/templates/version}}\" />\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\" />\n<meta name=\"apple-mobile-web-app-capable\" content=\"yes\" />\n<meta name=\"apple-mobile-web-app-status-bar-style\" content=\"black-translucent\" />\n<meta name=\"mobile-web-app-capable\" content=\"yes\"/>\n<meta name=\"format-detection\" content=\"telephone=no\">\n<link id=\"faviconLink\" rel=\"shortcut icon\" href=\"favicon.ico\">\n<title>{{$:/core/wiki/title}}</title>\n<div id=\"styleArea\">\n{{$:/boot/boot.css||$:/core/templates/css-tiddler}}\n</div>\n<style type=\"text/css\">\n{{$:/core/ui/PageStylesheet||$:/core/templates/wikified-tiddler}}\n</style>\n</head>\n<body class=\"tc-body\">\n{{$:/StaticBanner||$:/core/templates/html-tiddler}}\n{{$:/core/ui/PageTemplate||$:/core/templates/html-tiddler}}\n</body>\n</html>\n" }, "$:/core/templates/static.tiddler.html": { "title": "$:/core/templates/static.tiddler.html", "text": "\\define tv-wikilink-template() $uri_doubleencoded$.html\n\\define tv-config-toolbar-icons() no\n\\define tv-config-toolbar-text() no\n\\define tv-config-toolbar-class() tc-btn-invisible\n`<!doctype html>\n<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html;charset=utf-8\" />\n<meta name=\"generator\" content=\"TiddlyWiki\" />\n<meta name=\"tiddlywiki-version\" content=\"`{{$:/core/templates/version}}`\" />\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\" />\n<meta name=\"apple-mobile-web-app-capable\" content=\"yes\" />\n<meta name=\"apple-mobile-web-app-status-bar-style\" content=\"black-translucent\" />\n<meta name=\"mobile-web-app-capable\" content=\"yes\"/>\n<meta name=\"format-detection\" content=\"telephone=no\">\n<link id=\"faviconLink\" rel=\"shortcut icon\" href=\"favicon.ico\">\n<link rel=\"stylesheet\" href=\"static.css\">\n<title>`<$view field=\"caption\"><$view field=\"title\"/></$view>: {{$:/core/wiki/title}}`</title>\n</head>\n<body class=\"tc-body\">\n`{{$:/StaticBanner||$:/core/templates/html-tiddler}}`\n<section class=\"tc-story-river\">\n`<$importvariables filter=\"[[$:/core/ui/PageMacros]] [all[shadows+tiddlers]tag[$:/tags/Macro]!has[draft.of]]\">\n<$view tiddler=\"$:/core/ui/ViewTemplate\" format=\"htmlwikified\"/>\n</$importvariables>`\n</section>\n</body>\n</html>\n`" }, "$:/core/templates/store.area.template.html": { "title": "$:/core/templates/store.area.template.html", "text": "<$reveal type=\"nomatch\" state=\"$:/isEncrypted\" text=\"yes\">\n`<div id=\"storeArea\" style=\"display:none;\">`\n<$list filter=<<saveTiddlerFilter>> template=\"$:/core/templates/html-div-tiddler\"/>\n`</div>`\n</$reveal>\n<$reveal type=\"match\" state=\"$:/isEncrypted\" text=\"yes\">\n`<!--~~ Encrypted tiddlers ~~-->`\n`<pre id=\"encryptedStoreArea\" type=\"text/plain\" style=\"display:none;\">`\n<$encrypt filter=<<saveTiddlerFilter>>/>\n`</pre>`\n</$reveal>" }, "$:/core/templates/tid-tiddler": { "title": "$:/core/templates/tid-tiddler", "text": "<!--\n\nThis template is used for saving tiddlers in TiddlyWeb *.tid format\n\n--><$fields exclude='text bag' template='$name$: $value$\n'></$fields>`\n`<$view field=\"text\" format=\"text\" />" }, "$:/core/templates/tiddler-metadata": { "title": "$:/core/templates/tiddler-metadata", "text": "<!--\n\nThis template is used for saving tiddler metadata *.meta files\n\n--><$fields exclude='text bag' template='$name$: $value$\n'></$fields>" }, "$:/core/templates/tiddlywiki5.html": { "title": "$:/core/templates/tiddlywiki5.html", "text": "\\rules only filteredtranscludeinline transcludeinline\n<!doctype html>\n{{$:/core/templates/MOTW.html}}<html>\n<head>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=edge\" />\t\t<!-- Force IE standards mode for Intranet and HTA - should be the first meta -->\n<meta http-equiv=\"Content-Type\" content=\"text/html;charset=utf-8\" />\n<meta name=\"application-name\" content=\"TiddlyWiki\" />\n<meta name=\"generator\" content=\"TiddlyWiki\" />\n<meta name=\"tiddlywiki-version\" content=\"{{$:/core/templates/version}}\" />\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\" />\n<meta name=\"apple-mobile-web-app-capable\" content=\"yes\" />\n<meta name=\"apple-mobile-web-app-status-bar-style\" content=\"black-translucent\" />\n<meta name=\"mobile-web-app-capable\" content=\"yes\"/>\n<meta name=\"format-detection\" content=\"telephone=no\" />\n<meta name=\"copyright\" content=\"{{$:/core/copyright.txt}}\" />\n<link id=\"faviconLink\" rel=\"shortcut icon\" href=\"favicon.ico\">\n<title>{{$:/core/wiki/title}}</title>\n<!--~~ This is a Tiddlywiki file. The points of interest in the file are marked with this pattern ~~-->\n\n<!--~~ Raw markup ~~-->\n{{{ [all[shadows+tiddlers]tag[$:/core/wiki/rawmarkup]] [all[shadows+tiddlers]tag[$:/tags/RawMarkup]] ||$:/core/templates/plain-text-tiddler}}}\n</head>\n<body class=\"tc-body\">\n<!--~~ Static styles ~~-->\n<div id=\"styleArea\">\n{{$:/boot/boot.css||$:/core/templates/css-tiddler}}\n</div>\n<!--~~ Static content for Google and browsers without JavaScript ~~-->\n<noscript>\n<div id=\"splashArea\">\n{{$:/core/templates/static.area}}\n</div>\n</noscript>\n<!--~~ Ordinary tiddlers ~~-->\n{{$:/core/templates/store.area.template.html}}\n<!--~~ Library modules ~~-->\n<div id=\"libraryModules\" style=\"display:none;\">\n{{{ [is[system]type[application/javascript]library[yes]] ||$:/core/templates/javascript-tiddler}}}\n</div>\n<!--~~ Boot kernel prologue ~~-->\n<div id=\"bootKernelPrefix\" style=\"display:none;\">\n{{ $:/boot/bootprefix.js ||$:/core/templates/javascript-tiddler}}\n</div>\n<!--~~ Boot kernel ~~-->\n<div id=\"bootKernel\" style=\"display:none;\">\n{{ $:/boot/boot.js ||$:/core/templates/javascript-tiddler}}\n</div>\n</body>\n</html>\n" }, "$:/core/templates/version": { "title": "$:/core/templates/version", "text": "<<version>>" }, "$:/core/templates/wikified-tiddler": { "title": "$:/core/templates/wikified-tiddler", "text": "<$transclude />" }, "$:/core/ui/AboveStory/tw2-plugin-check": { "title": "$:/core/ui/AboveStory/tw2-plugin-check", "tags": "$:/tags/AboveStory", "text": "\\define lingo-base() $:/language/AboveStory/ClassicPlugin/\n<$list filter=\"[all[system+tiddlers]tag[systemConfig]limit[1]]\">\n\n<div class=\"tc-message-box\">\n\n<<lingo Warning>>\n\n<ul>\n\n<$list filter=\"[all[system+tiddlers]tag[systemConfig]limit[1]]\">\n\n<li>\n\n<$link><$view field=\"title\"/></$link>\n\n</li>\n\n</$list>\n\n</ul>\n\n</div>\n\n</$list>\n" }, "$:/core/ui/AdvancedSearch/Filter": { "title": "$:/core/ui/AdvancedSearch/Filter", "tags": "$:/tags/AdvancedSearch", "caption": "{{$:/language/Search/Filter/Caption}}", "text": "\\define lingo-base() $:/language/Search/\n<<lingo Filter/Hint>>\n\n<div class=\"tc-search tc-advanced-search\">\n<$edit-text tiddler=\"$:/temp/advancedsearch\" type=\"search\" tag=\"input\"/>\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/AdvancedSearch/FilterButton]!has[draft.of]]\"><$transclude/></$list>\n</div>\n\n<$reveal state=\"$:/temp/advancedsearch\" type=\"nomatch\" text=\"\">\n<$set name=\"resultCount\" value=\"\"\"<$count filter={{$:/temp/advancedsearch}}/>\"\"\">\n<div class=\"tc-search-results\">\n<<lingo Filter/Matches>>\n<$list filter={{$:/temp/advancedsearch}} template=\"$:/core/ui/ListItemTemplate\"/>\n</div>\n</$set>\n</$reveal>\n" }, "$:/core/ui/AdvancedSearch/Filter/FilterButtons/clear": { "title": "$:/core/ui/AdvancedSearch/Filter/FilterButtons/clear", "tags": "$:/tags/AdvancedSearch/FilterButton", "text": "<$reveal state=\"$:/temp/advancedsearch\" type=\"nomatch\" text=\"\">\n<$button class=\"tc-btn-invisible\">\n<$action-setfield $tiddler=\"$:/temp/advancedsearch\" $field=\"text\" $value=\"\"/>\n{{$:/core/images/close-button}}\n</$button>\n</$reveal>\n" }, "$:/core/ui/AdvancedSearch/Filter/FilterButtons/delete": { "title": "$:/core/ui/AdvancedSearch/Filter/FilterButtons/delete", "tags": "$:/tags/AdvancedSearch/FilterButton", "text": "<$reveal state=\"$:/temp/advancedsearch\" type=\"nomatch\" text=\"\">\n<$button popup=<<qualify \"$:/state/filterDeleteDropdown\">> class=\"tc-btn-invisible\">\n{{$:/core/images/delete-button}}\n</$button>\n</$reveal>\n\n<$reveal state=<<qualify \"$:/state/filterDeleteDropdown\">> type=\"popup\" position=\"belowleft\" animate=\"yes\">\n<div class=\"tc-block-dropdown-wrapper\">\n<div class=\"tc-block-dropdown tc-edit-type-dropdown\">\n<div class=\"tc-dropdown-item-plain\">\n<$set name=\"resultCount\" value=\"\"\"<$count filter={{$:/temp/advancedsearch}}/>\"\"\">\nAre you sure you wish to delete <<resultCount>> tiddler(s)?\n</$set>\n</div>\n<div class=\"tc-dropdown-item-plain\">\n<$button class=\"tc-btn\">\n<$action-deletetiddler $filter={{$:/temp/advancedsearch}}/>\nDelete these tiddlers\n</$button>\n</div>\n</div>\n</div>\n</$reveal>\n" }, "$:/core/ui/AdvancedSearch/Filter/FilterButtons/dropdown": { "title": "$:/core/ui/AdvancedSearch/Filter/FilterButtons/dropdown", "tags": "$:/tags/AdvancedSearch/FilterButton", "text": "<span class=\"tc-popup-keep\">\n<$button popup=<<qualify \"$:/state/filterDropdown\">> class=\"tc-btn-invisible\">\n{{$:/core/images/down-arrow}}\n</$button>\n</span>\n\n<$reveal state=<<qualify \"$:/state/filterDropdown\">> type=\"popup\" position=\"belowleft\" animate=\"yes\">\n<$linkcatcher to=\"$:/temp/advancedsearch\">\n<div class=\"tc-block-dropdown-wrapper\">\n<div class=\"tc-block-dropdown tc-edit-type-dropdown\">\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/Filter]]\"><$link to={{!!filter}}><$transclude field=\"description\"/></$link>\n</$list>\n</div>\n</div>\n</$linkcatcher>\n</$reveal>\n" }, "$:/core/ui/AdvancedSearch/Filter/FilterButtons/export": { "title": "$:/core/ui/AdvancedSearch/Filter/FilterButtons/export", "tags": "$:/tags/AdvancedSearch/FilterButton", "text": "<$reveal state=\"$:/temp/advancedsearch\" type=\"nomatch\" text=\"\">\n<$macrocall $name=\"exportButton\" exportFilter={{$:/temp/advancedsearch}} lingoBase=\"$:/language/Buttons/ExportTiddlers/\"/>\n</$reveal>\n" }, "$:/core/ui/AdvancedSearch/Shadows": { "title": "$:/core/ui/AdvancedSearch/Shadows", "tags": "$:/tags/AdvancedSearch", "caption": "{{$:/language/Search/Shadows/Caption}}", "text": "\\define lingo-base() $:/language/Search/\n<$linkcatcher to=\"$:/temp/advancedsearch\">\n\n<<lingo Shadows/Hint>>\n\n<div class=\"tc-search\">\n<$edit-text tiddler=\"$:/temp/advancedsearch\" type=\"search\" tag=\"input\"/>\n<$reveal state=\"$:/temp/advancedsearch\" type=\"nomatch\" text=\"\">\n<$button class=\"tc-btn-invisible\">\n<$action-setfield $tiddler=\"$:/temp/advancedsearch\" $field=\"text\" $value=\"\"/>\n{{$:/core/images/close-button}}\n</$button>\n</$reveal>\n</div>\n\n</$linkcatcher>\n\n<$reveal state=\"$:/temp/advancedsearch\" type=\"nomatch\" text=\"\">\n\n<$set name=\"resultCount\" value=\"\"\"<$count filter=\"[all[shadows]search{$:/temp/advancedsearch}] -[[$:/temp/advancedsearch]]\"/>\"\"\">\n\n<div class=\"tc-search-results\">\n\n<<lingo Shadows/Matches>>\n\n<$list filter=\"[all[shadows]search{$:/temp/advancedsearch}sort[title]limit[250]] -[[$:/temp/advancedsearch]]\" template=\"$:/core/ui/ListItemTemplate\"/>\n\n</div>\n\n</$set>\n\n</$reveal>\n\n<$reveal state=\"$:/temp/advancedsearch\" type=\"match\" text=\"\">\n\n</$reveal>\n" }, "$:/core/ui/AdvancedSearch/Standard": { "title": "$:/core/ui/AdvancedSearch/Standard", "tags": "$:/tags/AdvancedSearch", "caption": "{{$:/language/Search/Standard/Caption}}", "text": "\\define lingo-base() $:/language/Search/\n<$linkcatcher to=\"$:/temp/advancedsearch\">\n\n<<lingo Standard/Hint>>\n\n<div class=\"tc-search\">\n<$edit-text tiddler=\"$:/temp/advancedsearch\" type=\"search\" tag=\"input\"/>\n<$reveal state=\"$:/temp/advancedsearch\" type=\"nomatch\" text=\"\">\n<$button class=\"tc-btn-invisible\">\n<$action-setfield $tiddler=\"$:/temp/advancedsearch\" $field=\"text\" $value=\"\"/>\n{{$:/core/images/close-button}}\n</$button>\n</$reveal>\n</div>\n\n</$linkcatcher>\n\n<$reveal state=\"$:/temp/advancedsearch\" type=\"nomatch\" text=\"\">\n<$set name=\"searchTiddler\" value=\"$:/temp/advancedsearch\">\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/SearchResults]!has[draft.of]butfirst[]limit[1]]\" emptyMessage=\"\"\"\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/SearchResults]!has[draft.of]]\">\n<$transclude/>\n</$list>\n\"\"\">\n<$macrocall $name=\"tabs\" tabsList=\"[all[shadows+tiddlers]tag[$:/tags/SearchResults]!has[draft.of]]\" default={{$:/config/SearchResults/Default}}/>\n</$list>\n</$set>\n</$reveal>\n" }, "$:/core/ui/AdvancedSearch/System": { "title": "$:/core/ui/AdvancedSearch/System", "tags": "$:/tags/AdvancedSearch", "caption": "{{$:/language/Search/System/Caption}}", "text": "\\define lingo-base() $:/language/Search/\n<$linkcatcher to=\"$:/temp/advancedsearch\">\n\n<<lingo System/Hint>>\n\n<div class=\"tc-search\">\n<$edit-text tiddler=\"$:/temp/advancedsearch\" type=\"search\" tag=\"input\"/>\n<$reveal state=\"$:/temp/advancedsearch\" type=\"nomatch\" text=\"\">\n<$button class=\"tc-btn-invisible\">\n<$action-setfield $tiddler=\"$:/temp/advancedsearch\" $field=\"text\" $value=\"\"/>\n{{$:/core/images/close-button}}\n</$button>\n</$reveal>\n</div>\n\n</$linkcatcher>\n\n<$reveal state=\"$:/temp/advancedsearch\" type=\"nomatch\" text=\"\">\n\n<$set name=\"resultCount\" value=\"\"\"<$count filter=\"[is[system]search{$:/temp/advancedsearch}] -[[$:/temp/advancedsearch]]\"/>\"\"\">\n\n<div class=\"tc-search-results\">\n\n<<lingo System/Matches>>\n\n<$list filter=\"[is[system]search{$:/temp/advancedsearch}sort[title]limit[250]] -[[$:/temp/advancedsearch]]\" template=\"$:/core/ui/ListItemTemplate\"/>\n\n</div>\n\n</$set>\n\n</$reveal>\n\n<$reveal state=\"$:/temp/advancedsearch\" type=\"match\" text=\"\">\n\n</$reveal>\n" }, "$:/AdvancedSearch": { "title": "$:/AdvancedSearch", "icon": "$:/core/images/advanced-search-button", "color": "#bbb", "text": "<div class=\"tc-advanced-search\">\n<<tabs \"[all[shadows+tiddlers]tag[$:/tags/AdvancedSearch]!has[draft.of]]\" \"$:/core/ui/AdvancedSearch/System\">>\n</div>\n" }, "$:/core/ui/AlertTemplate": { "title": "$:/core/ui/AlertTemplate", "text": "<div class=\"tc-alert\">\n<div class=\"tc-alert-toolbar\">\n<$button class=\"tc-btn-invisible\"><$action-deletetiddler $tiddler=<<currentTiddler>>/>{{$:/core/images/delete-button}}</$button>\n</div>\n<div class=\"tc-alert-subtitle\">\n<$view field=\"component\"/> - <$view field=\"modified\" format=\"date\" template=\"0hh:0mm:0ss DD MM YYYY\"/> <$reveal type=\"nomatch\" state=\"!!count\" text=\"\"><span class=\"tc-alert-highlight\">({{$:/language/Count}}: <$view field=\"count\"/>)</span></$reveal>\n</div>\n<div class=\"tc-alert-body\">\n\n<$transclude/>\n\n</div>\n</div>\n" }, "$:/core/ui/BinaryWarning": { "title": "$:/core/ui/BinaryWarning", "text": "\\define lingo-base() $:/language/BinaryWarning/\n<div class=\"tc-binary-warning\">\n\n<<lingo Prompt>>\n\n</div>\n" }, "$:/core/ui/Components/tag-link": { "title": "$:/core/ui/Components/tag-link", "text": "<$link>\n<$set name=\"backgroundColor\" value={{!!color}}>\n<span style=<<tag-styles>> class=\"tc-tag-label\">\n<$view field=\"title\" format=\"text\"/>\n</span>\n</$set>\n</$link>" }, "$:/core/ui/ControlPanel/Advanced": { "title": "$:/core/ui/ControlPanel/Advanced", "tags": "$:/tags/ControlPanel/Info", "caption": "{{$:/language/ControlPanel/Advanced/Caption}}", "text": "{{$:/language/ControlPanel/Advanced/Hint}}\n\n<div class=\"tc-control-panel\">\n<<tabs \"[all[shadows+tiddlers]tag[$:/tags/ControlPanel/Advanced]!has[draft.of]]\" \"$:/core/ui/ControlPanel/TiddlerFields\">>\n</div>\n" }, "$:/core/ui/ControlPanel/Appearance": { "title": "$:/core/ui/ControlPanel/Appearance", "tags": "$:/tags/ControlPanel", "caption": "{{$:/language/ControlPanel/Appearance/Caption}}", "text": "{{$:/language/ControlPanel/Appearance/Hint}}\n\n<div class=\"tc-control-panel\">\n<<tabs \"[all[shadows+tiddlers]tag[$:/tags/ControlPanel/Appearance]!has[draft.of]]\" \"$:/core/ui/ControlPanel/Theme\">>\n</div>\n" }, "$:/core/ui/ControlPanel/Basics": { "title": "$:/core/ui/ControlPanel/Basics", "tags": "$:/tags/ControlPanel/Info", "caption": "{{$:/language/ControlPanel/Basics/Caption}}", "text": "\\define lingo-base() $:/language/ControlPanel/Basics/\n\n\\define show-filter-count(filter)\n<$button class=\"tc-btn-invisible\">\n<$action-setfield $tiddler=\"$:/temp/advancedsearch\" $value=\"\"\"$filter$\"\"\"/>\n<$action-setfield $tiddler=\"$:/state/tab--1498284803\" $value=\"$:/core/ui/AdvancedSearch/Filter\"/>\n<$action-navigate $to=\"$:/AdvancedSearch\"/>\n''<$count filter=\"\"\"$filter$\"\"\"/>''\n{{$:/core/images/advanced-search-button}}\n</$button>\n\\end\n\n|<<lingo Version/Prompt>> |''<<version>>'' |\n|<$link to=\"$:/SiteTitle\"><<lingo Title/Prompt>></$link> |<$edit-text tiddler=\"$:/SiteTitle\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/SiteSubtitle\"><<lingo Subtitle/Prompt>></$link> |<$edit-text tiddler=\"$:/SiteSubtitle\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/status/UserName\"><<lingo Username/Prompt>></$link> |<$edit-text tiddler=\"$:/status/UserName\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/config/AnimationDuration\"><<lingo AnimDuration/Prompt>></$link> |<$edit-text tiddler=\"$:/config/AnimationDuration\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/DefaultTiddlers\"><<lingo DefaultTiddlers/Prompt>></$link> |<<lingo DefaultTiddlers/TopHint>><br> <$edit tag=\"textarea\" tiddler=\"$:/DefaultTiddlers\" class=\"tc-edit-texteditor\"/><br>//<<lingo DefaultTiddlers/BottomHint>>// |\n|<$link to=\"$:/config/NewJournal/Title\"><<lingo NewJournal/Title/Prompt>></$link> |<$edit-text tiddler=\"$:/config/NewJournal/Title\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/config/NewJournal/Tags\"><<lingo NewJournal/Tags/Prompt>></$link> |<$edit-text tiddler=\"$:/config/NewJournal/Tags\" default=\"\" tag=\"input\"/> |\n|<<lingo Language/Prompt>> |{{$:/snippets/minilanguageswitcher}} |\n|<<lingo Tiddlers/Prompt>> |<<show-filter-count \"[!is[system]sort[title]]\">> |\n|<<lingo Tags/Prompt>> |<<show-filter-count \"[tags[]sort[title]]\">> |\n|<<lingo SystemTiddlers/Prompt>> |<<show-filter-count \"[is[system]sort[title]]\">> |\n|<<lingo ShadowTiddlers/Prompt>> |<<show-filter-count \"[all[shadows]sort[title]]\">> |\n|<<lingo OverriddenShadowTiddlers/Prompt>> |<<show-filter-count \"[is[tiddler]is[shadow]sort[title]]\">> |\n" }, "$:/core/ui/ControlPanel/EditorTypes": { "title": "$:/core/ui/ControlPanel/EditorTypes", "tags": "$:/tags/ControlPanel/Advanced", "caption": "{{$:/language/ControlPanel/EditorTypes/Caption}}", "text": "\\define lingo-base() $:/language/ControlPanel/EditorTypes/\n\n<<lingo Hint>>\n\n<table>\n<tbody>\n<tr>\n<th><<lingo Type/Caption>></th>\n<th><<lingo Editor/Caption>></th>\n</tr>\n<$list filter=\"[all[shadows+tiddlers]prefix[$:/config/EditorTypeMappings/]sort[title]]\">\n<tr>\n<td>\n<$link>\n<$list filter=\"[all[current]removeprefix[$:/config/EditorTypeMappings/]]\">\n<$text text={{!!title}}/>\n</$list>\n</$link>\n</td>\n<td>\n<$view field=\"text\"/>\n</td>\n</tr>\n</$list>\n</tbody>\n</table>\n" }, "$:/core/ui/ControlPanel/Info": { "title": "$:/core/ui/ControlPanel/Info", "tags": "$:/tags/ControlPanel", "caption": "{{$:/language/ControlPanel/Info/Caption}}", "text": "{{$:/language/ControlPanel/Info/Hint}}\n\n<div class=\"tc-control-panel\">\n<<tabs \"[all[shadows+tiddlers]tag[$:/tags/ControlPanel/Info]!has[draft.of]]\" \"$:/core/ui/ControlPanel/Basics\">>\n</div>\n" }, "$:/core/ui/ControlPanel/KeyboardShortcuts": { "title": "$:/core/ui/ControlPanel/KeyboardShortcuts", "tags": "$:/tags/ControlPanel", "caption": "{{$:/language/ControlPanel/KeyboardShortcuts/Caption}}", "text": "\\define lingo-base() $:/language/ControlPanel/KeyboardShortcuts/\n\n\\define new-shortcut(title)\n<div class=\"tc-dropdown-item-plain\">\n<$edit-shortcut tiddler=\"$title$\" placeholder={{$:/language/ControlPanel/KeyboardShortcuts/Add/Prompt}} style=\"width:auto;\"/> <$button>\n<<lingo Add/Caption>>\n<$action-listops\n\t$tiddler=\"$(shortcutTitle)$\"\n\t$field=\"text\"\n\t$subfilter=\"[{$title$}]\"\n/>\n<$action-deletetiddler\n\t$tiddler=\"$title$\"\n/>\n</$button>\n</div>\n\\end\n\n\\define shortcut-list-item(caption)\n<td>\n</td>\n<td style=\"text-align:right;font-size:0.7em;\">\n<<lingo Platform/$caption$>>\n</td>\n<td>\n<div style=\"position:relative;\">\n<$button popup=<<qualify \"$:/state/dropdown/$(shortcutTitle)$\">> class=\"tc-btn-invisible\">\n{{$:/core/images/edit-button}}\n</$button>\n<$macrocall $name=\"displayshortcuts\" $output=\"text/html\" shortcuts={{$(shortcutTitle)$}} prefix=\"<kbd>\" separator=\"</kbd> <kbd>\" suffix=\"</kbd>\"/>\n\n<$reveal state=<<qualify \"$:/state/dropdown/$(shortcutTitle)$\">> type=\"popup\" position=\"below\" animate=\"yes\">\n<div class=\"tc-block-dropdown-wrapper\">\n<div class=\"tc-block-dropdown tc-edit-type-dropdown tc-popup-keep\">\n<$list filter=\"[list[$(shortcutTitle)$!!text]sort[title]]\" variable=\"shortcut\" emptyMessage=\"\"\"\n<div class=\"tc-dropdown-item-plain\">\n//<<lingo NoShortcuts/Caption>>//\n</div>\n\"\"\">\n<div class=\"tc-dropdown-item-plain\">\n<$button class=\"tc-btn-invisible\" tooltip=<<lingo Remove/Hint>>>\n<$action-listops\n\t$tiddler=\"$(shortcutTitle)$\"\n\t$field=\"text\"\n\t$subfilter=\"+[remove<shortcut>]\"\n/>\n×\n</$button>\n<kbd>\n<$macrocall $name=\"displayshortcuts\" $output=\"text/html\" shortcuts=<<shortcut>>/>\n</kbd>\n</div>\n</$list>\n<hr/>\n<$macrocall $name=\"new-shortcut\" title=<<qualify \"$:/state/new-shortcut/$(shortcutTitle)$\">>/>\n</div>\n</div>\n</$reveal>\n</div>\n</td>\n\\end\n\n\\define shortcut-list(caption,prefix)\n<tr>\n<$list filter=\"[all[tiddlers+shadows][$prefix$$(shortcutName)$]]\" variable=\"shortcutTitle\">\n<<shortcut-list-item \"$caption$\">>\n</$list>\n</tr>\n\\end\n\n\\define shortcut-editor()\n<<shortcut-list \"All\" \"$:/config/shortcuts/\">>\n<<shortcut-list \"Mac\" \"$:/config/shortcuts-mac/\">>\n<<shortcut-list \"NonMac\" \"$:/config/shortcuts-not-mac/\">>\n<<shortcut-list \"Linux\" \"$:/config/shortcuts-linux/\">>\n<<shortcut-list \"NonLinux\" \"$:/config/shortcuts-not-linux/\">>\n<<shortcut-list \"Windows\" \"$:/config/shortcuts-windows/\">>\n<<shortcut-list \"NonWindows\" \"$:/config/shortcuts-not-windows/\">>\n\\end\n\n\\define shortcut-preview()\n<$macrocall $name=\"displayshortcuts\" $output=\"text/html\" shortcuts={{$(shortcutPrefix)$$(shortcutName)$}} prefix=\"<kbd>\" separator=\"</kbd> <kbd>\" suffix=\"</kbd>\"/>\n\\end\n\n\\define shortcut-item-inner()\n<tr>\n<td>\n<$reveal type=\"nomatch\" state=<<dropdownStateTitle>> text=\"open\">\n<$button class=\"tc-btn-invisible\">\n<$action-setfield\n\t$tiddler=<<dropdownStateTitle>>\n\t$value=\"open\"\n/>\n{{$:/core/images/right-arrow}}\n</$button>\n</$reveal>\n<$reveal type=\"match\" state=<<dropdownStateTitle>> text=\"open\">\n<$button class=\"tc-btn-invisible\">\n<$action-setfield\n\t$tiddler=<<dropdownStateTitle>>\n\t$value=\"close\"\n/>\n{{$:/core/images/down-arrow}}\n</$button>\n</$reveal>\n''<$text text=<<shortcutName>>/>''\n</td>\n<td>\n<$transclude tiddler=\"$:/config/ShortcutInfo/$(shortcutName)$\"/>\n</td>\n<td>\n<$list filter=\"$:/config/shortcuts/ $:/config/shortcuts-mac/ $:/config/shortcuts-not-mac/ $:/config/shortcuts-linux/ $:/config/shortcuts-not-linux/ $:/config/shortcuts-windows/ $:/config/shortcuts-not-windows/\" variable=\"shortcutPrefix\">\n<<shortcut-preview>>\n</$list>\n</td>\n</tr>\n<$set name=\"dropdownState\" value={{$(dropdownStateTitle)$}}>\n<$list filter=\"[<dropdownState>prefix[open]]\" variable=\"listItem\">\n<<shortcut-editor>>\n</$list>\n</$set>\n\\end\n\n\\define shortcut-item()\n<$set name=\"dropdownStateTitle\" value=<<qualify \"$:/state/dropdown/keyboardshortcut/$(shortcutName)$\">>>\n<<shortcut-item-inner>>\n</$set>\n\\end\n\n<table>\n<tbody>\n<$list filter=\"[all[shadows+tiddlers]removeprefix[$:/config/ShortcutInfo/]]\" variable=\"shortcutName\">\n<<shortcut-item>>\n</$list>\n</tbody>\n</table>\n" }, "$:/core/ui/ControlPanel/LoadedModules": { "title": "$:/core/ui/ControlPanel/LoadedModules", "tags": "$:/tags/ControlPanel/Advanced", "caption": "{{$:/language/ControlPanel/LoadedModules/Caption}}", "text": "\\define lingo-base() $:/language/ControlPanel/\n<<lingo LoadedModules/Hint>>\n\n{{$:/snippets/modules}}\n" }, "$:/core/ui/ControlPanel/Modals/AddPlugins": { "title": "$:/core/ui/ControlPanel/Modals/AddPlugins", "subtitle": "{{$:/core/images/download-button}} {{$:/language/ControlPanel/Plugins/Add/Caption}}", "text": "\\define install-plugin-button()\n<$button>\n<$action-sendmessage $message=\"tm-load-plugin-from-library\" url={{!!url}} title={{$(assetInfo)$!!original-title}}/>\n<$list filter=\"[<assetInfo>get[original-title]get[version]]\" variable=\"installedVersion\" emptyMessage=\"\"\"{{$:/language/ControlPanel/Plugins/Install/Caption}}\"\"\">\n{{$:/language/ControlPanel/Plugins/Reinstall/Caption}}\n</$list>\n</$button>\n\\end\n\n\\define popup-state-macro()\n$:/state/add-plugin-info/$(connectionTiddler)$/$(assetInfo)$\n\\end\n\n\\define display-plugin-info(type)\n<$set name=\"popup-state\" value=<<popup-state-macro>>>\n<div class=\"tc-plugin-info\">\n<div class=\"tc-plugin-info-chunk tc-small-icon\">\n<$reveal type=\"nomatch\" state=<<popup-state>> text=\"yes\">\n<$button class=\"tc-btn-invisible tc-btn-dropdown\" set=<<popup-state>> setTo=\"yes\">\n{{$:/core/images/right-arrow}}\n</$button>\n</$reveal>\n<$reveal type=\"match\" state=<<popup-state>> text=\"yes\">\n<$button class=\"tc-btn-invisible tc-btn-dropdown\" set=<<popup-state>> setTo=\"no\">\n{{$:/core/images/down-arrow}}\n</$button>\n</$reveal>\n</div>\n<div class=\"tc-plugin-info-chunk\">\n<$list filter=\"[<assetInfo>has[icon]]\" emptyMessage=\"\"\"<$transclude tiddler=\"$:/core/images/plugin-generic-$type$\"/>\"\"\">\n<img src={{$(assetInfo)$!!icon}}/>\n</$list>\n</div>\n<div class=\"tc-plugin-info-chunk\">\n<h1><$view tiddler=<<assetInfo>> field=\"description\"/></h1>\n<h2><$view tiddler=<<assetInfo>> field=\"original-title\"/></h2>\n<div><em><$view tiddler=<<assetInfo>> field=\"version\"/></em></div>\n</div>\n<div class=\"tc-plugin-info-chunk\">\n<<install-plugin-button>>\n</div>\n</div>\n<$reveal type=\"match\" text=\"yes\" state=<<popup-state>>>\n<div class=\"tc-plugin-info-dropdown\">\n<div class=\"tc-plugin-info-dropdown-message\">\n<$list filter=\"[<assetInfo>get[original-title]get[version]]\" variable=\"installedVersion\" emptyMessage=\"\"\"{{$:/language/ControlPanel/Plugins/NotInstalled/Hint}}\"\"\">\n<em>\n{{$:/language/ControlPanel/Plugins/AlreadyInstalled/Hint}}\n</em>\n</$list>\n</div>\n<div class=\"tc-plugin-info-dropdown-body\">\n<$transclude tiddler=<<assetInfo>> field=\"readme\" mode=\"block\"/>\n</div>\n</div>\n</$reveal>\n</$set>\n\\end\n\n\\define load-plugin-library-button()\n<$button class=\"tc-btn-big-green\">\n<$action-sendmessage $message=\"tm-load-plugin-library\" url={{!!url}} infoTitlePrefix=\"$:/temp/RemoteAssetInfo/\"/>\n{{$:/core/images/chevron-right}} {{$:/language/ControlPanel/Plugins/OpenPluginLibrary}}\n</$button>\n\\end\n\n\\define display-server-assets(type)\n{{$:/language/Search/Search}}: <$edit-text tiddler=\"\"\"$:/temp/RemoteAssetSearch/$(currentTiddler)$\"\"\" default=\"\" type=\"search\" tag=\"input\"/>\n<$reveal state=\"\"\"$:/temp/RemoteAssetSearch/$(currentTiddler)$\"\"\" type=\"nomatch\" text=\"\">\n<$button class=\"tc-btn-invisible\">\n<$action-setfield $tiddler=\"\"\"$:/temp/RemoteAssetSearch/$(currentTiddler)$\"\"\" $field=\"text\" $value=\"\"/>\n{{$:/core/images/close-button}}\n</$button>\n</$reveal>\n<div class=\"tc-plugin-library-listing\">\n<$list filter=\"[all[tiddlers+shadows]tag[$:/tags/RemoteAssetInfo]server-url{!!url}original-plugin-type[$type$]search{$:/temp/RemoteAssetSearch/$(currentTiddler)$}sort[description]]\" variable=\"assetInfo\">\n<<display-plugin-info \"$type$\">>\n</$list>\n</div>\n\\end\n\n\\define display-server-connection()\n<$list filter=\"[all[tiddlers+shadows]tag[$:/tags/ServerConnection]suffix{!!url}]\" variable=\"connectionTiddler\" emptyMessage=<<load-plugin-library-button>>>\n\n<<tabs \"[[$:/core/ui/ControlPanel/Plugins/Add/Plugins]] [[$:/core/ui/ControlPanel/Plugins/Add/Themes]] [[$:/core/ui/ControlPanel/Plugins/Add/Languages]]\" \"$:/core/ui/ControlPanel/Plugins/Add/Plugins\">>\n\n</$list>\n\\end\n\n\\define plugin-library-listing()\n<$list filter=\"[all[tiddlers+shadows]tag[$:/tags/PluginLibrary]]\">\n<div class=\"tc-plugin-library\">\n\n!! <$link><$transclude field=\"caption\"><$view field=\"title\"/></$transclude></$link>\n\n//<$view field=\"url\"/>//\n\n<$transclude/>\n\n<<display-server-connection>>\n</div>\n</$list>\n\\end\n\n<$importvariables filter=\"[[$:/core/ui/PageMacros]] [all[shadows+tiddlers]tag[$:/tags/Macro]!has[draft.of]]\">\n\n<div>\n<<plugin-library-listing>>\n</div>\n\n</$importvariables>\n" }, "$:/core/ui/ControlPanel/Palette": { "title": "$:/core/ui/ControlPanel/Palette", "tags": "$:/tags/ControlPanel/Appearance", "caption": "{{$:/language/ControlPanel/Palette/Caption}}", "text": "\\define lingo-base() $:/language/ControlPanel/Palette/\n\n{{$:/snippets/paletteswitcher}}\n\n<$reveal type=\"nomatch\" state=\"$:/state/ShowPaletteEditor\" text=\"yes\">\n\n<$button set=\"$:/state/ShowPaletteEditor\" setTo=\"yes\"><<lingo ShowEditor/Caption>></$button>\n\n</$reveal>\n\n<$reveal type=\"match\" state=\"$:/state/ShowPaletteEditor\" text=\"yes\">\n\n<$button set=\"$:/state/ShowPaletteEditor\" setTo=\"no\"><<lingo HideEditor/Caption>></$button>\n{{$:/snippets/paletteeditor}}\n\n</$reveal>\n\n" }, "$:/core/ui/ControlPanel/Parsing": { "title": "$:/core/ui/ControlPanel/Parsing", "tags": "$:/tags/ControlPanel/Advanced", "caption": "{{$:/language/ControlPanel/Parsing/Caption}}", "text": "\\define lingo-base() $:/language/ControlPanel/Parsing/\n\n\\define parsing-inner(typeCap)\n<li>\n<$checkbox tiddler=\"\"\"$:/config/WikiParserRules/$typeCap$/$(currentTiddler)$\"\"\" field=\"text\" checked=\"enable\" unchecked=\"disable\" default=\"enable\"> ''<$text text=<<currentTiddler>>/>'': </$checkbox>\n</li>\n\\end\n\n\\define parsing-outer(typeLower,typeCap)\n<ul>\n<$list filter=\"[wikiparserrules[$typeLower$]]\">\n<<parsing-inner typeCap:\"$typeCap$\">>\n</$list>\n</ul>\n\\end\n\n<<lingo Hint>>\n\n! <<lingo Pragma/Caption>>\n\n<<parsing-outer typeLower:\"pragma\" typeCap:\"Pragma\">>\n\n! <<lingo Inline/Caption>>\n\n<<parsing-outer typeLower:\"inline\" typeCap:\"Inline\">>\n\n! <<lingo Block/Caption>>\n\n<<parsing-outer typeLower:\"block\" typeCap:\"Block\">>\n" }, "$:/core/ui/ControlPanel/Plugins/Add/Languages": { "title": "$:/core/ui/ControlPanel/Plugins/Add/Languages", "caption": "{{$:/language/ControlPanel/Plugins/Languages/Caption}} (<$count filter=\"[all[tiddlers+shadows]tag[$:/tags/RemoteAssetInfo]server-url{!!url}original-plugin-type[language]]\"/>)", "text": "<<display-server-assets language>>\n" }, "$:/core/ui/ControlPanel/Plugins/Add/Plugins": { "title": "$:/core/ui/ControlPanel/Plugins/Add/Plugins", "caption": "{{$:/language/ControlPanel/Plugins/Plugins/Caption}} (<$count filter=\"[all[tiddlers+shadows]tag[$:/tags/RemoteAssetInfo]server-url{!!url}original-plugin-type[plugin]]\"/>)", "text": "<<display-server-assets plugin>>\n" }, "$:/core/ui/ControlPanel/Plugins/Add/Themes": { "title": "$:/core/ui/ControlPanel/Plugins/Add/Themes", "caption": "{{$:/language/ControlPanel/Plugins/Themes/Caption}} (<$count filter=\"[all[tiddlers+shadows]tag[$:/tags/RemoteAssetInfo]server-url{!!url}original-plugin-type[theme]]\"/>)", "text": "<<display-server-assets theme>>\n" }, "$:/core/ui/ControlPanel/Plugins/AddPlugins": { "title": "$:/core/ui/ControlPanel/Plugins/AddPlugins", "text": "\\define lingo-base() $:/language/ControlPanel/Plugins/\n\n<$button message=\"tm-modal\" param=\"$:/core/ui/ControlPanel/Modals/AddPlugins\" tooltip={{$:/language/ControlPanel/Plugins/Add/Hint}} class=\"tc-btn-big-green\" style=\"background:blue;\">\n{{$:/core/images/download-button}} <<lingo Add/Caption>>\n</$button>\n" }, "$:/core/ui/ControlPanel/Plugins/Installed/Languages": { "title": "$:/core/ui/ControlPanel/Plugins/Installed/Languages", "caption": "{{$:/language/ControlPanel/Plugins/Languages/Caption}} (<$count filter=\"[!has[draft.of]plugin-type[language]]\"/>)", "text": "<<plugin-table language>>\n" }, "$:/core/ui/ControlPanel/Plugins/Installed/Plugins": { "title": "$:/core/ui/ControlPanel/Plugins/Installed/Plugins", "caption": "{{$:/language/ControlPanel/Plugins/Plugins/Caption}} (<$count filter=\"[!has[draft.of]plugin-type[plugin]]\"/>)", "text": "<<plugin-table plugin>>\n" }, "$:/core/ui/ControlPanel/Plugins/Installed/Themes": { "title": "$:/core/ui/ControlPanel/Plugins/Installed/Themes", "caption": "{{$:/language/ControlPanel/Plugins/Themes/Caption}} (<$count filter=\"[!has[draft.of]plugin-type[theme]]\"/>)", "text": "<<plugin-table theme>>\n" }, "$:/core/ui/ControlPanel/Plugins": { "title": "$:/core/ui/ControlPanel/Plugins", "tags": "$:/tags/ControlPanel", "caption": "{{$:/language/ControlPanel/Plugins/Caption}}", "text": "\\define lingo-base() $:/language/ControlPanel/Plugins/\n\n\\define popup-state-macro()\n$(qualified-state)$-$(currentTiddler)$\n\\end\n\n\\define tabs-state-macro()\n$(popup-state)$-$(pluginInfoType)$\n\\end\n\n\\define plugin-icon-title()\n$(currentTiddler)$/icon\n\\end\n\n\\define plugin-disable-title()\n$:/config/Plugins/Disabled/$(currentTiddler)$\n\\end\n\n\\define plugin-table-body(type,disabledMessage)\n<div class=\"tc-plugin-info-chunk tc-small-icon\">\n<$reveal type=\"nomatch\" state=<<popup-state>> text=\"yes\">\n<$button class=\"tc-btn-invisible tc-btn-dropdown\" set=<<popup-state>> setTo=\"yes\">\n{{$:/core/images/right-arrow}}\n</$button>\n</$reveal>\n<$reveal type=\"match\" state=<<popup-state>> text=\"yes\">\n<$button class=\"tc-btn-invisible tc-btn-dropdown\" set=<<popup-state>> setTo=\"no\">\n{{$:/core/images/down-arrow}}\n</$button>\n</$reveal>\n</div>\n<div class=\"tc-plugin-info-chunk\">\n<$transclude tiddler=<<currentTiddler>> subtiddler=<<plugin-icon-title>>>\n<$transclude tiddler=\"$:/core/images/plugin-generic-$type$\"/>\n</$transclude>\n</div>\n<div class=\"tc-plugin-info-chunk\">\n<h1>\n''<$view field=\"description\"><$view field=\"title\"/></$view>'' $disabledMessage$\n</h1>\n<h2>\n<$view field=\"title\"/>\n</h2>\n<h2>\n<div><em><$view field=\"version\"/></em></div>\n</h2>\n</div>\n\\end\n\n\\define plugin-table(type)\n<$set name=\"qualified-state\" value=<<qualify \"$:/state/plugin-info\">>>\n<$list filter=\"[!has[draft.of]plugin-type[$type$]sort[description]]\" emptyMessage=<<lingo \"Empty/Hint\">>>\n<$set name=\"popup-state\" value=<<popup-state-macro>>>\n<$reveal type=\"nomatch\" state=<<plugin-disable-title>> text=\"yes\">\n<$link to={{!!title}} class=\"tc-plugin-info\">\n<<plugin-table-body type:\"$type$\">>\n</$link>\n</$reveal>\n<$reveal type=\"match\" state=<<plugin-disable-title>> text=\"yes\">\n<$link to={{!!title}} class=\"tc-plugin-info tc-plugin-info-disabled\">\n<<plugin-table-body type:\"$type$\" disabledMessage:\"<$macrocall $name='lingo' title='Disabled/Status'/>\">>\n</$link>\n</$reveal>\n<$reveal type=\"match\" text=\"yes\" state=<<popup-state>>>\n<div class=\"tc-plugin-info-dropdown\">\n<div class=\"tc-plugin-info-dropdown-body\">\n<$list filter=\"[all[current]] -[[$:/core]]\">\n<div style=\"float:right;\">\n<$reveal type=\"nomatch\" state=<<plugin-disable-title>> text=\"yes\">\n<$button set=<<plugin-disable-title>> setTo=\"yes\" tooltip={{$:/language/ControlPanel/Plugins/Disable/Hint}} aria-label={{$:/language/ControlPanel/Plugins/Disable/Caption}}>\n<<lingo Disable/Caption>>\n</$button>\n</$reveal>\n<$reveal type=\"match\" state=<<plugin-disable-title>> text=\"yes\">\n<$button set=<<plugin-disable-title>> setTo=\"no\" tooltip={{$:/language/ControlPanel/Plugins/Enable/Hint}} aria-label={{$:/language/ControlPanel/Plugins/Enable/Caption}}>\n<<lingo Enable/Caption>>\n</$button>\n</$reveal>\n</div>\n</$list>\n<$reveal type=\"nomatch\" text=\"\" state=\"!!list\">\n<$macrocall $name=\"tabs\" state=<<tabs-state-macro>> tabsList={{!!list}} default=\"readme\" template=\"$:/core/ui/PluginInfo\"/>\n</$reveal>\n<$reveal type=\"match\" text=\"\" state=\"!!list\">\n<<lingo NoInformation/Hint>>\n</$reveal>\n</div>\n</div>\n</$reveal>\n</$set>\n</$list>\n</$set>\n\\end\n\n{{$:/core/ui/ControlPanel/Plugins/AddPlugins}}\n\n<<lingo Installed/Hint>>\n\n<<tabs \"[[$:/core/ui/ControlPanel/Plugins/Installed/Plugins]] [[$:/core/ui/ControlPanel/Plugins/Installed/Themes]] [[$:/core/ui/ControlPanel/Plugins/Installed/Languages]]\" \"$:/core/ui/ControlPanel/Plugins/Installed/Plugins\">>\n" }, "$:/core/ui/ControlPanel/Saving": { "title": "$:/core/ui/ControlPanel/Saving", "tags": "$:/tags/ControlPanel", "caption": "{{$:/language/ControlPanel/Saving/Caption}}", "text": "\\define lingo-base() $:/language/ControlPanel/Saving/\n\\define backupURL()\nhttp://$(userName)$.tiddlyspot.com/backup/\n\\end\n\\define backupLink()\n<$reveal type=\"nomatch\" state=\"$:/UploadName\" text=\"\">\n<$set name=\"userName\" value={{$:/UploadName}}>\n<$reveal type=\"match\" state=\"$:/UploadURL\" text=\"\">\n<<backupURL>>\n</$reveal>\n<$reveal type=\"nomatch\" state=\"$:/UploadURL\" text=\"\">\n<$macrocall $name=resolvePath source={{$:/UploadBackupDir}} root={{$:/UploadURL}}>>\n</$reveal>\n</$set>\n</$reveal>\n\\end\n! <<lingo TiddlySpot/Heading>>\n\n<<lingo TiddlySpot/Description>>\n\n|<<lingo TiddlySpot/UserName>> |<$edit-text tiddler=\"$:/UploadName\" default=\"\" tag=\"input\"/> |\n|<<lingo TiddlySpot/Password>> |<$password name=\"upload\"/> |\n|<<lingo TiddlySpot/Backups>> |<<backupLink>> |\n\n''<<lingo TiddlySpot/Advanced/Heading>>''\n\n|<<lingo TiddlySpot/ServerURL>> |<$edit-text tiddler=\"$:/UploadURL\" default=\"\" tag=\"input\"/> |\n|<<lingo TiddlySpot/Filename>> |<$edit-text tiddler=\"$:/UploadFilename\" default=\"index.html\" tag=\"input\"/> |\n|<<lingo TiddlySpot/UploadDir>> |<$edit-text tiddler=\"$:/UploadDir\" default=\".\" tag=\"input\"/> |\n|<<lingo TiddlySpot/BackupDir>> |<$edit-text tiddler=\"$:/UploadBackupDir\" default=\".\" tag=\"input\"/> |\n\n<<lingo TiddlySpot/Hint>>" }, "$:/core/ui/ControlPanel/Settings/AutoSave": { "title": "$:/core/ui/ControlPanel/Settings/AutoSave", "tags": "$:/tags/ControlPanel/Settings", "caption": "{{$:/language/ControlPanel/Settings/AutoSave/Caption}}", "text": "\\define lingo-base() $:/language/ControlPanel/Settings/AutoSave/\n\n<$link to=\"$:/config/AutoSave\"><<lingo Hint>></$link>\n\n<$radio tiddler=\"$:/config/AutoSave\" value=\"yes\"> <<lingo Enabled/Description>> </$radio>\n\n<$radio tiddler=\"$:/config/AutoSave\" value=\"no\"> <<lingo Disabled/Description>> </$radio>\n" }, "$:/core/buttonstyles/Borderless": { "title": "$:/core/buttonstyles/Borderless", "tags": "$:/tags/ToolbarButtonStyle", "caption": "{{$:/language/ControlPanel/Settings/ToolbarButtonStyle/Styles/Borderless}}", "text": "tc-btn-invisible" }, "$:/core/buttonstyles/Boxed": { "title": "$:/core/buttonstyles/Boxed", "tags": "$:/tags/ToolbarButtonStyle", "caption": "{{$:/language/ControlPanel/Settings/ToolbarButtonStyle/Styles/Boxed}}", "text": "tc-btn-boxed" }, "$:/core/buttonstyles/Rounded": { "title": "$:/core/buttonstyles/Rounded", "tags": "$:/tags/ToolbarButtonStyle", "caption": "{{$:/language/ControlPanel/Settings/ToolbarButtonStyle/Styles/Rounded}}", "text": "tc-btn-rounded" }, "$:/core/ui/ControlPanel/Settings/CamelCase": { "title": "$:/core/ui/ControlPanel/Settings/CamelCase", "tags": "$:/tags/ControlPanel/Settings", "caption": "{{$:/language/ControlPanel/Settings/CamelCase/Caption}}", "text": "\\define lingo-base() $:/language/ControlPanel/Settings/CamelCase/\n<<lingo Hint>>\n\n<$checkbox tiddler=\"$:/config/WikiParserRules/Inline/wikilink\" field=\"text\" checked=\"enable\" unchecked=\"disable\" default=\"enable\"> <$link to=\"$:/config/WikiParserRules/Inline/wikilink\"><<lingo Description>></$link> </$checkbox>\n" }, "$:/core/ui/ControlPanel/Settings/DefaultSidebarTab": { "caption": "{{$:/language/ControlPanel/Settings/DefaultSidebarTab/Caption}}", "tags": "$:/tags/ControlPanel/Settings", "title": "$:/core/ui/ControlPanel/Settings/DefaultSidebarTab", "text": "\\define lingo-base() $:/language/ControlPanel/Settings/DefaultSidebarTab/\n\n<$link to=\"$:/config/DefaultSidebarTab\"><<lingo Hint>></$link>\n\n<$select tiddler=\"$:/config/DefaultSidebarTab\">\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/SideBar]!has[draft.of]]\">\n<option value=<<currentTiddler>>><$transclude field=\"caption\"><$text text=<<currentTiddler>>/></$transclude></option>\n</$list>\n</$select>\n" }, "$:/core/ui/ControlPanel/Settings/EditorToolbar": { "title": "$:/core/ui/ControlPanel/Settings/EditorToolbar", "tags": "$:/tags/ControlPanel/Settings", "caption": "{{$:/language/ControlPanel/Settings/EditorToolbar/Caption}}", "text": "\\define lingo-base() $:/language/ControlPanel/Settings/EditorToolbar/\n<<lingo Hint>>\n\n<$checkbox tiddler=\"$:/config/TextEditor/EnableToolbar\" field=\"text\" checked=\"yes\" unchecked=\"no\" default=\"yes\"> <$link to=\"$:/config/TextEditor/EnableToolbar\"><<lingo Description>></$link> </$checkbox>\n\n" }, "$:/core/ui/ControlPanel/Settings/LinkToBehaviour": { "title": "$:/core/ui/ControlPanel/Settings/LinkToBehaviour", "tags": "$:/tags/ControlPanel/Settings", "caption": "{{$:/language/ControlPanel/Settings/LinkToBehaviour/Caption}}", "text": "\\define lingo-base() $:/language/ControlPanel/Settings/LinkToBehaviour/\n\n<$link to=\"$:/config/Navigation/openLinkFromInsideRiver\"><<lingo \"InsideRiver/Hint\">></$link>\n\n<$select tiddler=\"$:/config/Navigation/openLinkFromInsideRiver\">\n <option value=\"above\"><<lingo \"OpenAbove\">></option>\n <option value=\"below\"><<lingo \"OpenBelow\">></option>\n <option value=\"top\"><<lingo \"OpenAtTop\">></option>\n <option value=\"bottom\"><<lingo \"OpenAtBottom\">></option>\n</$select>\n\n<$link to=\"$:/config/Navigation/openLinkFromOutsideRiver\"><<lingo \"OutsideRiver/Hint\">></$link>\n\n<$select tiddler=\"$:/config/Navigation/openLinkFromOutsideRiver\">\n <option value=\"top\"><<lingo \"OpenAtTop\">></option>\n <option value=\"bottom\"><<lingo \"OpenAtBottom\">></option>\n</$select>\n" }, "$:/core/ui/ControlPanel/Settings/MissingLinks": { "title": "$:/core/ui/ControlPanel/Settings/MissingLinks", "tags": "$:/tags/ControlPanel/Settings", "caption": "{{$:/language/ControlPanel/Settings/MissingLinks/Caption}}", "text": "\\define lingo-base() $:/language/ControlPanel/Settings/MissingLinks/\n<<lingo Hint>>\n\n<$checkbox tiddler=\"$:/config/MissingLinks\" field=\"text\" checked=\"yes\" unchecked=\"no\" default=\"yes\"> <$link to=\"$:/config/MissingLinks\"><<lingo Description>></$link> </$checkbox>\n\n" }, "$:/core/ui/ControlPanel/Settings/NavigationAddressBar": { "title": "$:/core/ui/ControlPanel/Settings/NavigationAddressBar", "tags": "$:/tags/ControlPanel/Settings", "caption": "{{$:/language/ControlPanel/Settings/NavigationAddressBar/Caption}}", "text": "\\define lingo-base() $:/language/ControlPanel/Settings/NavigationAddressBar/\n\n<$link to=\"$:/config/Navigation/UpdateAddressBar\"><<lingo Hint>></$link>\n\n<$radio tiddler=\"$:/config/Navigation/UpdateAddressBar\" value=\"permaview\"> <<lingo Permaview/Description>> </$radio>\n\n<$radio tiddler=\"$:/config/Navigation/UpdateAddressBar\" value=\"permalink\"> <<lingo Permalink/Description>> </$radio>\n\n<$radio tiddler=\"$:/config/Navigation/UpdateAddressBar\" value=\"no\"> <<lingo No/Description>> </$radio>\n" }, "$:/core/ui/ControlPanel/Settings/NavigationHistory": { "title": "$:/core/ui/ControlPanel/Settings/NavigationHistory", "tags": "$:/tags/ControlPanel/Settings", "caption": "{{$:/language/ControlPanel/Settings/NavigationHistory/Caption}}", "text": "\\define lingo-base() $:/language/ControlPanel/Settings/NavigationHistory/\n<$link to=\"$:/config/Navigation/UpdateHistory\"><<lingo Hint>></$link>\n\n<$radio tiddler=\"$:/config/Navigation/UpdateHistory\" value=\"yes\"> <<lingo Yes/Description>> </$radio>\n\n<$radio tiddler=\"$:/config/Navigation/UpdateHistory\" value=\"no\"> <<lingo No/Description>> </$radio>\n" }, "$:/core/ui/ControlPanel/Settings/PerformanceInstrumentation": { "title": "$:/core/ui/ControlPanel/Settings/PerformanceInstrumentation", "tags": "$:/tags/ControlPanel/Settings", "caption": "{{$:/language/ControlPanel/Settings/PerformanceInstrumentation/Caption}}", "text": "\\define lingo-base() $:/language/ControlPanel/Settings/PerformanceInstrumentation/\n<<lingo Hint>>\n\n<$checkbox tiddler=\"$:/config/Performance/Instrumentation\" field=\"text\" checked=\"yes\" unchecked=\"no\" default=\"no\"> <$link to=\"$:/config/Performance/Instrumentation\"><<lingo Description>></$link> </$checkbox>\n" }, "$:/core/ui/ControlPanel/Settings/TitleLinks": { "title": "$:/core/ui/ControlPanel/Settings/TitleLinks", "tags": "$:/tags/ControlPanel/Settings", "caption": "{{$:/language/ControlPanel/Settings/TitleLinks/Caption}}", "text": "\\define lingo-base() $:/language/ControlPanel/Settings/TitleLinks/\n<$link to=\"$:/config/Tiddlers/TitleLinks\"><<lingo Hint>></$link>\n\n<$radio tiddler=\"$:/config/Tiddlers/TitleLinks\" value=\"yes\"> <<lingo Yes/Description>> </$radio>\n\n<$radio tiddler=\"$:/config/Tiddlers/TitleLinks\" value=\"no\"> <<lingo No/Description>> </$radio>\n" }, "$:/core/ui/ControlPanel/Settings/ToolbarButtonStyle": { "title": "$:/core/ui/ControlPanel/Settings/ToolbarButtonStyle", "tags": "$:/tags/ControlPanel/Settings", "caption": "{{$:/language/ControlPanel/Settings/ToolbarButtonStyle/Caption}}", "text": "\\define lingo-base() $:/language/ControlPanel/Settings/ToolbarButtonStyle/\n<$link to=\"$:/config/Toolbar/ButtonClass\"><<lingo \"Hint\">></$link>\n\n<$select tiddler=\"$:/config/Toolbar/ButtonClass\">\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/ToolbarButtonStyle]]\">\n<option value={{!!text}}>{{!!caption}}</option>\n</$list>\n</$select>\n" }, "$:/core/ui/ControlPanel/Settings/ToolbarButtons": { "title": "$:/core/ui/ControlPanel/Settings/ToolbarButtons", "tags": "$:/tags/ControlPanel/Settings", "caption": "{{$:/language/ControlPanel/Settings/ToolbarButtons/Caption}}", "text": "\\define lingo-base() $:/language/ControlPanel/Settings/ToolbarButtons/\n<<lingo Hint>>\n\n<$checkbox tiddler=\"$:/config/Toolbar/Icons\" field=\"text\" checked=\"yes\" unchecked=\"no\" default=\"yes\"> <$link to=\"$:/config/Toolbar/Icons\"><<lingo Icons/Description>></$link> </$checkbox>\n\n<$checkbox tiddler=\"$:/config/Toolbar/Text\" field=\"text\" checked=\"yes\" unchecked=\"no\" default=\"no\"> <$link to=\"$:/config/Toolbar/Text\"><<lingo Text/Description>></$link> </$checkbox>\n" }, "$:/core/ui/ControlPanel/Settings": { "title": "$:/core/ui/ControlPanel/Settings", "tags": "$:/tags/ControlPanel", "caption": "{{$:/language/ControlPanel/Settings/Caption}}", "text": "\\define lingo-base() $:/language/ControlPanel/Settings/\n\n<<lingo Hint>>\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/ControlPanel/Settings]]\">\n\n<div style=\"border-top:1px solid #eee;\">\n\n!! <$link><$transclude field=\"caption\"/></$link>\n\n<$transclude/>\n\n</div>\n\n</$list>\n" }, "$:/core/ui/ControlPanel/StoryView": { "title": "$:/core/ui/ControlPanel/StoryView", "tags": "$:/tags/ControlPanel/Appearance", "caption": "{{$:/language/ControlPanel/StoryView/Caption}}", "text": "{{$:/snippets/viewswitcher}}\n" }, "$:/core/ui/ControlPanel/Theme": { "title": "$:/core/ui/ControlPanel/Theme", "tags": "$:/tags/ControlPanel/Appearance", "caption": "{{$:/language/ControlPanel/Theme/Caption}}", "text": "{{$:/snippets/themeswitcher}}\n" }, "$:/core/ui/ControlPanel/TiddlerFields": { "title": "$:/core/ui/ControlPanel/TiddlerFields", "tags": "$:/tags/ControlPanel/Advanced", "caption": "{{$:/language/ControlPanel/TiddlerFields/Caption}}", "text": "\\define lingo-base() $:/language/ControlPanel/\n\n<<lingo TiddlerFields/Hint>>\n\n{{$:/snippets/allfields}}" }, "$:/core/ui/ControlPanel/Toolbars/EditToolbar": { "title": "$:/core/ui/ControlPanel/Toolbars/EditToolbar", "tags": "$:/tags/ControlPanel/Toolbars", "caption": "{{$:/language/ControlPanel/Toolbars/EditToolbar/Caption}}", "text": "\\define lingo-base() $:/language/TiddlerInfo/\n\\define config-title()\n$:/config/EditToolbarButtons/Visibility/$(listItem)$\n\\end\n\n{{$:/language/ControlPanel/Toolbars/EditToolbar/Hint}}\n\n<$set name=\"tv-config-toolbar-icons\" value=\"yes\">\n\n<$set name=\"tv-config-toolbar-text\" value=\"yes\">\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/EditToolbar]!has[draft.of]]\" variable=\"listItem\">\n\n<$checkbox tiddler=<<config-title>> field=\"text\" checked=\"show\" unchecked=\"hide\" default=\"show\"/> <$transclude tiddler=<<listItem>> field=\"caption\"/> <i class=\"tc-muted\">-- <$transclude tiddler=<<listItem>> field=\"description\"/></i>\n\n</$list>\n\n</$set>\n\n</$set>\n" }, "$:/core/ui/ControlPanel/Toolbars/EditorToolbar": { "title": "$:/core/ui/ControlPanel/Toolbars/EditorToolbar", "tags": "$:/tags/ControlPanel/Toolbars", "caption": "{{$:/language/ControlPanel/Toolbars/EditorToolbar/Caption}}", "text": "\\define lingo-base() $:/language/TiddlerInfo/\n\n\\define config-title()\n$:/config/EditorToolbarButtons/Visibility/$(listItem)$\n\\end\n\n\\define toolbar-button()\n<$checkbox tiddler=<<config-title>> field=\"text\" checked=\"show\" unchecked=\"hide\" default=\"show\"> <$transclude tiddler={{$(listItem)$!!icon}}/> <$transclude tiddler=<<listItem>> field=\"caption\"/> -- <i class=\"tc-muted\"><$transclude tiddler=<<listItem>> field=\"description\"/></i></$checkbox>\n\\end\n\n{{$:/language/ControlPanel/Toolbars/EditorToolbar/Hint}}\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/EditorToolbar]!has[draft.of]]\" variable=\"listItem\">\n\n<<toolbar-button>>\n\n</$list>\n" }, "$:/core/ui/ControlPanel/Toolbars/PageControls": { "title": "$:/core/ui/ControlPanel/Toolbars/PageControls", "tags": "$:/tags/ControlPanel/Toolbars", "caption": "{{$:/language/ControlPanel/Toolbars/PageControls/Caption}}", "text": "\\define lingo-base() $:/language/TiddlerInfo/\n\\define config-title()\n$:/config/PageControlButtons/Visibility/$(listItem)$\n\\end\n\n{{$:/language/ControlPanel/Toolbars/PageControls/Hint}}\n\n<$set name=\"tv-config-toolbar-icons\" value=\"yes\">\n\n<$set name=\"tv-config-toolbar-text\" value=\"yes\">\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/PageControls]!has[draft.of]]\" variable=\"listItem\">\n\n<$checkbox tiddler=<<config-title>> field=\"text\" checked=\"show\" unchecked=\"hide\" default=\"show\"/> <$transclude tiddler=<<listItem>> field=\"caption\"/> <i class=\"tc-muted\">-- <$transclude tiddler=<<listItem>> field=\"description\"/></i>\n\n</$list>\n\n</$set>\n\n</$set>\n" }, "$:/core/ui/ControlPanel/Toolbars/ViewToolbar": { "title": "$:/core/ui/ControlPanel/Toolbars/ViewToolbar", "tags": "$:/tags/ControlPanel/Toolbars", "caption": "{{$:/language/ControlPanel/Toolbars/ViewToolbar/Caption}}", "text": "\\define lingo-base() $:/language/TiddlerInfo/\n\\define config-title()\n$:/config/ViewToolbarButtons/Visibility/$(listItem)$\n\\end\n\n{{$:/language/ControlPanel/Toolbars/ViewToolbar/Hint}}\n\n<$set name=\"tv-config-toolbar-icons\" value=\"yes\">\n\n<$set name=\"tv-config-toolbar-text\" value=\"yes\">\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/ViewToolbar]!has[draft.of]]\" variable=\"listItem\">\n\n<$checkbox tiddler=<<config-title>> field=\"text\" checked=\"show\" unchecked=\"hide\" default=\"show\"/> <$transclude tiddler=<<listItem>> field=\"caption\"/> <i class=\"tc-muted\">-- <$transclude tiddler=<<listItem>> field=\"description\"/></i>\n\n</$list>\n\n</$set>\n\n</$set>\n" }, "$:/core/ui/ControlPanel/Toolbars": { "title": "$:/core/ui/ControlPanel/Toolbars", "tags": "$:/tags/ControlPanel/Appearance", "caption": "{{$:/language/ControlPanel/Toolbars/Caption}}", "text": "{{$:/language/ControlPanel/Toolbars/Hint}}\n\n<div class=\"tc-control-panel\">\n<<tabs \"[all[shadows+tiddlers]tag[$:/tags/ControlPanel/Toolbars]!has[draft.of]]\" \"$:/core/ui/ControlPanel/Toolbars/ViewToolbar\" \"$:/state/tabs/controlpanel/toolbars\" \"tc-vertical\">>\n</div>\n" }, "$:/ControlPanel": { "title": "$:/ControlPanel", "icon": "$:/core/images/options-button", "color": "#bbb", "text": "<div class=\"tc-control-panel\">\n<<tabs \"[all[shadows+tiddlers]tag[$:/tags/ControlPanel]!has[draft.of]]\" \"$:/core/ui/ControlPanel/Info\">>\n</div>\n" }, "$:/core/ui/DefaultSearchResultList": { "title": "$:/core/ui/DefaultSearchResultList", "tags": "$:/tags/SearchResults", "caption": "{{$:/language/Search/DefaultResults/Caption}}", "text": "\\define searchResultList()\n//<small>{{$:/language/Search/Matches/Title}}</small>//\n\n<$list filter=\"[!is[system]search:title{$(searchTiddler)$}sort[title]limit[250]]\" template=\"$:/core/ui/ListItemTemplate\"/>\n\n//<small>{{$:/language/Search/Matches/All}}</small>//\n\n<$list filter=\"[!is[system]search{$(searchTiddler)$}sort[title]limit[250]]\" template=\"$:/core/ui/ListItemTemplate\"/>\n\n\\end\n<<searchResultList>>\n" }, "$:/core/ui/EditTemplate/body/preview/output": { "title": "$:/core/ui/EditTemplate/body/preview/output", "tags": "$:/tags/EditPreview", "caption": "{{$:/language/EditTemplate/Body/Preview/Type/Output}}", "text": "<$set name=\"tv-tiddler-preview\" value=\"yes\">\n\n<$transclude />\n\n</$set>\n" }, "$:/core/ui/EditTemplate/body/editor": { "title": "$:/core/ui/EditTemplate/body/editor", "text": "<$edit\n\n field=\"text\"\n class=\"tc-edit-texteditor\"\n placeholder={{$:/language/EditTemplate/Body/Placeholder}}\n\n><$set\n\n name=\"targetTiddler\"\n value=<<currentTiddler>>\n\n><$list\n\n filter=\"[all[shadows+tiddlers]tag[$:/tags/EditorToolbar]!has[draft.of]]\"\n\n><$reveal\n\n type=\"nomatch\"\n state=<<config-visibility-title>>\n text=\"hide\"\n class=\"tc-text-editor-toolbar-item-wrapper\"\n\n><$transclude\n\n tiddler=\"$:/core/ui/EditTemplate/body/toolbar/button\"\n mode=\"inline\"\n\n/></$reveal></$list></$set></$edit>\n" }, "$:/core/ui/EditTemplate/body/toolbar/button": { "title": "$:/core/ui/EditTemplate/body/toolbar/button", "text": "\\define toolbar-button-icon()\n<$list\n\n filter=\"[all[current]!has[custom-icon]]\"\n variable=\"no-custom-icon\"\n\n><$transclude\n\n tiddler={{!!icon}}\n\n/></$list>\n\\end\n\n\\define toolbar-button-tooltip()\n{{!!description}}<$macrocall $name=\"displayshortcuts\" $output=\"text/plain\" shortcuts={{!!shortcuts}} prefix=\"` - [\" separator=\"] [\" suffix=\"]`\"/>\n\\end\n\n\\define toolbar-button()\n<$list\n\n filter={{!!condition}}\n variable=\"list-condition\"\n\n><$wikify\n\n name=\"tooltip-text\"\n text=<<toolbar-button-tooltip>>\n mode=\"inline\"\n output=\"text\"\n\n><$list\n\n filter=\"[all[current]!has[dropdown]]\"\n variable=\"no-dropdown\"\n\n><$button\n\n class=\"tc-btn-invisible $(buttonClasses)$\"\n tooltip=<<tooltip-text>>\n\n><span\n\n data-tw-keyboard-shortcut={{!!shortcuts}}\n\n/><<toolbar-button-icon>><$transclude\n\n tiddler=<<currentTiddler>>\n field=\"text\"\n\n/></$button></$list><$list\n\n filter=\"[all[current]has[dropdown]]\"\n variable=\"dropdown\"\n\n><$set\n\n name=\"dropdown-state\"\n value=<<qualify \"$:/state/EditorToolbarDropdown\">>\n\n><$button\n\n popup=<<dropdown-state>>\n class=\"tc-popup-keep tc-btn-invisible $(buttonClasses)$\"\n selectedClass=\"tc-selected\"\n tooltip=<<tooltip-text>>\n\n><span\n\n data-tw-keyboard-shortcut={{!!shortcuts}}\n\n/><<toolbar-button-icon>><$transclude\n\n tiddler=<<currentTiddler>>\n field=\"text\"\n\n/></$button><$reveal\n\n state=<<dropdown-state>>\n type=\"popup\"\n position=\"below\"\n animate=\"yes\"\n tag=\"span\"\n\n><div\n\n class=\"tc-drop-down tc-popup-keep\"\n\n><$transclude\n\n tiddler={{!!dropdown}}\n mode=\"block\"\n\n/></div></$reveal></$set></$list></$wikify></$list>\n\\end\n\n\\define toolbar-button-outer()\n<$set\n\n name=\"buttonClasses\"\n value={{!!button-classes}}\n\n><<toolbar-button>></$set>\n\\end\n\n<<toolbar-button-outer>>" }, "$:/core/ui/EditTemplate/body": { "title": "$:/core/ui/EditTemplate/body", "tags": "$:/tags/EditTemplate", "text": "\\define lingo-base() $:/language/EditTemplate/Body/\n\\define config-visibility-title()\n$:/config/EditorToolbarButtons/Visibility/$(currentTiddler)$\n\\end\n<$list filter=\"[is[current]has[_canonical_uri]]\">\n\n<div class=\"tc-message-box\">\n\n<<lingo External/Hint>>\n\n<a href={{!!_canonical_uri}}><$text text={{!!_canonical_uri}}/></a>\n\n<$edit-text field=\"_canonical_uri\" class=\"tc-edit-fields\"></$edit-text>\n\n</div>\n\n</$list>\n\n<$list filter=\"[is[current]!has[_canonical_uri]]\">\n\n<$reveal state=\"$:/state/showeditpreview\" type=\"match\" text=\"yes\">\n\n<div class=\"tc-tiddler-preview\">\n\n<$transclude tiddler=\"$:/core/ui/EditTemplate/body/editor\" mode=\"inline\"/>\n\n<div class=\"tc-tiddler-preview-preview\">\n\n<$transclude tiddler={{$:/state/editpreviewtype}} mode=\"inline\">\n\n<$transclude tiddler=\"$:/core/ui/EditTemplate/body/preview/output\" mode=\"inline\"/>\n\n</$transclude>\n\n</div>\n\n</div>\n\n</$reveal>\n\n<$reveal state=\"$:/state/showeditpreview\" type=\"nomatch\" text=\"yes\">\n\n<$transclude tiddler=\"$:/core/ui/EditTemplate/body/editor\" mode=\"inline\"/>\n\n</$reveal>\n\n</$list>\n" }, "$:/core/ui/EditTemplate/controls": { "title": "$:/core/ui/EditTemplate/controls", "tags": "$:/tags/EditTemplate", "text": "\\define config-title()\n$:/config/EditToolbarButtons/Visibility/$(listItem)$\n\\end\n<div class=\"tc-tiddler-title tc-tiddler-edit-title\">\n<$view field=\"title\"/>\n<span class=\"tc-tiddler-controls tc-titlebar\"><$list filter=\"[all[shadows+tiddlers]tag[$:/tags/EditToolbar]!has[draft.of]]\" variable=\"listItem\"><$reveal type=\"nomatch\" state=<<config-title>> text=\"hide\"><$transclude tiddler=<<listItem>>/></$reveal></$list></span>\n<div style=\"clear: both;\"></div>\n</div>\n" }, "$:/core/ui/EditTemplate/fields": { "title": "$:/core/ui/EditTemplate/fields", "tags": "$:/tags/EditTemplate", "text": "\\define lingo-base() $:/language/EditTemplate/\n\\define config-title()\n$:/config/EditTemplateFields/Visibility/$(currentField)$\n\\end\n\n\\define config-filter()\n[[hide]] -[title{$(config-title)$}]\n\\end\n\n\\define new-field-inner()\n<$reveal type=\"nomatch\" text=\"\" default=<<name>>>\n<$button>\n<$action-sendmessage $message=\"tm-add-field\" $name=<<name>> $value=<<value>>/>\n<$action-deletetiddler $tiddler=\"$:/temp/newfieldname\"/>\n<$action-deletetiddler $tiddler=\"$:/temp/newfieldvalue\"/>\n<<lingo Fields/Add/Button>>\n</$button>\n</$reveal>\n<$reveal type=\"match\" text=\"\" default=<<name>>>\n<$button>\n<<lingo Fields/Add/Button>>\n</$button>\n</$reveal>\n\\end\n\n\\define new-field()\n<$set name=\"name\" value={{$:/temp/newfieldname}}>\n<$set name=\"value\" value={{$:/temp/newfieldvalue}}>\n<<new-field-inner>>\n</$set>\n</$set>\n\\end\n\n<div class=\"tc-edit-fields\">\n<table class=\"tc-edit-fields\">\n<tbody>\n<$list filter=\"[all[current]fields[]] +[sort[title]]\" variable=\"currentField\">\n<$list filter=<<config-filter>> variable=\"temp\">\n<tr class=\"tc-edit-field\">\n<td class=\"tc-edit-field-name\">\n<$text text=<<currentField>>/>:</td>\n<td class=\"tc-edit-field-value\">\n<$edit-text tiddler=<<currentTiddler>> field=<<currentField>> placeholder={{$:/language/EditTemplate/Fields/Add/Value/Placeholder}}/>\n</td>\n<td class=\"tc-edit-field-remove\">\n<$button class=\"tc-btn-invisible\" tooltip={{$:/language/EditTemplate/Field/Remove/Hint}} aria-label={{$:/language/EditTemplate/Field/Remove/Caption}}>\n<$action-deletefield $field=<<currentField>>/>\n{{$:/core/images/delete-button}}\n</$button>\n</td>\n</tr>\n</$list>\n</$list>\n</tbody>\n</table>\n</div>\n\n<$fieldmangler>\n<div class=\"tc-edit-field-add\">\n<em class=\"tc-edit\">\n<<lingo Fields/Add/Prompt>>\n</em>\n<span class=\"tc-edit-field-add-name\">\n<$edit-text tiddler=\"$:/temp/newfieldname\" tag=\"input\" default=\"\" placeholder={{$:/language/EditTemplate/Fields/Add/Name/Placeholder}} focusPopup=<<qualify \"$:/state/popup/field-dropdown\">> class=\"tc-edit-texteditor tc-popup-handle\"/>\n</span>\n<$button popup=<<qualify \"$:/state/popup/field-dropdown\">> class=\"tc-btn-invisible tc-btn-dropdown\" tooltip={{$:/language/EditTemplate/Field/Dropdown/Hint}} aria-label={{$:/language/EditTemplate/Field/Dropdown/Caption}}>{{$:/core/images/down-arrow}}</$button>\n<$reveal state=<<qualify \"$:/state/popup/field-dropdown\">> type=\"nomatch\" text=\"\" default=\"\">\n<div class=\"tc-block-dropdown tc-edit-type-dropdown\">\n<$linkcatcher to=\"$:/temp/newfieldname\">\n<div class=\"tc-dropdown-item\">\n<<lingo Fields/Add/Dropdown/User>>\n</div>\n<$list filter=\"[!is[shadow]!is[system]fields[]sort[]] -created -creator -draft.of -draft.title -modified -modifier -tags -text -title -type\" variable=\"currentField\">\n<$link to=<<currentField>>>\n<<currentField>>\n</$link>\n</$list>\n<div class=\"tc-dropdown-item\">\n<<lingo Fields/Add/Dropdown/System>>\n</div>\n<$list filter=\"[fields[]sort[]] -[!is[shadow]!is[system]fields[]]\" variable=\"currentField\">\n<$link to=<<currentField>>>\n<<currentField>>\n</$link>\n</$list>\n</$linkcatcher>\n</div>\n</$reveal>\n<span class=\"tc-edit-field-add-value\">\n<$edit-text tiddler=\"$:/temp/newfieldvalue\" tag=\"input\" default=\"\" placeholder={{$:/language/EditTemplate/Fields/Add/Value/Placeholder}} class=\"tc-edit-texteditor\"/>\n</span>\n<span class=\"tc-edit-field-add-button\">\n<$macrocall $name=\"new-field\"/>\n</span>\n</div>\n</$fieldmangler>\n\n" }, "$:/core/ui/EditTemplate/shadow": { "title": "$:/core/ui/EditTemplate/shadow", "tags": "$:/tags/EditTemplate", "text": "\\define lingo-base() $:/language/EditTemplate/Shadow/\n\\define pluginLinkBody()\n<$link to=\"\"\"$(pluginTitle)$\"\"\">\n<$text text=\"\"\"$(pluginTitle)$\"\"\"/>\n</$link>\n\\end\n<$list filter=\"[all[current]get[draft.of]is[shadow]!is[tiddler]]\">\n\n<$list filter=\"[all[current]shadowsource[]]\" variable=\"pluginTitle\">\n\n<$set name=\"pluginLink\" value=<<pluginLinkBody>>>\n<div class=\"tc-message-box\">\n\n<<lingo Warning>>\n\n</div>\n</$set>\n</$list>\n\n</$list>\n\n<$list filter=\"[all[current]get[draft.of]is[shadow]is[tiddler]]\">\n\n<$list filter=\"[all[current]shadowsource[]]\" variable=\"pluginTitle\">\n\n<$set name=\"pluginLink\" value=<<pluginLinkBody>>>\n<div class=\"tc-message-box\">\n\n<<lingo OverriddenWarning>>\n\n</div>\n</$set>\n</$list>\n\n</$list>" }, "$:/core/ui/EditTemplate/tags": { "title": "$:/core/ui/EditTemplate/tags", "tags": "$:/tags/EditTemplate", "text": "\\define lingo-base() $:/language/EditTemplate/\n\\define tag-styles()\nbackground-color:$(backgroundColor)$;\nfill:$(foregroundColor)$;\ncolor:$(foregroundColor)$;\n\\end\n\\define tag-body-inner(colour,fallbackTarget,colourA,colourB)\n<$vars foregroundColor=<<contrastcolour target:\"\"\"$colour$\"\"\" fallbackTarget:\"\"\"$fallbackTarget$\"\"\" colourA:\"\"\"$colourA$\"\"\" colourB:\"\"\"$colourB$\"\"\">> backgroundColor=\"\"\"$colour$\"\"\">\n<span style=<<tag-styles>> class=\"tc-tag-label\">\n<$view field=\"title\" format=\"text\" />\n<$button message=\"tm-remove-tag\" param={{!!title}} class=\"tc-btn-invisible tc-remove-tag-button\">×</$button>\n</span>\n</$vars>\n\\end\n\\define tag-body(colour,palette)\n<$macrocall $name=\"tag-body-inner\" colour=\"\"\"$colour$\"\"\" fallbackTarget={{$palette$##tag-background}} colourA={{$palette$##foreground}} colourB={{$palette$##background}}/>\n\\end\n<div class=\"tc-edit-tags\">\n<$fieldmangler>\n<$list filter=\"[all[current]tags[]sort[title]]\" storyview=\"pop\">\n<$macrocall $name=\"tag-body\" colour={{!!color}} palette={{$:/palette}}/>\n</$list>\n\n<div class=\"tc-edit-add-tag\">\n<span class=\"tc-add-tag-name\">\n<$edit-text tiddler=\"$:/temp/NewTagName\" tag=\"input\" default=\"\" placeholder={{$:/language/EditTemplate/Tags/Add/Placeholder}} focusPopup=<<qualify \"$:/state/popup/tags-auto-complete\">> class=\"tc-edit-texteditor tc-popup-handle\"/>\n</span> <$button popup=<<qualify \"$:/state/popup/tags-auto-complete\">> class=\"tc-btn-invisible tc-btn-dropdown\" tooltip={{$:/language/EditTemplate/Tags/Dropdown/Hint}} aria-label={{$:/language/EditTemplate/Tags/Dropdown/Caption}}>{{$:/core/images/down-arrow}}</$button> <span class=\"tc-add-tag-button\">\n<$button message=\"tm-add-tag\" param={{$:/temp/NewTagName}} set=\"$:/temp/NewTagName\" setTo=\"\" class=\"\">\n<<lingo Tags/Add/Button>>\n</$button>\n</span>\n</div>\n\n<div class=\"tc-block-dropdown-wrapper\">\n<$reveal state=<<qualify \"$:/state/popup/tags-auto-complete\">> type=\"nomatch\" text=\"\" default=\"\">\n<div class=\"tc-block-dropdown\">\n<$linkcatcher set=\"$:/temp/NewTagName\" setTo=\"\" message=\"tm-add-tag\">\n<$list filter=\"[tags[]!is[system]search:title{$:/temp/NewTagName}sort[]]\">\n{{||$:/core/ui/Components/tag-link}}\n</$list>\n<hr>\n<$list filter=\"[tags[]is[system]search:title{$:/temp/NewTagName}sort[]]\">\n{{||$:/core/ui/Components/tag-link}}\n</$list>\n</$linkcatcher>\n</div>\n</$reveal>\n</div>\n</$fieldmangler>\n</div>" }, "$:/core/ui/EditTemplate/title": { "title": "$:/core/ui/EditTemplate/title", "tags": "$:/tags/EditTemplate", "text": "<$vars pattern=\"\"\"[\\|\\[\\]{}]\"\"\" bad-chars=\"\"\"`| [ ] { }`\"\"\">\n\n<$list filter=\"[is[current]regexp:draft.title<pattern>]\" variable=\"listItem\">\n\n<div class=\"tc-message-box\">\n\n{{$:/language/EditTemplate/Title/BadCharacterWarning}}\n\n</div>\n\n</$list>\n\n</$vars>\n\n<$edit-text field=\"draft.title\" class=\"tc-titlebar tc-edit-texteditor\" focus=\"true\"/>\n" }, "$:/core/ui/EditTemplate/type": { "title": "$:/core/ui/EditTemplate/type", "tags": "$:/tags/EditTemplate", "text": "\\define lingo-base() $:/language/EditTemplate/\n<div class=\"tc-type-selector\"><$fieldmangler>\n<em class=\"tc-edit\"><<lingo Type/Prompt>></em> <$edit-text field=\"type\" tag=\"input\" default=\"\" placeholder={{$:/language/EditTemplate/Type/Placeholder}} focusPopup=<<qualify \"$:/state/popup/type-dropdown\">> class=\"tc-edit-typeeditor tc-popup-handle\"/> <$button popup=<<qualify \"$:/state/popup/type-dropdown\">> class=\"tc-btn-invisible tc-btn-dropdown\" tooltip={{$:/language/EditTemplate/Type/Dropdown/Hint}} aria-label={{$:/language/EditTemplate/Type/Dropdown/Caption}}>{{$:/core/images/down-arrow}}</$button> <$button message=\"tm-remove-field\" param=\"type\" class=\"tc-btn-invisible tc-btn-icon\" tooltip={{$:/language/EditTemplate/Type/Delete/Hint}} aria-label={{$:/language/EditTemplate/Type/Delete/Caption}}>{{$:/core/images/delete-button}}</$button>\n</$fieldmangler></div>\n\n<div class=\"tc-block-dropdown-wrapper\">\n<$reveal state=<<qualify \"$:/state/popup/type-dropdown\">> type=\"nomatch\" text=\"\" default=\"\">\n<div class=\"tc-block-dropdown tc-edit-type-dropdown\">\n<$linkcatcher to=\"!!type\">\n<$list filter='[all[shadows+tiddlers]prefix[$:/language/Docs/Types/]each[group]sort[group]]'>\n<div class=\"tc-dropdown-item\">\n<$text text={{!!group}}/>\n</div>\n<$list filter=\"[all[shadows+tiddlers]prefix[$:/language/Docs/Types/]group{!!group}] +[sort[description]]\"><$link to={{!!name}}><$view field=\"description\"/> (<$view field=\"name\"/>)</$link>\n</$list>\n</$list>\n</$linkcatcher>\n</div>\n</$reveal>\n</div>" }, "$:/core/ui/EditTemplate": { "title": "$:/core/ui/EditTemplate", "text": "\\define frame-classes()\ntc-tiddler-frame tc-tiddler-edit-frame $(missingTiddlerClass)$ $(shadowTiddlerClass)$ $(systemTiddlerClass)$\n\\end\n<div class=<<frame-classes>>>\n<$set name=\"storyTiddler\" value=<<currentTiddler>>>\n<$keyboard key=\"((cancel-edit-tiddler))\" message=\"tm-cancel-tiddler\">\n<$keyboard key=\"((save-tiddler))\" message=\"tm-save-tiddler\">\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/EditTemplate]!has[draft.of]]\" variable=\"listItem\">\n<$transclude tiddler=<<listItem>>/>\n</$list>\n</$keyboard>\n</$keyboard>\n</$set>\n</div>\n" }, "$:/core/ui/Buttons/cancel": { "title": "$:/core/ui/Buttons/cancel", "tags": "$:/tags/EditToolbar", "caption": "{{$:/core/images/cancel-button}} {{$:/language/Buttons/Cancel/Caption}}", "description": "{{$:/language/Buttons/Cancel/Hint}}", "text": "<$button message=\"tm-cancel-tiddler\" tooltip={{$:/language/Buttons/Cancel/Hint}} aria-label={{$:/language/Buttons/Cancel/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\">\n{{$:/core/images/cancel-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Cancel/Caption}}/></span>\n</$list>\n</$button>" }, "$:/core/ui/Buttons/delete": { "title": "$:/core/ui/Buttons/delete", "tags": "$:/tags/EditToolbar $:/tags/ViewToolbar", "caption": "{{$:/core/images/delete-button}} {{$:/language/Buttons/Delete/Caption}}", "description": "{{$:/language/Buttons/Delete/Hint}}", "text": "<$button message=\"tm-delete-tiddler\" tooltip={{$:/language/Buttons/Delete/Hint}} aria-label={{$:/language/Buttons/Delete/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\">\n{{$:/core/images/delete-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Delete/Caption}}/></span>\n</$list>\n</$button>" }, "$:/core/ui/Buttons/save": { "title": "$:/core/ui/Buttons/save", "tags": "$:/tags/EditToolbar", "caption": "{{$:/core/images/done-button}} {{$:/language/Buttons/Save/Caption}}", "description": "{{$:/language/Buttons/Save/Hint}}", "text": "<$fieldmangler><$button tooltip={{$:/language/Buttons/Save/Hint}} aria-label={{$:/language/Buttons/Save/Caption}} class=<<tv-config-toolbar-class>>>\n<$action-sendmessage $message=\"tm-add-tag\" $param={{$:/temp/NewTagName}}/>\n<$action-deletetiddler $tiddler=\"$:/temp/NewTagName\"/>\n<$action-sendmessage $message=\"tm-add-field\" $name={{$:/temp/newfieldname}} $value={{$:/temp/newfieldvalue}}/>\n<$action-deletetiddler $tiddler=\"$:/temp/newfieldname\"/>\n<$action-deletetiddler $tiddler=\"$:/temp/newfieldvalue\"/>\n<$action-sendmessage $message=\"tm-save-tiddler\"/>\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\">\n{{$:/core/images/done-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Save/Caption}}/></span>\n</$list>\n</$button>\n</$fieldmangler>\n" }, "$:/core/ui/EditorToolbar/bold": { "title": "$:/core/ui/EditorToolbar/bold", "tags": "$:/tags/EditorToolbar", "icon": "$:/core/images/bold", "caption": "{{$:/language/Buttons/Bold/Caption}}", "description": "{{$:/language/Buttons/Bold/Hint}}", "condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]", "shortcuts": "((bold))", "text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"wrap-selection\"\n\tprefix=\"''\"\n\tsuffix=\"''\"\n/>\n" }, "$:/core/ui/EditorToolbar/clear-dropdown": { "title": "$:/core/ui/EditorToolbar/clear-dropdown", "text": "''{{$:/language/Buttons/Clear/Hint}}''\n\n<div class=\"tc-colour-chooser\">\n\n<$macrocall $name=\"colour-picker\" actions=\"\"\"\n\n<$action-sendmessage\n\t$message=\"tm-edit-bitmap-operation\"\n\t$param=\"clear\"\n\tcolour=<<colour-picker-value>>\n/>\n\n<$action-deletetiddler\n\t$tiddler=<<dropdown-state>>\n/>\n\n\"\"\"/>\n\n</div>\n" }, "$:/core/ui/EditorToolbar/clear": { "title": "$:/core/ui/EditorToolbar/clear", "tags": "$:/tags/EditorToolbar", "icon": "$:/core/images/erase", "caption": "{{$:/language/Buttons/Clear/Caption}}", "description": "{{$:/language/Buttons/Clear/Hint}}", "condition": "[<targetTiddler>is[image]]", "dropdown": "$:/core/ui/EditorToolbar/clear-dropdown", "text": "" }, "$:/core/ui/EditorToolbar/editor-height-dropdown": { "title": "$:/core/ui/EditorToolbar/editor-height-dropdown", "text": "\\define lingo-base() $:/language/Buttons/EditorHeight/\n''<<lingo Hint>>''\n\n<$radio tiddler=\"$:/config/TextEditor/EditorHeight/Mode\" value=\"auto\"> {{$:/core/images/auto-height}} <<lingo Caption/Auto>></$radio>\n\n<$radio tiddler=\"$:/config/TextEditor/EditorHeight/Mode\" value=\"fixed\"> {{$:/core/images/fixed-height}} <<lingo Caption/Fixed>> <$edit-text tag=\"input\" tiddler=\"$:/config/TextEditor/EditorHeight/Height\" default=\"100px\"/></$radio>\n" }, "$:/core/ui/EditorToolbar/editor-height": { "title": "$:/core/ui/EditorToolbar/editor-height", "tags": "$:/tags/EditorToolbar", "icon": "$:/core/images/fixed-height", "custom-icon": "yes", "caption": "{{$:/language/Buttons/EditorHeight/Caption}}", "description": "{{$:/language/Buttons/EditorHeight/Hint}}", "condition": "[<targetTiddler>!is[image]]", "dropdown": "$:/core/ui/EditorToolbar/editor-height-dropdown", "text": "<$reveal tag=\"span\" state=\"$:/config/TextEditor/EditorHeight/Mode\" type=\"match\" text=\"fixed\">\n{{$:/core/images/fixed-height}}\n</$reveal>\n<$reveal tag=\"span\" state=\"$:/config/TextEditor/EditorHeight/Mode\" type=\"match\" text=\"auto\">\n{{$:/core/images/auto-height}}\n</$reveal>\n" }, "$:/core/ui/EditorToolbar/excise-dropdown": { "title": "$:/core/ui/EditorToolbar/excise-dropdown", "text": "\\define lingo-base() $:/language/Buttons/Excise/\n\n\\define body(config-title)\n''<<lingo Hint>>''\n\n<<lingo Caption/NewTitle>> <$edit-text tag=\"input\" tiddler=\"$config-title$/new-title\" default=\"\" focus=\"true\"/>\n\n<$set name=\"new-title\" value={{$config-title$/new-title}}>\n<$list filter=\"\"\"[<new-title>is[tiddler]]\"\"\">\n<div class=\"tc-error\">\n<<lingo Caption/TiddlerExists>>\n</div>\n</$list>\n</$set>\n\n<$checkbox tiddler=\"\"\"$config-title$/tagnew\"\"\" field=\"text\" checked=\"yes\" unchecked=\"no\" default=\"false\"> <<lingo Caption/Tag>></$checkbox>\n\n<<lingo Caption/Replace>> <$select tiddler=\"\"\"$config-title$/type\"\"\" default=\"transclude\">\n<option value=\"link\"><<lingo Caption/Replace/Link>></option>\n<option value=\"transclude\"><<lingo Caption/Replace/Transclusion>></option>\n<option value=\"macro\"><<lingo Caption/Replace/Macro>></option>\n</$select>\n\n<$reveal state=\"\"\"$config-title$/type\"\"\" type=\"match\" text=\"macro\">\n<<lingo Caption/MacroName>> <$edit-text tag=\"input\" tiddler=\"\"\"$config-title$/macro-title\"\"\" default=\"translink\"/>\n</$reveal>\n\n<$button>\n<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"excise\"\n\ttitle={{$config-title$/new-title}}\n\ttype={{$config-title$/type}}\n\tmacro={{$config-title$/macro-title}}\n\ttagnew={{$config-title$/tagnew}}\n/>\n<$action-deletetiddler\n\t$tiddler=<<qualify \"$:/state/Excise/NewTitle\">>\n/>\n<$action-deletetiddler\n\t$tiddler=<<dropdown-state>>\n/>\n<<lingo Caption/Excise>>\n</$button>\n\\end\n\n<$macrocall $name=\"body\" config-title=<<qualify \"$:/state/Excise/\">>/>\n" }, "$:/core/ui/EditorToolbar/excise": { "title": "$:/core/ui/EditorToolbar/excise", "tags": "$:/tags/EditorToolbar", "icon": "$:/core/images/excise", "caption": "{{$:/language/Buttons/Excise/Caption}}", "description": "{{$:/language/Buttons/Excise/Hint}}", "condition": "[<targetTiddler>!is[image]]", "shortcuts": "((excise))", "dropdown": "$:/core/ui/EditorToolbar/excise-dropdown", "text": "" }, "$:/core/ui/EditorToolbar/heading-1": { "title": "$:/core/ui/EditorToolbar/heading-1", "tags": "$:/tags/EditorToolbar", "icon": "$:/core/images/heading-1", "caption": "{{$:/language/Buttons/Heading1/Caption}}", "description": "{{$:/language/Buttons/Heading1/Hint}}", "condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]", "button-classes": "tc-text-editor-toolbar-item-start-group", "shortcuts": "((heading-1))", "text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"prefix-lines\"\n\tcharacter=\"!\"\n\tcount=\"1\"\n/>\n" }, "$:/core/ui/EditorToolbar/heading-2": { "title": "$:/core/ui/EditorToolbar/heading-2", "tags": "$:/tags/EditorToolbar", "icon": "$:/core/images/heading-2", "caption": "{{$:/language/Buttons/Heading2/Caption}}", "description": "{{$:/language/Buttons/Heading2/Hint}}", "condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]", "shortcuts": "((heading-2))", "text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"prefix-lines\"\n\tcharacter=\"!\"\n\tcount=\"2\"\n/>\n" }, "$:/core/ui/EditorToolbar/heading-3": { "title": "$:/core/ui/EditorToolbar/heading-3", "tags": "$:/tags/EditorToolbar", "icon": "$:/core/images/heading-3", "caption": "{{$:/language/Buttons/Heading3/Caption}}", "description": "{{$:/language/Buttons/Heading3/Hint}}", "condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]", "shortcuts": "((heading-3))", "text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"prefix-lines\"\n\tcharacter=\"!\"\n\tcount=\"3\"\n/>\n" }, "$:/core/ui/EditorToolbar/heading-4": { "title": "$:/core/ui/EditorToolbar/heading-4", "tags": "$:/tags/EditorToolbar", "icon": "$:/core/images/heading-4", "caption": "{{$:/language/Buttons/Heading4/Caption}}", "description": "{{$:/language/Buttons/Heading4/Hint}}", "condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]", "shortcuts": "((heading-4))", "text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"prefix-lines\"\n\tcharacter=\"!\"\n\tcount=\"4\"\n/>\n" }, "$:/core/ui/EditorToolbar/heading-5": { "title": "$:/core/ui/EditorToolbar/heading-5", "tags": "$:/tags/EditorToolbar", "icon": "$:/core/images/heading-5", "caption": "{{$:/language/Buttons/Heading5/Caption}}", "description": "{{$:/language/Buttons/Heading5/Hint}}", "condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]", "shortcuts": "((heading-5))", "text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"prefix-lines\"\n\tcharacter=\"!\"\n\tcount=\"5\"\n/>\n" }, "$:/core/ui/EditorToolbar/heading-6": { "title": "$:/core/ui/EditorToolbar/heading-6", "tags": "$:/tags/EditorToolbar", "icon": "$:/core/images/heading-6", "caption": "{{$:/language/Buttons/Heading6/Caption}}", "description": "{{$:/language/Buttons/Heading6/Hint}}", "condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]", "shortcuts": "((heading-6))", "text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"prefix-lines\"\n\tcharacter=\"!\"\n\tcount=\"6\"\n/>\n" }, "$:/core/ui/EditorToolbar/italic": { "title": "$:/core/ui/EditorToolbar/italic", "tags": "$:/tags/EditorToolbar", "icon": "$:/core/images/italic", "caption": "{{$:/language/Buttons/Italic/Caption}}", "description": "{{$:/language/Buttons/Italic/Hint}}", "condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]", "shortcuts": "((italic))", "text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"wrap-selection\"\n\tprefix=\"//\"\n\tsuffix=\"//\"\n/>\n" }, "$:/core/ui/EditorToolbar/line-width-dropdown": { "title": "$:/core/ui/EditorToolbar/line-width-dropdown", "text": "\\define lingo-base() $:/language/Buttons/LineWidth/\n\n\\define toolbar-line-width-inner()\n<$button tag=\"a\" tooltip=\"\"\"$(line-width)$\"\"\">\n\n<$action-setfield\n\t$tiddler=\"$:/config/BitmapEditor/LineWidth\"\n\t$value=\"$(line-width)$\"\n/>\n\n<$action-deletetiddler\n\t$tiddler=<<dropdown-state>>\n/>\n\n<div style=\"display: inline-block; margin: 4px calc(80px - $(line-width)$); background-color: #000; width: calc(100px + $(line-width)$ * 2); height: $(line-width)$; border-radius: 120px; vertical-align: middle;\"/>\n\n<span style=\"margin-left: 8px;\">\n\n<$text text=\"\"\"$(line-width)$\"\"\"/>\n\n<$reveal state=\"$:/config/BitmapEditor/LineWidth\" type=\"match\" text=\"\"\"$(line-width)$\"\"\" tag=\"span\">\n\n<$entity entity=\" \"/>\n\n<$entity entity=\"✓\"/>\n\n</$reveal>\n\n</span>\n\n</$button>\n\\end\n\n''<<lingo Hint>>''\n\n<$list filter={{$:/config/BitmapEditor/LineWidths}} variable=\"line-width\">\n\n<<toolbar-line-width-inner>>\n\n</$list>\n" }, "$:/core/ui/EditorToolbar/line-width": { "title": "$:/core/ui/EditorToolbar/line-width", "tags": "$:/tags/EditorToolbar", "icon": "$:/core/images/line-width", "caption": "{{$:/language/Buttons/LineWidth/Caption}}", "description": "{{$:/language/Buttons/LineWidth/Hint}}", "condition": "[<targetTiddler>is[image]]", "dropdown": "$:/core/ui/EditorToolbar/line-width-dropdown", "text": "<$text text={{$:/config/BitmapEditor/LineWidth}}/>" }, "$:/core/ui/EditorToolbar/link-dropdown": { "title": "$:/core/ui/EditorToolbar/link-dropdown", "text": "\\define lingo-base() $:/language/Buttons/Link/\n\n\\define link-actions()\n<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"make-link\"\n\ttext={{$(linkTiddler)$}}\n/>\n\n<$action-deletetiddler\n\t$tiddler=<<dropdown-state>>\n/>\n\n<$action-deletetiddler\n\t$tiddler=<<searchTiddler>>\n/>\n\n<$action-deletetiddler\n\t$tiddler=<<linkTiddler>>\n/>\n\\end\n\n\\define body(config-title)\n''<<lingo Hint>>''\n\n<$vars searchTiddler=\"\"\"$config-title$/search\"\"\" linkTiddler=\"\"\"$config-title$/link\"\"\">\n\n<$edit-text tiddler=<<searchTiddler>> type=\"search\" tag=\"input\" focus=\"true\" placeholder={{$:/language/Search/Search}} default=\"\"/>\n<$reveal tag=\"span\" state=<<searchTiddler>> type=\"nomatch\" text=\"\">\n<$button class=\"tc-btn-invisible\" style=\"width: auto; display: inline-block; background-colour: inherit;\">\n<$action-setfield $tiddler=<<searchTiddler>> text=\"\" />\n{{$:/core/images/close-button}}\n</$button>\n</$reveal>\n\n<$reveal tag=\"div\" state=<<searchTiddler>> type=\"nomatch\" text=\"\">\n\n<$linkcatcher actions=<<link-actions>> to=<<linkTiddler>>>\n\n{{$:/core/ui/SearchResults}}\n\n</$linkcatcher>\n\n</$reveal>\n\n</$vars>\n\n\\end\n\n<$macrocall $name=\"body\" config-title=<<qualify \"$:/state/Link/\">>/>\n" }, "$:/core/ui/EditorToolbar/link": { "title": "$:/core/ui/EditorToolbar/link", "tags": "$:/tags/EditorToolbar", "icon": "$:/core/images/link", "caption": "{{$:/language/Buttons/Link/Caption}}", "description": "{{$:/language/Buttons/Link/Hint}}", "condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]", "button-classes": "tc-text-editor-toolbar-item-start-group", "shortcuts": "((link))", "dropdown": "$:/core/ui/EditorToolbar/link-dropdown", "text": "" }, "$:/core/ui/EditorToolbar/list-bullet": { "title": "$:/core/ui/EditorToolbar/list-bullet", "tags": "$:/tags/EditorToolbar", "icon": "$:/core/images/list-bullet", "caption": "{{$:/language/Buttons/ListBullet/Caption}}", "description": "{{$:/language/Buttons/ListBullet/Hint}}", "condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]", "shortcuts": "((list-bullet))", "text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"prefix-lines\"\n\tcharacter=\"*\"\n\tcount=\"1\"\n/>\n" }, "$:/core/ui/EditorToolbar/list-number": { "title": "$:/core/ui/EditorToolbar/list-number", "tags": "$:/tags/EditorToolbar", "icon": "$:/core/images/list-number", "caption": "{{$:/language/Buttons/ListNumber/Caption}}", "description": "{{$:/language/Buttons/ListNumber/Hint}}", "condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]", "shortcuts": "((list-number))", "text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"prefix-lines\"\n\tcharacter=\"#\"\n\tcount=\"1\"\n/>\n" }, "$:/core/ui/EditorToolbar/mono-block": { "title": "$:/core/ui/EditorToolbar/mono-block", "tags": "$:/tags/EditorToolbar", "icon": "$:/core/images/mono-block", "caption": "{{$:/language/Buttons/MonoBlock/Caption}}", "description": "{{$:/language/Buttons/MonoBlock/Hint}}", "condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]", "button-classes": "tc-text-editor-toolbar-item-start-group", "shortcuts": "((mono-block))", "text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"wrap-lines\"\n\tprefix=\"\n```\"\n\tsuffix=\"```\"\n/>\n" }, "$:/core/ui/EditorToolbar/mono-line": { "title": "$:/core/ui/EditorToolbar/mono-line", "tags": "$:/tags/EditorToolbar", "icon": "$:/core/images/mono-line", "caption": "{{$:/language/Buttons/MonoLine/Caption}}", "description": "{{$:/language/Buttons/MonoLine/Hint}}", "condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]", "shortcuts": "((mono-line))", "text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"wrap-selection\"\n\tprefix=\"`\"\n\tsuffix=\"`\"\n/>\n" }, "$:/core/ui/EditorToolbar/more-dropdown": { "title": "$:/core/ui/EditorToolbar/more-dropdown", "text": "\\define config-title()\n$:/config/EditorToolbarButtons/Visibility/$(toolbarItem)$\n\\end\n\n\\define conditional-button()\n<$list filter={{$(toolbarItem)$!!condition}} variable=\"condition\">\n<$transclude tiddler=\"$:/core/ui/EditTemplate/body/toolbar/button\" mode=\"inline\"/> <$transclude tiddler=<<toolbarItem>> field=\"description\"/>\n</$list>\n\\end\n\n<div class=\"tc-text-editor-toolbar-more\">\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/EditorToolbar]!has[draft.of]] -[[$:/core/ui/EditorToolbar/more]]\">\n<$reveal type=\"match\" state=<<config-visibility-title>> text=\"hide\" tag=\"div\">\n<<conditional-button>>\n</$reveal>\n</$list>\n</div>\n" }, "$:/core/ui/EditorToolbar/more": { "title": "$:/core/ui/EditorToolbar/more", "tags": "$:/tags/EditorToolbar", "icon": "$:/core/images/down-arrow", "caption": "{{$:/language/Buttons/More/Caption}}", "description": "{{$:/language/Buttons/More/Hint}}", "condition": "[<targetTiddler>]", "dropdown": "$:/core/ui/EditorToolbar/more-dropdown", "text": "" }, "$:/core/ui/EditorToolbar/opacity-dropdown": { "title": "$:/core/ui/EditorToolbar/opacity-dropdown", "text": "\\define lingo-base() $:/language/Buttons/Opacity/\n\n\\define toolbar-opacity-inner()\n<$button tag=\"a\" tooltip=\"\"\"$(opacity)$\"\"\">\n\n<$action-setfield\n\t$tiddler=\"$:/config/BitmapEditor/Opacity\"\n\t$value=\"$(opacity)$\"\n/>\n\n<$action-deletetiddler\n\t$tiddler=<<dropdown-state>>\n/>\n\n<div style=\"display: inline-block; vertical-align: middle; background-color: $(current-paint-colour)$; opacity: $(opacity)$; width: 1em; height: 1em; border-radius: 50%;\"/>\n\n<span style=\"margin-left: 8px;\">\n\n<$text text=\"\"\"$(opacity)$\"\"\"/>\n\n<$reveal state=\"$:/config/BitmapEditor/Opacity\" type=\"match\" text=\"\"\"$(opacity)$\"\"\" tag=\"span\">\n\n<$entity entity=\" \"/>\n\n<$entity entity=\"✓\"/>\n\n</$reveal>\n\n</span>\n\n</$button>\n\\end\n\n\\define toolbar-opacity()\n''<<lingo Hint>>''\n\n<$list filter={{$:/config/BitmapEditor/Opacities}} variable=\"opacity\">\n\n<<toolbar-opacity-inner>>\n\n</$list>\n\\end\n\n<$set name=\"current-paint-colour\" value={{$:/config/BitmapEditor/Colour}}>\n\n<$set name=\"current-opacity\" value={{$:/config/BitmapEditor/Opacity}}>\n\n<<toolbar-opacity>>\n\n</$set>\n\n</$set>\n" }, "$:/core/ui/EditorToolbar/opacity": { "title": "$:/core/ui/EditorToolbar/opacity", "tags": "$:/tags/EditorToolbar", "icon": "$:/core/images/opacity", "caption": "{{$:/language/Buttons/Opacity/Caption}}", "description": "{{$:/language/Buttons/Opacity/Hint}}", "condition": "[<targetTiddler>is[image]]", "dropdown": "$:/core/ui/EditorToolbar/opacity-dropdown", "text": "<$text text={{$:/config/BitmapEditor/Opacity}}/>\n" }, "$:/core/ui/EditorToolbar/paint-dropdown": { "title": "$:/core/ui/EditorToolbar/paint-dropdown", "text": "''{{$:/language/Buttons/Paint/Hint}}''\n\n<$macrocall $name=\"colour-picker\" actions=\"\"\"\n\n<$action-setfield\n\t$tiddler=\"$:/config/BitmapEditor/Colour\"\n\t$value=<<colour-picker-value>>\n/>\n\n<$action-deletetiddler\n\t$tiddler=<<dropdown-state>>\n/>\n\n\"\"\"/>\n" }, "$:/core/ui/EditorToolbar/paint": { "title": "$:/core/ui/EditorToolbar/paint", "tags": "$:/tags/EditorToolbar", "icon": "$:/core/images/paint", "caption": "{{$:/language/Buttons/Paint/Caption}}", "description": "{{$:/language/Buttons/Paint/Hint}}", "condition": "[<targetTiddler>is[image]]", "dropdown": "$:/core/ui/EditorToolbar/paint-dropdown", "text": "\\define toolbar-paint()\n<div style=\"display: inline-block; vertical-align: middle; background-color: $(colour-picker-value)$; width: 1em; height: 1em; border-radius: 50%;\"/>\n\\end\n<$set name=\"colour-picker-value\" value={{$:/config/BitmapEditor/Colour}}>\n<<toolbar-paint>>\n</$set>\n" }, "$:/core/ui/EditorToolbar/picture-dropdown": { "title": "$:/core/ui/EditorToolbar/picture-dropdown", "text": "\\define replacement-text()\n[img[$(imageTitle)$]]\n\\end\n\n''{{$:/language/Buttons/Picture/Hint}}''\n\n<$macrocall $name=\"image-picker\" actions=\"\"\"\n\n<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"replace-selection\"\n\ttext=<<replacement-text>>\n/>\n\n<$action-deletetiddler\n\t$tiddler=<<dropdown-state>>\n/>\n\n\"\"\"/>\n" }, "$:/core/ui/EditorToolbar/picture": { "title": "$:/core/ui/EditorToolbar/picture", "tags": "$:/tags/EditorToolbar", "icon": "$:/core/images/picture", "caption": "{{$:/language/Buttons/Picture/Caption}}", "description": "{{$:/language/Buttons/Picture/Hint}}", "condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]", "shortcuts": "((picture))", "dropdown": "$:/core/ui/EditorToolbar/picture-dropdown", "text": "" }, "$:/core/ui/EditorToolbar/preview-type-dropdown": { "title": "$:/core/ui/EditorToolbar/preview-type-dropdown", "text": "\\define preview-type-button()\n<$button tag=\"a\">\n\n<$action-setfield $tiddler=\"$:/state/editpreviewtype\" $value=\"$(previewType)$\"/>\n\n<$action-deletetiddler\n\t$tiddler=<<dropdown-state>>\n/>\n\n<$transclude tiddler=<<previewType>> field=\"caption\" mode=\"inline\">\n\n<$view tiddler=<<previewType>> field=\"title\" mode=\"inline\"/>\n\n</$transclude> \n\n<$reveal tag=\"span\" state=\"$:/state/editpreviewtype\" type=\"match\" text=<<previewType>> default=\"$:/core/ui/EditTemplate/body/preview/output\">\n\n<$entity entity=\" \"/>\n\n<$entity entity=\"✓\"/>\n\n</$reveal>\n\n</$button>\n\\end\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/EditPreview]!has[draft.of]]\" variable=\"previewType\">\n\n<<preview-type-button>>\n\n</$list>\n" }, "$:/core/ui/EditorToolbar/preview-type": { "title": "$:/core/ui/EditorToolbar/preview-type", "tags": "$:/tags/EditorToolbar", "icon": "$:/core/images/chevron-down", "caption": "{{$:/language/Buttons/PreviewType/Caption}}", "description": "{{$:/language/Buttons/PreviewType/Hint}}", "condition": "[all[shadows+tiddlers]tag[$:/tags/EditPreview]!has[draft.of]butfirst[]limit[1]]", "button-classes": "tc-text-editor-toolbar-item-adjunct", "dropdown": "$:/core/ui/EditorToolbar/preview-type-dropdown" }, "$:/core/ui/EditorToolbar/preview": { "title": "$:/core/ui/EditorToolbar/preview", "tags": "$:/tags/EditorToolbar", "icon": "$:/core/images/preview-open", "custom-icon": "yes", "caption": "{{$:/language/Buttons/Preview/Caption}}", "description": "{{$:/language/Buttons/Preview/Hint}}", "condition": "[<targetTiddler>]", "button-classes": "tc-text-editor-toolbar-item-start-group", "shortcuts": "((preview))", "text": "<$reveal state=\"$:/state/showeditpreview\" type=\"match\" text=\"yes\" tag=\"span\">\n{{$:/core/images/preview-open}}\n<$action-setfield $tiddler=\"$:/state/showeditpreview\" $value=\"no\"/>\n</$reveal>\n<$reveal state=\"$:/state/showeditpreview\" type=\"nomatch\" text=\"yes\" tag=\"span\">\n{{$:/core/images/preview-closed}}\n<$action-setfield $tiddler=\"$:/state/showeditpreview\" $value=\"yes\"/>\n</$reveal>\n" }, "$:/core/ui/EditorToolbar/quote": { "title": "$:/core/ui/EditorToolbar/quote", "tags": "$:/tags/EditorToolbar", "icon": "$:/core/images/quote", "caption": "{{$:/language/Buttons/Quote/Caption}}", "description": "{{$:/language/Buttons/Quote/Hint}}", "condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]", "shortcuts": "((quote))", "text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"wrap-lines\"\n\tprefix=\"\n<<<\"\n\tsuffix=\"<<<\"\n/>\n" }, "$:/core/ui/EditorToolbar/size-dropdown": { "title": "$:/core/ui/EditorToolbar/size-dropdown", "text": "\\define lingo-base() $:/language/Buttons/Size/\n\n\\define toolbar-button-size-preset(config-title)\n<$set name=\"width\" filter=\"$(sizePair)$ +[first[]]\">\n\n<$set name=\"height\" filter=\"$(sizePair)$ +[last[]]\">\n\n<$button tag=\"a\">\n\n<$action-setfield\n\t$tiddler=\"\"\"$config-title$/new-width\"\"\"\n\t$value=<<width>>\n/>\n\n<$action-setfield\n\t$tiddler=\"\"\"$config-title$/new-height\"\"\"\n\t$value=<<height>>\n/>\n\n<$action-deletetiddler\n\t$tiddler=\"\"\"$config-title$/presets-popup\"\"\"\n/>\n\n<$text text=<<width>>/> × <$text text=<<height>>/>\n\n</$button>\n\n</$set>\n\n</$set>\n\\end\n\n\\define toolbar-button-size(config-title)\n''{{$:/language/Buttons/Size/Hint}}''\n\n<<lingo Caption/Width>> <$edit-text tag=\"input\" tiddler=\"\"\"$config-title$/new-width\"\"\" default=<<tv-bitmap-editor-width>> focus=\"true\" size=\"8\"/> <<lingo Caption/Height>> <$edit-text tag=\"input\" tiddler=\"\"\"$config-title$/new-height\"\"\" default=<<tv-bitmap-editor-height>> size=\"8\"/> <$button popup=\"\"\"$config-title$/presets-popup\"\"\" class=\"tc-btn-invisible tc-popup-keep\" style=\"width: auto; display: inline-block; background-colour: inherit;\" selectedClass=\"tc-selected\">\n{{$:/core/images/down-arrow}}\n</$button>\n\n<$reveal tag=\"span\" state=\"\"\"$config-title$/presets-popup\"\"\" type=\"popup\" position=\"belowleft\" animate=\"yes\">\n\n<div class=\"tc-drop-down tc-popup-keep\">\n\n<$list filter={{$:/config/BitmapEditor/ImageSizes}} variable=\"sizePair\">\n\n<$macrocall $name=\"toolbar-button-size-preset\" config-title=\"$config-title$\"/>\n\n</$list>\n\n</div>\n\n</$reveal>\n\n<$button>\n<$action-sendmessage\n\t$message=\"tm-edit-bitmap-operation\"\n\t$param=\"resize\"\n\twidth={{$config-title$/new-width}}\n\theight={{$config-title$/new-height}}\n/>\n<$action-deletetiddler\n\t$tiddler=\"\"\"$config-title$/new-width\"\"\"\n/>\n<$action-deletetiddler\n\t$tiddler=\"\"\"$config-title$/new-height\"\"\"\n/>\n<$action-deletetiddler\n\t$tiddler=<<dropdown-state>>\n/>\n<<lingo Caption/Resize>>\n</$button>\n\\end\n\n<$macrocall $name=\"toolbar-button-size\" config-title=<<qualify \"$:/state/Size/\">>/>\n" }, "$:/core/ui/EditorToolbar/size": { "title": "$:/core/ui/EditorToolbar/size", "tags": "$:/tags/EditorToolbar", "icon": "$:/core/images/size", "caption": "{{$:/language/Buttons/Size/Caption}}", "description": "{{$:/language/Buttons/Size/Hint}}", "condition": "[<targetTiddler>is[image]]", "dropdown": "$:/core/ui/EditorToolbar/size-dropdown", "text": "" }, "$:/core/ui/EditorToolbar/stamp-dropdown": { "title": "$:/core/ui/EditorToolbar/stamp-dropdown", "text": "\\define toolbar-button-stamp-inner()\n<$button tag=\"a\">\n\n<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"replace-selection\"\n\ttext={{$(snippetTitle)$}}\n/>\n\n<$action-deletetiddler\n\t$tiddler=<<dropdown-state>>\n/>\n\n<$view tiddler=<<snippetTitle>> field=\"caption\" mode=\"inline\">\n\n<$view tiddler=<<snippetTitle>> field=\"title\" mode=\"inline\"/>\n\n</$view>\n\n</$button>\n\\end\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/TextEditor/Snippet]!has[draft.of]sort[caption]]\" variable=\"snippetTitle\">\n\n<<toolbar-button-stamp-inner>>\n\n</$list>\n\n----\n\n<$button tag=\"a\">\n\n<$action-sendmessage\n\t$message=\"tm-new-tiddler\"\n\ttags=\"$:/tags/TextEditor/Snippet\"\n\tcaption={{$:/language/Buttons/Stamp/New/Title}}\n\ttext={{$:/language/Buttons/Stamp/New/Text}}\n/>\n\n<$action-deletetiddler\n\t$tiddler=<<dropdown-state>>\n/>\n\n<em>\n\n<$text text={{$:/language/Buttons/Stamp/Caption/New}}/>\n\n</em>\n\n</$button>\n" }, "$:/core/ui/EditorToolbar/stamp": { "title": "$:/core/ui/EditorToolbar/stamp", "tags": "$:/tags/EditorToolbar", "icon": "$:/core/images/stamp", "caption": "{{$:/language/Buttons/Stamp/Caption}}", "description": "{{$:/language/Buttons/Stamp/Hint}}", "condition": "[<targetTiddler>!is[image]]", "shortcuts": "((stamp))", "dropdown": "$:/core/ui/EditorToolbar/stamp-dropdown", "text": "" }, "$:/core/ui/EditorToolbar/strikethrough": { "title": "$:/core/ui/EditorToolbar/strikethrough", "tags": "$:/tags/EditorToolbar", "icon": "$:/core/images/strikethrough", "caption": "{{$:/language/Buttons/Strikethrough/Caption}}", "description": "{{$:/language/Buttons/Strikethrough/Hint}}", "condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]", "shortcuts": "((strikethrough))", "text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"wrap-selection\"\n\tprefix=\"~~\"\n\tsuffix=\"~~\"\n/>\n" }, "$:/core/ui/EditorToolbar/subscript": { "title": "$:/core/ui/EditorToolbar/subscript", "tags": "$:/tags/EditorToolbar", "icon": "$:/core/images/subscript", "caption": "{{$:/language/Buttons/Subscript/Caption}}", "description": "{{$:/language/Buttons/Subscript/Hint}}", "condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]", "shortcuts": "((subscript))", "text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"wrap-selection\"\n\tprefix=\",,\"\n\tsuffix=\",,\"\n/>\n" }, "$:/core/ui/EditorToolbar/superscript": { "title": "$:/core/ui/EditorToolbar/superscript", "tags": "$:/tags/EditorToolbar", "icon": "$:/core/images/superscript", "caption": "{{$:/language/Buttons/Superscript/Caption}}", "description": "{{$:/language/Buttons/Superscript/Hint}}", "condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]", "shortcuts": "((superscript))", "text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"wrap-selection\"\n\tprefix=\"^^\"\n\tsuffix=\"^^\"\n/>\n" }, "$:/core/ui/EditorToolbar/underline": { "title": "$:/core/ui/EditorToolbar/underline", "tags": "$:/tags/EditorToolbar", "icon": "$:/core/images/underline", "caption": "{{$:/language/Buttons/Underline/Caption}}", "description": "{{$:/language/Buttons/Underline/Hint}}", "condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]", "shortcuts": "((underline))", "text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"wrap-selection\"\n\tprefix=\"__\"\n\tsuffix=\"__\"\n/>\n" }, "$:/core/Filters/AllTags": { "title": "$:/core/Filters/AllTags", "tags": "$:/tags/Filter", "filter": "[tags[]!is[system]sort[title]]", "description": "{{$:/language/Filters/AllTags}}", "text": "" }, "$:/core/Filters/AllTiddlers": { "title": "$:/core/Filters/AllTiddlers", "tags": "$:/tags/Filter", "filter": "[!is[system]sort[title]]", "description": "{{$:/language/Filters/AllTiddlers}}", "text": "" }, "$:/core/Filters/Drafts": { "title": "$:/core/Filters/Drafts", "tags": "$:/tags/Filter", "filter": "[has[draft.of]sort[title]]", "description": "{{$:/language/Filters/Drafts}}", "text": "" }, "$:/core/Filters/Missing": { "title": "$:/core/Filters/Missing", "tags": "$:/tags/Filter", "filter": "[all[missing]sort[title]]", "description": "{{$:/language/Filters/Missing}}", "text": "" }, "$:/core/Filters/Orphans": { "title": "$:/core/Filters/Orphans", "tags": "$:/tags/Filter", "filter": "[all[orphans]sort[title]]", "description": "{{$:/language/Filters/Orphans}}", "text": "" }, "$:/core/Filters/OverriddenShadowTiddlers": { "title": "$:/core/Filters/OverriddenShadowTiddlers", "tags": "$:/tags/Filter", "filter": "[is[shadow]]", "description": "{{$:/language/Filters/OverriddenShadowTiddlers}}", "text": "" }, "$:/core/Filters/RecentSystemTiddlers": { "title": "$:/core/Filters/RecentSystemTiddlers", "tags": "$:/tags/Filter", "filter": "[has[modified]!sort[modified]limit[50]]", "description": "{{$:/language/Filters/RecentSystemTiddlers}}", "text": "" }, "$:/core/Filters/RecentTiddlers": { "title": "$:/core/Filters/RecentTiddlers", "tags": "$:/tags/Filter", "filter": "[!is[system]has[modified]!sort[modified]limit[50]]", "description": "{{$:/language/Filters/RecentTiddlers}}", "text": "" }, "$:/core/Filters/ShadowTiddlers": { "title": "$:/core/Filters/ShadowTiddlers", "tags": "$:/tags/Filter", "filter": "[all[shadows]sort[title]]", "description": "{{$:/language/Filters/ShadowTiddlers}}", "text": "" }, "$:/core/Filters/SystemTags": { "title": "$:/core/Filters/SystemTags", "tags": "$:/tags/Filter", "filter": "[all[shadows+tiddlers]tags[]is[system]sort[title]]", "description": "{{$:/language/Filters/SystemTags}}", "text": "" }, "$:/core/Filters/SystemTiddlers": { "title": "$:/core/Filters/SystemTiddlers", "tags": "$:/tags/Filter", "filter": "[is[system]sort[title]]", "description": "{{$:/language/Filters/SystemTiddlers}}", "text": "" }, "$:/core/Filters/TypedTiddlers": { "title": "$:/core/Filters/TypedTiddlers", "tags": "$:/tags/Filter", "filter": "[!is[system]has[type]each[type]sort[type]] -[type[text/vnd.tiddlywiki]]", "description": "{{$:/language/Filters/TypedTiddlers}}", "text": "" }, "$:/core/ui/ImportListing": { "title": "$:/core/ui/ImportListing", "text": "\\define lingo-base() $:/language/Import/\n\\define messageField()\nmessage-$(payloadTiddler)$\n\\end\n\\define selectionField()\nselection-$(payloadTiddler)$\n\\end\n\\define previewPopupState()\n$(currentTiddler)$!!popup-$(payloadTiddler)$\n\\end\n<table>\n<tbody>\n<tr>\n<th>\n<<lingo Listing/Select/Caption>>\n</th>\n<th>\n<<lingo Listing/Title/Caption>>\n</th>\n<th>\n<<lingo Listing/Status/Caption>>\n</th>\n</tr>\n<$list filter=\"[all[current]plugintiddlers[]sort[title]]\" variable=\"payloadTiddler\">\n<tr>\n<td>\n<$checkbox field=<<selectionField>> checked=\"checked\" unchecked=\"unchecked\" default=\"checked\"/>\n</td>\n<td>\n<$reveal type=\"nomatch\" state=<<previewPopupState>> text=\"yes\">\n<$button class=\"tc-btn-invisible tc-btn-dropdown\" set=<<previewPopupState>> setTo=\"yes\">\n{{$:/core/images/right-arrow}} <$text text=<<payloadTiddler>>/>\n</$button>\n</$reveal>\n<$reveal type=\"match\" state=<<previewPopupState>> text=\"yes\">\n<$button class=\"tc-btn-invisible tc-btn-dropdown\" set=<<previewPopupState>> setTo=\"no\">\n{{$:/core/images/down-arrow}} <$text text=<<payloadTiddler>>/>\n</$button>\n</$reveal>\n</td>\n<td>\n<$view field=<<messageField>>/>\n</td>\n</tr>\n<tr>\n<td colspan=\"3\">\n<$reveal type=\"match\" text=\"yes\" state=<<previewPopupState>>>\n<$transclude subtiddler=<<payloadTiddler>> mode=\"block\"/>\n</$reveal>\n</td>\n</tr>\n</$list>\n</tbody>\n</table>\n" }, "$:/core/ui/ListItemTemplate": { "title": "$:/core/ui/ListItemTemplate", "text": "<div class=\"tc-menu-list-item\">\n<$link to={{!!title}}>\n<$view field=\"title\"/>\n</$link>\n</div>" }, "$:/core/ui/MissingTemplate": { "title": "$:/core/ui/MissingTemplate", "text": "<div class=\"tc-tiddler-missing\">\n<$button popup=<<qualify \"$:/state/popup/missing\">> class=\"tc-btn-invisible tc-missing-tiddler-label\">\n<$view field=\"title\" format=\"text\" />\n</$button>\n<$reveal state=<<qualify \"$:/state/popup/missing\">> type=\"popup\" position=\"below\" animate=\"yes\">\n<div class=\"tc-drop-down\">\n<$transclude tiddler=\"$:/core/ui/ListItemTemplate\"/>\n<hr>\n<$list filter=\"[all[current]backlinks[]sort[title]]\" template=\"$:/core/ui/ListItemTemplate\"/>\n</div>\n</$reveal>\n</div>\n" }, "$:/core/ui/MoreSideBar/All": { "title": "$:/core/ui/MoreSideBar/All", "tags": "$:/tags/MoreSideBar", "caption": "{{$:/language/SideBar/All/Caption}}", "text": "<$list filter={{$:/core/Filters/AllTiddlers!!filter}} template=\"$:/core/ui/ListItemTemplate\"/>\n" }, "$:/core/ui/MoreSideBar/Drafts": { "title": "$:/core/ui/MoreSideBar/Drafts", "tags": "$:/tags/MoreSideBar", "caption": "{{$:/language/SideBar/Drafts/Caption}}", "text": "<$list filter={{$:/core/Filters/Drafts!!filter}} template=\"$:/core/ui/ListItemTemplate\"/>\n" }, "$:/core/ui/MoreSideBar/Missing": { "title": "$:/core/ui/MoreSideBar/Missing", "tags": "$:/tags/MoreSideBar", "caption": "{{$:/language/SideBar/Missing/Caption}}", "text": "<$list filter={{$:/core/Filters/Missing!!filter}} template=\"$:/core/ui/MissingTemplate\"/>\n" }, "$:/core/ui/MoreSideBar/Orphans": { "title": "$:/core/ui/MoreSideBar/Orphans", "tags": "$:/tags/MoreSideBar", "caption": "{{$:/language/SideBar/Orphans/Caption}}", "text": "<$list filter={{$:/core/Filters/Orphans!!filter}} template=\"$:/core/ui/ListItemTemplate\"/>\n" }, "$:/core/ui/MoreSideBar/Recent": { "title": "$:/core/ui/MoreSideBar/Recent", "tags": "$:/tags/MoreSideBar", "caption": "{{$:/language/SideBar/Recent/Caption}}", "text": "<$macrocall $name=\"timeline\" format={{$:/language/RecentChanges/DateFormat}}/>\n" }, "$:/core/ui/MoreSideBar/Shadows": { "title": "$:/core/ui/MoreSideBar/Shadows", "tags": "$:/tags/MoreSideBar", "caption": "{{$:/language/SideBar/Shadows/Caption}}", "text": "<$list filter={{$:/core/Filters/ShadowTiddlers!!filter}} template=\"$:/core/ui/ListItemTemplate\"/>\n" }, "$:/core/ui/MoreSideBar/System": { "title": "$:/core/ui/MoreSideBar/System", "tags": "$:/tags/MoreSideBar", "caption": "{{$:/language/SideBar/System/Caption}}", "text": "<$list filter={{$:/core/Filters/SystemTiddlers!!filter}} template=\"$:/core/ui/ListItemTemplate\"/>\n" }, "$:/core/ui/MoreSideBar/Tags": { "title": "$:/core/ui/MoreSideBar/Tags", "tags": "$:/tags/MoreSideBar", "caption": "{{$:/language/SideBar/Tags/Caption}}", "text": "<$set name=\"tv-config-toolbar-icons\" value=\"yes\">\n\n<$set name=\"tv-config-toolbar-text\" value=\"yes\">\n\n<$set name=\"tv-config-toolbar-class\" value=\"\">\n\n{{$:/core/ui/Buttons/tag-manager}}\n\n</$set>\n\n</$set>\n\n</$set>\n\n<$list filter={{$:/core/Filters/AllTags!!filter}}>\n\n<$transclude tiddler=\"$:/core/ui/TagTemplate\"/>\n\n</$list>\n\n<hr class=\"tc-untagged-separator\">\n\n{{$:/core/ui/UntaggedTemplate}}\n" }, "$:/core/ui/MoreSideBar/Types": { "title": "$:/core/ui/MoreSideBar/Types", "tags": "$:/tags/MoreSideBar", "caption": "{{$:/language/SideBar/Types/Caption}}", "text": "<$list filter={{$:/core/Filters/TypedTiddlers!!filter}}>\n<div class=\"tc-menu-list-item\">\n<$view field=\"type\"/>\n<$list filter=\"[type{!!type}!is[system]sort[title]]\">\n<div class=\"tc-menu-list-subitem\">\n<$link to={{!!title}}><$view field=\"title\"/></$link>\n</div>\n</$list>\n</div>\n</$list>\n" }, "$:/core/ui/Buttons/advanced-search": { "title": "$:/core/ui/Buttons/advanced-search", "tags": "$:/tags/PageControls", "caption": "{{$:/core/images/advanced-search-button}} {{$:/language/Buttons/AdvancedSearch/Caption}}", "description": "{{$:/language/Buttons/AdvancedSearch/Hint}}", "text": "\\define control-panel-button(class)\n<$button to=\"$:/AdvancedSearch\" tooltip={{$:/language/Buttons/AdvancedSearch/Hint}} aria-label={{$:/language/Buttons/AdvancedSearch/Caption}} class=\"\"\"$(tv-config-toolbar-class)$ $class$\"\"\">\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\">\n{{$:/core/images/advanced-search-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/AdvancedSearch/Caption}}/></span>\n</$list>\n</$button>\n\\end\n\n<$list filter=\"[list[$:/StoryList]] +[field:title[$:/AdvancedSearch]]\" emptyMessage=<<control-panel-button>>>\n<<control-panel-button \"tc-selected\">>\n</$list>\n" }, "$:/core/ui/Buttons/close-all": { "title": "$:/core/ui/Buttons/close-all", "tags": "$:/tags/PageControls", "caption": "{{$:/core/images/close-all-button}} {{$:/language/Buttons/CloseAll/Caption}}", "description": "{{$:/language/Buttons/CloseAll/Hint}}", "text": "<$button message=\"tm-close-all-tiddlers\" tooltip={{$:/language/Buttons/CloseAll/Hint}} aria-label={{$:/language/Buttons/CloseAll/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\">\n{{$:/core/images/close-all-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/CloseAll/Caption}}/></span>\n</$list>\n</$button>" }, "$:/core/ui/Buttons/control-panel": { "title": "$:/core/ui/Buttons/control-panel", "tags": "$:/tags/PageControls", "caption": "{{$:/core/images/options-button}} {{$:/language/Buttons/ControlPanel/Caption}}", "description": "{{$:/language/Buttons/ControlPanel/Hint}}", "text": "\\define control-panel-button(class)\n<$button to=\"$:/ControlPanel\" tooltip={{$:/language/Buttons/ControlPanel/Hint}} aria-label={{$:/language/Buttons/ControlPanel/Caption}} class=\"\"\"$(tv-config-toolbar-class)$ $class$\"\"\">\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\">\n{{$:/core/images/options-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/ControlPanel/Caption}}/></span>\n</$list>\n</$button>\n\\end\n\n<$list filter=\"[list[$:/StoryList]] +[field:title[$:/ControlPanel]]\" emptyMessage=<<control-panel-button>>>\n<<control-panel-button \"tc-selected\">>\n</$list>\n" }, "$:/core/ui/Buttons/encryption": { "title": "$:/core/ui/Buttons/encryption", "tags": "$:/tags/PageControls", "caption": "{{$:/core/images/locked-padlock}} {{$:/language/Buttons/Encryption/Caption}}", "description": "{{$:/language/Buttons/Encryption/Hint}}", "text": "<$reveal type=\"match\" state=\"$:/isEncrypted\" text=\"yes\">\n<$button message=\"tm-clear-password\" tooltip={{$:/language/Buttons/Encryption/ClearPassword/Hint}} aria-label={{$:/language/Buttons/Encryption/ClearPassword/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\">\n{{$:/core/images/locked-padlock}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Encryption/ClearPassword/Caption}}/></span>\n</$list>\n</$button>\n</$reveal>\n<$reveal type=\"nomatch\" state=\"$:/isEncrypted\" text=\"yes\">\n<$button message=\"tm-set-password\" tooltip={{$:/language/Buttons/Encryption/SetPassword/Hint}} aria-label={{$:/language/Buttons/Encryption/SetPassword/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\">\n{{$:/core/images/unlocked-padlock}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Encryption/SetPassword/Caption}}/></span>\n</$list>\n</$button>\n</$reveal>" }, "$:/core/ui/Buttons/export-page": { "title": "$:/core/ui/Buttons/export-page", "tags": "$:/tags/PageControls", "caption": "{{$:/core/images/export-button}} {{$:/language/Buttons/ExportPage/Caption}}", "description": "{{$:/language/Buttons/ExportPage/Hint}}", "text": "<$macrocall $name=\"exportButton\" exportFilter=\"[!is[system]sort[title]]\" lingoBase=\"$:/language/Buttons/ExportPage/\"/>" }, "$:/core/ui/Buttons/fold-all": { "title": "$:/core/ui/Buttons/fold-all", "tags": "$:/tags/PageControls", "caption": "{{$:/core/images/fold-all-button}} {{$:/language/Buttons/FoldAll/Caption}}", "description": "{{$:/language/Buttons/FoldAll/Hint}}", "text": "<$button tooltip={{$:/language/Buttons/FoldAll/Hint}} aria-label={{$:/language/Buttons/FoldAll/Caption}} class=<<tv-config-toolbar-class>>>\n<$action-sendmessage $message=\"tm-fold-all-tiddlers\" $param=<<currentTiddler>> foldedStatePrefix=\"$:/state/folded/\"/>\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\" variable=\"listItem\">\n{{$:/core/images/fold-all-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/FoldAll/Caption}}/></span>\n</$list>\n</$button>" }, "$:/core/ui/Buttons/full-screen": { "title": "$:/core/ui/Buttons/full-screen", "tags": "$:/tags/PageControls", "caption": "{{$:/core/images/full-screen-button}} {{$:/language/Buttons/FullScreen/Caption}}", "description": "{{$:/language/Buttons/FullScreen/Hint}}", "text": "<$button message=\"tm-full-screen\" tooltip={{$:/language/Buttons/FullScreen/Hint}} aria-label={{$:/language/Buttons/FullScreen/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\">\n{{$:/core/images/full-screen-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/FullScreen/Caption}}/></span>\n</$list>\n</$button>" }, "$:/core/ui/Buttons/home": { "title": "$:/core/ui/Buttons/home", "tags": "$:/tags/PageControls", "caption": "{{$:/core/images/home-button}} {{$:/language/Buttons/Home/Caption}}", "description": "{{$:/language/Buttons/Home/Hint}}", "text": "<$button message=\"tm-home\" tooltip={{$:/language/Buttons/Home/Hint}} aria-label={{$:/language/Buttons/Home/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\">\n{{$:/core/images/home-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Home/Caption}}/></span>\n</$list>\n</$button>" }, "$:/core/ui/Buttons/import": { "title": "$:/core/ui/Buttons/import", "tags": "$:/tags/PageControls", "caption": "{{$:/core/images/import-button}} {{$:/language/Buttons/Import/Caption}}", "description": "{{$:/language/Buttons/Import/Hint}}", "text": "<div class=\"tc-file-input-wrapper\">\n<$button tooltip={{$:/language/Buttons/Import/Hint}} aria-label={{$:/language/Buttons/Import/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\">\n{{$:/core/images/import-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Import/Caption}}/></span>\n</$list>\n</$button>\n<$browse tooltip={{$:/language/Buttons/Import/Hint}}/>\n</div>" }, "$:/core/ui/Buttons/language": { "title": "$:/core/ui/Buttons/language", "tags": "$:/tags/PageControls", "caption": "{{$:/core/images/globe}} {{$:/language/Buttons/Language/Caption}}", "description": "{{$:/language/Buttons/Language/Hint}}", "text": "\\define flag-title()\n$(languagePluginTitle)$/icon\n\\end\n<span class=\"tc-popup-keep\">\n<$button popup=<<qualify \"$:/state/popup/language\">> tooltip={{$:/language/Buttons/Language/Hint}} aria-label={{$:/language/Buttons/Language/Caption}} class=<<tv-config-toolbar-class>> selectedClass=\"tc-selected\">\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\">\n<span class=\"tc-image-button\">\n<$set name=\"languagePluginTitle\" value={{$:/language}}>\n<$image source=<<flag-title>>/>\n</$set>\n</span>\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Language/Caption}}/></span>\n</$list>\n</$button>\n</span>\n<$reveal state=<<qualify \"$:/state/popup/language\">> type=\"popup\" position=\"below\" animate=\"yes\">\n<div class=\"tc-drop-down tc-drop-down-language-chooser\">\n<$linkcatcher to=\"$:/language\">\n<$list filter=\"[[$:/languages/en-GB]] [plugin-type[language]sort[description]]\">\n<$link>\n<span class=\"tc-drop-down-bullet\">\n<$reveal type=\"match\" state=\"$:/language\" text=<<currentTiddler>>>\n•\n</$reveal>\n<$reveal type=\"nomatch\" state=\"$:/language\" text=<<currentTiddler>>>\n \n</$reveal>\n</span>\n<span class=\"tc-image-button\">\n<$set name=\"languagePluginTitle\" value=<<currentTiddler>>>\n<$transclude subtiddler=<<flag-title>>>\n<$list filter=\"[all[current]field:title[$:/languages/en-GB]]\">\n<$transclude tiddler=\"$:/languages/en-GB/icon\"/>\n</$list>\n</$transclude>\n</$set>\n</span>\n<$view field=\"description\">\n<$view field=\"name\">\n<$view field=\"title\"/>\n</$view>\n</$view>\n</$link>\n</$list>\n</$linkcatcher>\n</div>\n</$reveal>" }, "$:/core/ui/Buttons/more-page-actions": { "title": "$:/core/ui/Buttons/more-page-actions", "tags": "$:/tags/PageControls", "caption": "{{$:/core/images/down-arrow}} {{$:/language/Buttons/More/Caption}}", "description": "{{$:/language/Buttons/More/Hint}}", "text": "\\define config-title()\n$:/config/PageControlButtons/Visibility/$(listItem)$\n\\end\n<$button popup=<<qualify \"$:/state/popup/more\">> tooltip={{$:/language/Buttons/More/Hint}} aria-label={{$:/language/Buttons/More/Caption}} class=<<tv-config-toolbar-class>> selectedClass=\"tc-selected\">\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\">\n{{$:/core/images/down-arrow}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/More/Caption}}/></span>\n</$list>\n</$button><$reveal state=<<qualify \"$:/state/popup/more\">> type=\"popup\" position=\"below\" animate=\"yes\">\n\n<div class=\"tc-drop-down\">\n\n<$set name=\"tv-config-toolbar-icons\" value=\"yes\">\n\n<$set name=\"tv-config-toolbar-text\" value=\"yes\">\n\n<$set name=\"tv-config-toolbar-class\" value=\"tc-btn-invisible\">\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/PageControls]!has[draft.of]] -[[$:/core/ui/Buttons/more-page-actions]]\" variable=\"listItem\">\n\n<$reveal type=\"match\" state=<<config-title>> text=\"hide\">\n\n<$transclude tiddler=<<listItem>> mode=\"inline\"/>\n\n</$reveal>\n\n</$list>\n\n</$set>\n\n</$set>\n\n</$set>\n\n</div>\n\n</$reveal>" }, "$:/core/ui/Buttons/new-image": { "title": "$:/core/ui/Buttons/new-image", "tags": "$:/tags/PageControls", "caption": "{{$:/core/images/new-image-button}} {{$:/language/Buttons/NewImage/Caption}}", "description": "{{$:/language/Buttons/NewImage/Hint}}", "text": "<$button tooltip={{$:/language/Buttons/NewImage/Hint}} aria-label={{$:/language/Buttons/NewImage/Caption}} class=<<tv-config-toolbar-class>>>\n<$action-sendmessage $message=\"tm-new-tiddler\" type=\"image/jpeg\"/>\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\">\n{{$:/core/images/new-image-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/NewImage/Caption}}/></span>\n</$list>\n</$button>\n" }, "$:/core/ui/Buttons/new-journal": { "title": "$:/core/ui/Buttons/new-journal", "tags": "$:/tags/PageControls", "caption": "{{$:/core/images/new-journal-button}} {{$:/language/Buttons/NewJournal/Caption}}", "description": "{{$:/language/Buttons/NewJournal/Hint}}", "text": "\\define journalButton()\n<$button tooltip={{$:/language/Buttons/NewJournal/Hint}} aria-label={{$:/language/Buttons/NewJournal/Caption}} class=<<tv-config-toolbar-class>>>\n<$action-sendmessage $message=\"tm-new-tiddler\" title=<<now \"$(journalTitleTemplate)$\">> tags=\"$(journalTags)$\"/>\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\">\n{{$:/core/images/new-journal-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/NewJournal/Caption}}/></span>\n</$list>\n</$button>\n\\end\n<$set name=\"journalTitleTemplate\" value={{$:/config/NewJournal/Title}}>\n<$set name=\"journalTags\" value={{$:/config/NewJournal/Tags}}>\n<<journalButton>>\n</$set></$set>" }, "$:/core/ui/Buttons/new-tiddler": { "title": "$:/core/ui/Buttons/new-tiddler", "tags": "$:/tags/PageControls", "caption": "{{$:/core/images/new-button}} {{$:/language/Buttons/NewTiddler/Caption}}", "description": "{{$:/language/Buttons/NewTiddler/Hint}}", "text": "<$button message=\"tm-new-tiddler\" tooltip={{$:/language/Buttons/NewTiddler/Hint}} aria-label={{$:/language/Buttons/NewTiddler/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\">\n{{$:/core/images/new-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/NewTiddler/Caption}}/></span>\n</$list>\n</$button>" }, "$:/core/ui/Buttons/palette": { "title": "$:/core/ui/Buttons/palette", "tags": "$:/tags/PageControls", "caption": "{{$:/core/images/palette}} {{$:/language/Buttons/Palette/Caption}}", "description": "{{$:/language/Buttons/Palette/Hint}}", "text": "<span class=\"tc-popup-keep\">\n<$button popup=<<qualify \"$:/state/popup/palette\">> tooltip={{$:/language/Buttons/Palette/Hint}} aria-label={{$:/language/Buttons/Palette/Caption}} class=<<tv-config-toolbar-class>> selectedClass=\"tc-selected\">\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\">\n{{$:/core/images/palette}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Palette/Caption}}/></span>\n</$list>\n</$button>\n</span>\n<$reveal state=<<qualify \"$:/state/popup/palette\">> type=\"popup\" position=\"below\" animate=\"yes\">\n<div class=\"tc-drop-down\" style=\"font-size:0.7em;\">\n{{$:/snippets/paletteswitcher}}\n</div>\n</$reveal>" }, "$:/core/ui/Buttons/refresh": { "title": "$:/core/ui/Buttons/refresh", "tags": "$:/tags/PageControls", "caption": "{{$:/core/images/refresh-button}} {{$:/language/Buttons/Refresh/Caption}}", "description": "{{$:/language/Buttons/Refresh/Hint}}", "text": "<$button message=\"tm-browser-refresh\" tooltip={{$:/language/Buttons/Refresh/Hint}} aria-label={{$:/language/Buttons/Refresh/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\">\n{{$:/core/images/refresh-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Refresh/Caption}}/></span>\n</$list>\n</$button>" }, "$:/core/ui/Buttons/save-wiki": { "title": "$:/core/ui/Buttons/save-wiki", "tags": "$:/tags/PageControls", "caption": "{{$:/core/images/save-button}} {{$:/language/Buttons/SaveWiki/Caption}}", "description": "{{$:/language/Buttons/SaveWiki/Hint}}", "text": "<$button message=\"tm-save-wiki\" param={{$:/config/SaveWikiButton/Template}} tooltip={{$:/language/Buttons/SaveWiki/Hint}} aria-label={{$:/language/Buttons/SaveWiki/Caption}} class=<<tv-config-toolbar-class>>>\n<span class=\"tc-dirty-indicator\">\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\">\n{{$:/core/images/save-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/SaveWiki/Caption}}/></span>\n</$list>\n</span>\n</$button>" }, "$:/core/ui/Buttons/storyview": { "title": "$:/core/ui/Buttons/storyview", "tags": "$:/tags/PageControls", "caption": "{{$:/core/images/storyview-classic}} {{$:/language/Buttons/StoryView/Caption}}", "description": "{{$:/language/Buttons/StoryView/Hint}}", "text": "\\define icon()\n$:/core/images/storyview-$(storyview)$\n\\end\n<span class=\"tc-popup-keep\">\n<$button popup=<<qualify \"$:/state/popup/storyview\">> tooltip={{$:/language/Buttons/StoryView/Hint}} aria-label={{$:/language/Buttons/StoryView/Caption}} class=<<tv-config-toolbar-class>> selectedClass=\"tc-selected\">\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\">\n<$set name=\"storyview\" value={{$:/view}}>\n<$transclude tiddler=<<icon>>/>\n</$set>\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/StoryView/Caption}}/></span>\n</$list>\n</$button>\n</span>\n<$reveal state=<<qualify \"$:/state/popup/storyview\">> type=\"popup\" position=\"below\" animate=\"yes\">\n<div class=\"tc-drop-down\">\n<$linkcatcher to=\"$:/view\">\n<$list filter=\"[storyviews[]]\" variable=\"storyview\">\n<$link to=<<storyview>>>\n<span class=\"tc-drop-down-bullet\">\n<$reveal type=\"match\" state=\"$:/view\" text=<<storyview>>>\n•\n</$reveal>\n<$reveal type=\"nomatch\" state=\"$:/view\" text=<<storyview>>>\n \n</$reveal>\n</span>\n<$transclude tiddler=<<icon>>/>\n<$text text=<<storyview>>/></$link>\n</$list>\n</$linkcatcher>\n</div>\n</$reveal>" }, "$:/core/ui/Buttons/tag-manager": { "title": "$:/core/ui/Buttons/tag-manager", "tags": "$:/tags/PageControls", "caption": "{{$:/core/images/tag-button}} {{$:/language/Buttons/TagManager/Caption}}", "description": "{{$:/language/Buttons/TagManager/Hint}}", "text": "\\define control-panel-button(class)\n<$button to=\"$:/TagManager\" tooltip={{$:/language/Buttons/TagManager/Hint}} aria-label={{$:/language/Buttons/TagManager/Caption}} class=\"\"\"$(tv-config-toolbar-class)$ $class$\"\"\">\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\">\n{{$:/core/images/tag-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/TagManager/Caption}}/></span>\n</$list>\n</$button>\n\\end\n\n<$list filter=\"[list[$:/StoryList]] +[field:title[$:/TagManager]]\" emptyMessage=<<control-panel-button>>>\n<<control-panel-button \"tc-selected\">>\n</$list>\n" }, "$:/core/ui/Buttons/theme": { "title": "$:/core/ui/Buttons/theme", "tags": "$:/tags/PageControls", "caption": "{{$:/core/images/theme-button}} {{$:/language/Buttons/Theme/Caption}}", "description": "{{$:/language/Buttons/Theme/Hint}}", "text": "<span class=\"tc-popup-keep\">\n<$button popup=<<qualify \"$:/state/popup/theme\">> tooltip={{$:/language/Buttons/Theme/Hint}} aria-label={{$:/language/Buttons/Theme/Caption}} class=<<tv-config-toolbar-class>> selectedClass=\"tc-selected\">\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\">\n{{$:/core/images/theme-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Theme/Caption}}/></span>\n</$list>\n</$button>\n</span>\n<$reveal state=<<qualify \"$:/state/popup/theme\">> type=\"popup\" position=\"below\" animate=\"yes\">\n<div class=\"tc-drop-down\">\n<$linkcatcher to=\"$:/theme\">\n<$list filter=\"[plugin-type[theme]sort[title]]\" variable=\"themeTitle\">\n<$link to=<<themeTitle>>>\n<span class=\"tc-drop-down-bullet\">\n<$reveal type=\"match\" state=\"$:/theme\" text=<<themeTitle>>>\n•\n</$reveal>\n<$reveal type=\"nomatch\" state=\"$:/theme\" text=<<themeTitle>>>\n \n</$reveal>\n</span>\n<$view tiddler=<<themeTitle>> field=\"name\"/>\n</$link>\n</$list>\n</$linkcatcher>\n</div>\n</$reveal>" }, "$:/core/ui/Buttons/unfold-all": { "title": "$:/core/ui/Buttons/unfold-all", "tags": "$:/tags/PageControls", "caption": "{{$:/core/images/unfold-all-button}} {{$:/language/Buttons/UnfoldAll/Caption}}", "description": "{{$:/language/Buttons/UnfoldAll/Hint}}", "text": "<$button tooltip={{$:/language/Buttons/UnfoldAll/Hint}} aria-label={{$:/language/Buttons/UnfoldAll/Caption}} class=<<tv-config-toolbar-class>>>\n<$action-sendmessage $message=\"tm-unfold-all-tiddlers\" $param=<<currentTiddler>> foldedStatePrefix=\"$:/state/folded/\"/>\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\" variable=\"listItem\">\n{{$:/core/images/unfold-all-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/UnfoldAll/Caption}}/></span>\n</$list>\n</$button>" }, "$:/core/ui/PageTemplate/pagecontrols": { "title": "$:/core/ui/PageTemplate/pagecontrols", "text": "\\define config-title()\n$:/config/PageControlButtons/Visibility/$(listItem)$\n\\end\n<div class=\"tc-page-controls\">\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/PageControls]!has[draft.of]]\" variable=\"listItem\">\n<$reveal type=\"nomatch\" state=<<config-title>> text=\"hide\">\n<$transclude tiddler=<<listItem>> mode=\"inline\"/>\n</$reveal>\n</$list>\n</div>\n\n" }, "$:/core/ui/PageStylesheet": { "title": "$:/core/ui/PageStylesheet", "text": "<$importvariables filter=\"[[$:/core/ui/PageMacros]] [all[shadows+tiddlers]tag[$:/tags/Macro]!has[draft.of]]\">\n\n<$set name=\"currentTiddler\" value={{$:/language}}>\n\n<$set name=\"languageTitle\" value={{!!name}}>\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/Stylesheet]!has[draft.of]]\">\n<$transclude mode=\"block\"/>\n</$list>\n\n</$set>\n\n</$set>\n\n</$importvariables>\n" }, "$:/core/ui/PageTemplate/alerts": { "title": "$:/core/ui/PageTemplate/alerts", "tags": "$:/tags/PageTemplate", "text": "<div class=\"tc-alerts\">\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/Alert]!has[draft.of]]\" template=\"$:/core/ui/AlertTemplate\" storyview=\"pop\"/>\n\n</div>\n" }, "$:/core/ui/PageTemplate/pluginreloadwarning": { "title": "$:/core/ui/PageTemplate/pluginreloadwarning", "tags": "$:/tags/PageTemplate", "text": "\\define lingo-base() $:/language/\n\n<$list filter=\"[has[plugin-type]haschanged[]!plugin-type[import]limit[1]]\">\n\n<$reveal type=\"nomatch\" state=\"$:/temp/HidePluginWarning\" text=\"yes\">\n\n<div class=\"tc-plugin-reload-warning\">\n\n<$set name=\"tv-config-toolbar-class\" value=\"\">\n\n<<lingo PluginReloadWarning>> <$button set=\"$:/temp/HidePluginWarning\" setTo=\"yes\" class=\"tc-btn-invisible\">{{$:/core/images/close-button}}</$button>\n\n</$set>\n\n</div>\n\n</$reveal>\n\n</$list>\n" }, "$:/core/ui/PageTemplate/sidebar": { "title": "$:/core/ui/PageTemplate/sidebar", "tags": "$:/tags/PageTemplate", "text": "<$scrollable fallthrough=\"no\" class=\"tc-sidebar-scrollable\">\n\n<div class=\"tc-sidebar-header\">\n\n<$reveal state=\"$:/state/sidebar\" type=\"match\" text=\"yes\" default=\"yes\" retain=\"yes\" animate=\"yes\">\n\n<h1 class=\"tc-site-title\">\n\n<$transclude tiddler=\"$:/SiteTitle\" mode=\"inline\"/>\n\n</h1>\n\n<div class=\"tc-site-subtitle\">\n\n<$transclude tiddler=\"$:/SiteSubtitle\" mode=\"inline\"/>\n\n</div>\n\n{{||$:/core/ui/PageTemplate/pagecontrols}}\n\n<$transclude tiddler=\"$:/core/ui/SideBarLists\" mode=\"inline\"/>\n\n</$reveal>\n\n</div>\n\n</$scrollable>" }, "$:/core/ui/PageTemplate/story": { "title": "$:/core/ui/PageTemplate/story", "tags": "$:/tags/PageTemplate", "text": "<section class=\"tc-story-river\">\n\n<section class=\"story-backdrop\">\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/AboveStory]!has[draft.of]]\">\n\n<$transclude/>\n\n</$list>\n\n</section>\n\n<$list filter=\"[list[$:/StoryList]]\" history=\"$:/HistoryList\" template=\"$:/core/ui/ViewTemplate\" editTemplate=\"$:/core/ui/EditTemplate\" storyview={{$:/view}} emptyMessage={{$:/config/EmptyStoryMessage}}/>\n\n<section class=\"story-frontdrop\">\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/BelowStory]!has[draft.of]]\">\n\n<$transclude/>\n\n</$list>\n\n</section>\n\n</section>\n" }, "$:/core/ui/PageTemplate/topleftbar": { "title": "$:/core/ui/PageTemplate/topleftbar", "tags": "$:/tags/PageTemplate", "text": "<span class=\"tc-topbar tc-topbar-left\">\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/TopLeftBar]!has[draft.of]]\" variable=\"listItem\">\n\n<$transclude tiddler=<<listItem>> mode=\"inline\"/>\n\n</$list>\n\n</span>\n" }, "$:/core/ui/PageTemplate/toprightbar": { "title": "$:/core/ui/PageTemplate/toprightbar", "tags": "$:/tags/PageTemplate", "text": "<span class=\"tc-topbar tc-topbar-right\">\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/TopRightBar]!has[draft.of]]\" variable=\"listItem\">\n\n<$transclude tiddler=<<listItem>> mode=\"inline\"/>\n\n</$list>\n\n</span>\n" }, "$:/core/ui/PageTemplate": { "title": "$:/core/ui/PageTemplate", "text": "\\define containerClasses()\ntc-page-container tc-page-view-$(themeTitle)$ tc-language-$(languageTitle)$\n\\end\n\n<$importvariables filter=\"[[$:/core/ui/PageMacros]] [all[shadows+tiddlers]tag[$:/tags/Macro]!has[draft.of]]\">\n\n<$set name=\"tv-config-toolbar-icons\" value={{$:/config/Toolbar/Icons}}>\n\n<$set name=\"tv-config-toolbar-text\" value={{$:/config/Toolbar/Text}}>\n\n<$set name=\"tv-config-toolbar-class\" value={{$:/config/Toolbar/ButtonClass}}>\n\n<$set name=\"themeTitle\" value={{$:/view}}>\n\n<$set name=\"currentTiddler\" value={{$:/language}}>\n\n<$set name=\"languageTitle\" value={{!!name}}>\n\n<$set name=\"currentTiddler\" value=\"\">\n\n<div class=<<containerClasses>>>\n\n<$navigator story=\"$:/StoryList\" history=\"$:/HistoryList\" openLinkFromInsideRiver={{$:/config/Navigation/openLinkFromInsideRiver}} openLinkFromOutsideRiver={{$:/config/Navigation/openLinkFromOutsideRiver}}>\n\n<$dropzone>\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/PageTemplate]!has[draft.of]]\" variable=\"listItem\">\n\n<$transclude tiddler=<<listItem>>/>\n\n</$list>\n\n</$dropzone>\n\n</$navigator>\n\n</div>\n\n</$set>\n\n</$set>\n\n</$set>\n\n</$set>\n\n</$set>\n\n</$set>\n\n</$set>\n\n</$importvariables>\n" }, "$:/core/ui/PluginInfo": { "title": "$:/core/ui/PluginInfo", "text": "\\define localised-info-tiddler-title()\n$(currentTiddler)$/$(languageTitle)$/$(currentTab)$\n\\end\n\\define info-tiddler-title()\n$(currentTiddler)$/$(currentTab)$\n\\end\n<$transclude tiddler=<<localised-info-tiddler-title>> mode=\"block\">\n<$transclude tiddler=<<currentTiddler>> subtiddler=<<localised-info-tiddler-title>> mode=\"block\">\n<$transclude tiddler=<<currentTiddler>> subtiddler=<<info-tiddler-title>> mode=\"block\">\n{{$:/language/ControlPanel/Plugin/NoInfoFound/Hint}}\n</$transclude>\n</$transclude>\n</$transclude>\n" }, "$:/core/ui/SearchResults": { "title": "$:/core/ui/SearchResults", "text": "<div class=\"tc-search-results\">\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/SearchResults]!has[draft.of]butfirst[]limit[1]]\" emptyMessage=\"\"\"\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/SearchResults]!has[draft.of]]\">\n<$transclude mode=\"block\"/>\n</$list>\n\"\"\">\n\n<$macrocall $name=\"tabs\" tabsList=\"[all[shadows+tiddlers]tag[$:/tags/SearchResults]!has[draft.of]]\" default={{$:/config/SearchResults/Default}}/>\n\n</$list>\n\n</div>\n" }, "$:/core/ui/SideBar/More": { "title": "$:/core/ui/SideBar/More", "tags": "$:/tags/SideBar", "caption": "{{$:/language/SideBar/More/Caption}}", "text": "<div class=\"tc-more-sidebar\">\n<<tabs \"[all[shadows+tiddlers]tag[$:/tags/MoreSideBar]!has[draft.of]]\" \"$:/core/ui/MoreSideBar/Tags\" \"$:/state/tab/moresidebar\" \"tc-vertical\">>\n</div>\n" }, "$:/core/ui/SideBar/Open": { "title": "$:/core/ui/SideBar/Open", "tags": "$:/tags/SideBar", "caption": "{{$:/language/SideBar/Open/Caption}}", "text": "\\define lingo-base() $:/language/CloseAll/\n<$list filter=\"[list[$:/StoryList]]\" history=\"$:/HistoryList\" storyview=\"pop\">\n\n<$button message=\"tm-close-tiddler\" tooltip={{$:/language/Buttons/Close/Hint}} aria-label={{$:/language/Buttons/Close/Caption}} class=\"tc-btn-invisible tc-btn-mini\">×</$button> <$link to={{!!title}}><$view field=\"title\"/></$link>\n\n</$list>\n\n<$button message=\"tm-close-all-tiddlers\" class=\"tc-btn-invisible tc-btn-mini\"><<lingo Button>></$button>\n" }, "$:/core/ui/SideBar/Recent": { "title": "$:/core/ui/SideBar/Recent", "tags": "$:/tags/SideBar", "caption": "{{$:/language/SideBar/Recent/Caption}}", "text": "<$macrocall $name=\"timeline\" format={{$:/language/RecentChanges/DateFormat}}/>\n" }, "$:/core/ui/SideBar/Tools": { "title": "$:/core/ui/SideBar/Tools", "tags": "$:/tags/SideBar", "caption": "{{$:/language/SideBar/Tools/Caption}}", "text": "\\define lingo-base() $:/language/ControlPanel/\n\\define config-title()\n$:/config/PageControlButtons/Visibility/$(listItem)$\n\\end\n\n<<lingo Basics/Version/Prompt>> <<version>>\n\n<$set name=\"tv-config-toolbar-icons\" value=\"yes\">\n\n<$set name=\"tv-config-toolbar-text\" value=\"yes\">\n\n<$set name=\"tv-config-toolbar-class\" value=\"\">\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/PageControls]!has[draft.of]]\" variable=\"listItem\">\n\n<div style=\"position:relative;\">\n\n<$checkbox tiddler=<<config-title>> field=\"text\" checked=\"show\" unchecked=\"hide\" default=\"show\"/> <$transclude tiddler=<<listItem>>/> <i class=\"tc-muted\"><$transclude tiddler=<<listItem>> field=\"description\"/></i>\n\n</div>\n\n</$list>\n\n</$set>\n\n</$set>\n\n</$set>\n" }, "$:/core/ui/SideBarLists": { "title": "$:/core/ui/SideBarLists", "text": "<div class=\"tc-sidebar-lists\">\n\n<$set name=\"searchTiddler\" value=\"$:/temp/search\">\n<div class=\"tc-search\">\n<$edit-text tiddler=\"$:/temp/search\" type=\"search\" tag=\"input\" focus={{$:/config/Search/AutoFocus}} focusPopup=<<qualify \"$:/state/popup/search-dropdown\">> class=\"tc-popup-handle\"/>\n<$reveal state=\"$:/temp/search\" type=\"nomatch\" text=\"\">\n<$button tooltip={{$:/language/Buttons/AdvancedSearch/Hint}} aria-label={{$:/language/Buttons/AdvancedSearch/Caption}} class=\"tc-btn-invisible\">\n<$action-setfield $tiddler=\"$:/temp/advancedsearch\" text={{$:/temp/search}}/>\n<$action-setfield $tiddler=\"$:/temp/search\" text=\"\"/>\n<$action-navigate $to=\"$:/AdvancedSearch\"/>\n{{$:/core/images/advanced-search-button}}\n</$button>\n<$button class=\"tc-btn-invisible\">\n<$action-setfield $tiddler=\"$:/temp/search\" text=\"\" />\n{{$:/core/images/close-button}}\n</$button>\n<$button popup=<<qualify \"$:/state/popup/search-dropdown\">> class=\"tc-btn-invisible\">\n<$set name=\"resultCount\" value=\"\"\"<$count filter=\"[!is[system]search{$(searchTiddler)$}]\"/>\"\"\">\n{{$:/core/images/down-arrow}} {{$:/language/Search/Matches}}\n</$set>\n</$button>\n</$reveal>\n<$reveal state=\"$:/temp/search\" type=\"match\" text=\"\">\n<$button to=\"$:/AdvancedSearch\" tooltip={{$:/language/Buttons/AdvancedSearch/Hint}} aria-label={{$:/language/Buttons/AdvancedSearch/Caption}} class=\"tc-btn-invisible\">\n{{$:/core/images/advanced-search-button}}\n</$button>\n</$reveal>\n</div>\n\n<$reveal tag=\"div\" class=\"tc-block-dropdown-wrapper\" state=\"$:/temp/search\" type=\"nomatch\" text=\"\">\n\n<$reveal tag=\"div\" class=\"tc-block-dropdown tc-search-drop-down tc-popup-handle\" state=<<qualify \"$:/state/popup/search-dropdown\">> type=\"nomatch\" text=\"\" default=\"\">\n\n{{$:/core/ui/SearchResults}}\n\n</$reveal>\n\n</$reveal>\n\n</$set>\n\n<$macrocall $name=\"tabs\" tabsList=\"[all[shadows+tiddlers]tag[$:/tags/SideBar]!has[draft.of]]\" default={{$:/config/DefaultSidebarTab}} state=\"$:/state/tab/sidebar\" />\n\n</div>\n" }, "$:/TagManager": { "title": "$:/TagManager", "icon": "$:/core/images/tag-button", "color": "#bbb", "text": "\\define lingo-base() $:/language/TagManager/\n\\define iconEditorTab(type)\n<$list filter=\"[all[shadows+tiddlers]is[image]] [all[shadows+tiddlers]tag[$:/tags/Image]] -[type[application/pdf]] +[sort[title]] +[$type$is[system]]\">\n<$link to={{!!title}}>\n<$transclude/> <$view field=\"title\"/>\n</$link>\n</$list>\n\\end\n\\define iconEditor(title)\n<div class=\"tc-drop-down-wrapper\">\n<$button popup=<<qualify \"$:/state/popup/icon/$title$\">> class=\"tc-btn-invisible tc-btn-dropdown\">{{$:/core/images/down-arrow}}</$button>\n<$reveal state=<<qualify \"$:/state/popup/icon/$title$\">> type=\"popup\" position=\"belowleft\" text=\"\" default=\"\">\n<div class=\"tc-drop-down\">\n<$linkcatcher to=\"$title$!!icon\">\n<<iconEditorTab type:\"!\">>\n<hr/>\n<<iconEditorTab type:\"\">>\n</$linkcatcher>\n</div>\n</$reveal>\n</div>\n\\end\n\\define qualifyTitle(title)\n$title$$(currentTiddler)$\n\\end\n\\define toggleButton(state)\n<$reveal state=\"$state$\" type=\"match\" text=\"closed\" default=\"closed\">\n<$button set=\"$state$\" setTo=\"open\" class=\"tc-btn-invisible tc-btn-dropdown\" selectedClass=\"tc-selected\">\n{{$:/core/images/info-button}}\n</$button>\n</$reveal>\n<$reveal state=\"$state$\" type=\"match\" text=\"open\" default=\"closed\">\n<$button set=\"$state$\" setTo=\"closed\" class=\"tc-btn-invisible tc-btn-dropdown\" selectedClass=\"tc-selected\">\n{{$:/core/images/info-button}}\n</$button>\n</$reveal>\n\\end\n<table class=\"tc-tag-manager-table\">\n<tbody>\n<tr>\n<th><<lingo Colour/Heading>></th>\n<th class=\"tc-tag-manager-tag\"><<lingo Tag/Heading>></th>\n<th><<lingo Count/Heading>></th>\n<th><<lingo Icon/Heading>></th>\n<th><<lingo Info/Heading>></th>\n</tr>\n<$list filter=\"[tags[]!is[system]sort[title]]\">\n<tr>\n<td><$edit-text field=\"color\" tag=\"input\" type=\"color\"/></td>\n<td><$transclude tiddler=\"$:/core/ui/TagTemplate\"/></td>\n<td><$count filter=\"[all[current]tagging[]]\"/></td>\n<td>\n<$macrocall $name=\"iconEditor\" title={{!!title}}/>\n</td>\n<td>\n<$macrocall $name=\"toggleButton\" state=<<qualifyTitle \"$:/state/tag-manager/\">> /> \n</td>\n</tr>\n<tr>\n<td></td>\n<td colspan=\"4\">\n<$reveal state=<<qualifyTitle \"$:/state/tag-manager/\">> type=\"match\" text=\"open\" default=\"\">\n<table>\n<tbody>\n<tr><td><<lingo Colour/Heading>></td><td><$edit-text field=\"color\" tag=\"input\" type=\"text\" size=\"9\"/></td></tr>\n<tr><td><<lingo Icon/Heading>></td><td><$edit-text field=\"icon\" tag=\"input\" size=\"45\"/></td></tr>\n</tbody>\n</table>\n</$reveal>\n</td>\n</tr>\n</$list>\n<tr>\n<td></td>\n<td>\n{{$:/core/ui/UntaggedTemplate}}\n</td>\n<td>\n<small class=\"tc-menu-list-count\"><$count filter=\"[untagged[]!is[system]] -[tags[]]\"/></small>\n</td>\n<td></td>\n<td></td>\n</tr>\n</tbody>\n</table>\n" }, "$:/core/ui/TagTemplate": { "title": "$:/core/ui/TagTemplate", "text": "\\define tag-styles()\nbackground-color:$(backgroundColor)$;\nfill:$(foregroundColor)$;\ncolor:$(foregroundColor)$;\n\\end\n\n\\define tag-body-inner(colour,fallbackTarget,colourA,colourB)\n<$vars foregroundColor=<<contrastcolour target:\"\"\"$colour$\"\"\" fallbackTarget:\"\"\"$fallbackTarget$\"\"\" colourA:\"\"\"$colourA$\"\"\" colourB:\"\"\"$colourB$\"\"\">> backgroundColor=\"\"\"$colour$\"\"\">\n<$button popup=<<qualify \"$:/state/popup/tag\">> class=\"tc-btn-invisible tc-tag-label\" style=<<tag-styles>>>\n<$transclude tiddler={{!!icon}}/> <$view field=\"title\" format=\"text\" />\n</$button>\n<$reveal state=<<qualify \"$:/state/popup/tag\">> type=\"popup\" position=\"below\" animate=\"yes\" class=\"tc-drop-down\"><$transclude tiddler=\"$:/core/ui/ListItemTemplate\"/>\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/TagDropdown]!has[draft.of]]\" variable=\"listItem\"> \n<$transclude tiddler=<<listItem>>/> \n</$list> \n<hr>\n<$list filter=\"[all[current]tagging[]]\" template=\"$:/core/ui/ListItemTemplate\"/>\n</$reveal>\n</$vars>\n\\end\n\n\\define tag-body(colour,palette)\n<span class=\"tc-tag-list-item\">\n<$macrocall $name=\"tag-body-inner\" colour=\"\"\"$colour$\"\"\" fallbackTarget={{$palette$##tag-background}} colourA={{$palette$##foreground}} colourB={{$palette$##background}}/>\n</span>\n\\end\n\n<$macrocall $name=\"tag-body\" colour={{!!color}} palette={{$:/palette}}/>\n" }, "$:/core/ui/TiddlerFieldTemplate": { "title": "$:/core/ui/TiddlerFieldTemplate", "text": "<tr class=\"tc-view-field\">\n<td class=\"tc-view-field-name\">\n<$text text=<<listItem>>/>\n</td>\n<td class=\"tc-view-field-value\">\n<$view field=<<listItem>>/>\n</td>\n</tr>" }, "$:/core/ui/TiddlerFields": { "title": "$:/core/ui/TiddlerFields", "text": "<table class=\"tc-view-field-table\">\n<tbody>\n<$list filter=\"[all[current]fields[]sort[title]] -text\" template=\"$:/core/ui/TiddlerFieldTemplate\" variable=\"listItem\"/>\n</tbody>\n</table>\n" }, "$:/core/ui/TiddlerInfo/Advanced/PluginInfo": { "title": "$:/core/ui/TiddlerInfo/Advanced/PluginInfo", "tags": "$:/tags/TiddlerInfo/Advanced", "text": "\\define lingo-base() $:/language/TiddlerInfo/Advanced/PluginInfo/\n<$list filter=\"[all[current]has[plugin-type]]\">\n\n! <<lingo Heading>>\n\n<<lingo Hint>>\n<ul>\n<$list filter=\"[all[current]plugintiddlers[]sort[title]]\" emptyMessage=<<lingo Empty/Hint>>>\n<li>\n<$link to={{!!title}}>\n<$view field=\"title\"/>\n</$link>\n</li>\n</$list>\n</ul>\n\n</$list>\n" }, "$:/core/ui/TiddlerInfo/Advanced/ShadowInfo": { "title": "$:/core/ui/TiddlerInfo/Advanced/ShadowInfo", "tags": "$:/tags/TiddlerInfo/Advanced", "text": "\\define lingo-base() $:/language/TiddlerInfo/Advanced/ShadowInfo/\n<$set name=\"infoTiddler\" value=<<currentTiddler>>>\n\n''<<lingo Heading>>''\n\n<$list filter=\"[all[current]!is[shadow]]\">\n\n<<lingo NotShadow/Hint>>\n\n</$list>\n\n<$list filter=\"[all[current]is[shadow]]\">\n\n<<lingo Shadow/Hint>>\n\n<$list filter=\"[all[current]shadowsource[]]\">\n\n<$set name=\"pluginTiddler\" value=<<currentTiddler>>>\n<<lingo Shadow/Source>>\n</$set>\n\n</$list>\n\n<$list filter=\"[all[current]is[shadow]is[tiddler]]\">\n\n<<lingo OverriddenShadow/Hint>>\n\n</$list>\n\n\n</$list>\n</$set>\n" }, "$:/core/ui/TiddlerInfo/Advanced": { "title": "$:/core/ui/TiddlerInfo/Advanced", "tags": "$:/tags/TiddlerInfo", "caption": "{{$:/language/TiddlerInfo/Advanced/Caption}}", "text": "<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/TiddlerInfo/Advanced]!has[draft.of]]\" variable=\"listItem\">\n<$transclude tiddler=<<listItem>>/>\n\n</$list>\n" }, "$:/core/ui/TiddlerInfo/Fields": { "title": "$:/core/ui/TiddlerInfo/Fields", "tags": "$:/tags/TiddlerInfo", "caption": "{{$:/language/TiddlerInfo/Fields/Caption}}", "text": "<$transclude tiddler=\"$:/core/ui/TiddlerFields\"/>\n" }, "$:/core/ui/TiddlerInfo/List": { "title": "$:/core/ui/TiddlerInfo/List", "tags": "$:/tags/TiddlerInfo", "caption": "{{$:/language/TiddlerInfo/List/Caption}}", "text": "\\define lingo-base() $:/language/TiddlerInfo/\n<$list filter=\"[list{!!title}]\" emptyMessage=<<lingo List/Empty>> template=\"$:/core/ui/ListItemTemplate\"/>\n" }, "$:/core/ui/TiddlerInfo/Listed": { "title": "$:/core/ui/TiddlerInfo/Listed", "tags": "$:/tags/TiddlerInfo", "caption": "{{$:/language/TiddlerInfo/Listed/Caption}}", "text": "\\define lingo-base() $:/language/TiddlerInfo/\n<$list filter=\"[all[current]listed[]!is[system]]\" emptyMessage=<<lingo Listed/Empty>> template=\"$:/core/ui/ListItemTemplate\"/>\n" }, "$:/core/ui/TiddlerInfo/References": { "title": "$:/core/ui/TiddlerInfo/References", "tags": "$:/tags/TiddlerInfo", "caption": "{{$:/language/TiddlerInfo/References/Caption}}", "text": "\\define lingo-base() $:/language/TiddlerInfo/\n<$list filter=\"[all[current]backlinks[]sort[title]]\" emptyMessage=<<lingo References/Empty>> template=\"$:/core/ui/ListItemTemplate\">\n</$list>\n" }, "$:/core/ui/TiddlerInfo/Tagging": { "title": "$:/core/ui/TiddlerInfo/Tagging", "tags": "$:/tags/TiddlerInfo", "caption": "{{$:/language/TiddlerInfo/Tagging/Caption}}", "text": "\\define lingo-base() $:/language/TiddlerInfo/\n<$list filter=\"[all[current]tagging[]]\" emptyMessage=<<lingo Tagging/Empty>> template=\"$:/core/ui/ListItemTemplate\"/>\n" }, "$:/core/ui/TiddlerInfo/Tools": { "title": "$:/core/ui/TiddlerInfo/Tools", "tags": "$:/tags/TiddlerInfo", "caption": "{{$:/language/TiddlerInfo/Tools/Caption}}", "text": "\\define lingo-base() $:/language/TiddlerInfo/\n\\define config-title()\n$:/config/ViewToolbarButtons/Visibility/$(listItem)$\n\\end\n<$set name=\"tv-config-toolbar-icons\" value=\"yes\">\n\n<$set name=\"tv-config-toolbar-text\" value=\"yes\">\n\n<$set name=\"tv-config-toolbar-class\" value=\"\">\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/ViewToolbar]!has[draft.of]]\" variable=\"listItem\">\n\n<$checkbox tiddler=<<config-title>> field=\"text\" checked=\"show\" unchecked=\"hide\" default=\"show\"/> <$transclude tiddler=<<listItem>>/> <i class=\"tc-muted\"><$transclude tiddler=<<listItem>> field=\"description\"/></i>\n\n</$list>\n\n</$set>\n\n</$set>\n\n</$set>\n" }, "$:/core/ui/TiddlerInfo": { "title": "$:/core/ui/TiddlerInfo", "text": "<$macrocall $name=\"tabs\" tabsList=\"[all[shadows+tiddlers]tag[$:/tags/TiddlerInfo]!has[draft.of]]\" default={{$:/config/TiddlerInfo/Default}}/>" }, "$:/core/ui/TopBar/menu": { "title": "$:/core/ui/TopBar/menu", "tags": "$:/tags/TopRightBar", "text": "<$reveal state=\"$:/state/sidebar\" type=\"nomatch\" text=\"no\">\n<$button set=\"$:/state/sidebar\" setTo=\"no\" tooltip={{$:/language/Buttons/HideSideBar/Hint}} aria-label={{$:/language/Buttons/HideSideBar/Caption}} class=\"tc-btn-invisible\">{{$:/core/images/chevron-right}}</$button>\n</$reveal>\n<$reveal state=\"$:/state/sidebar\" type=\"match\" text=\"no\">\n<$button set=\"$:/state/sidebar\" setTo=\"yes\" tooltip={{$:/language/Buttons/ShowSideBar/Hint}} aria-label={{$:/language/Buttons/ShowSideBar/Caption}} class=\"tc-btn-invisible\">{{$:/core/images/chevron-left}}</$button>\n</$reveal>\n" }, "$:/core/ui/UntaggedTemplate": { "title": "$:/core/ui/UntaggedTemplate", "text": "\\define lingo-base() $:/language/SideBar/\n<$button popup=<<qualify \"$:/state/popup/tag\">> class=\"tc-btn-invisible tc-untagged-label tc-tag-label\">\n<<lingo Tags/Untagged/Caption>>\n</$button>\n<$reveal state=<<qualify \"$:/state/popup/tag\">> type=\"popup\" position=\"below\">\n<div class=\"tc-drop-down\">\n<$list filter=\"[untagged[]!is[system]] -[tags[]] +[sort[title]]\" template=\"$:/core/ui/ListItemTemplate\"/>\n</div>\n</$reveal>\n" }, "$:/core/ui/ViewTemplate/body": { "title": "$:/core/ui/ViewTemplate/body", "tags": "$:/tags/ViewTemplate", "text": "<$reveal tag=\"div\" class=\"tc-tiddler-body\" type=\"nomatch\" state=<<folded-state>> text=\"hide\" retain=\"yes\" animate=\"yes\">\n\n<$list filter=\"[all[current]!has[plugin-type]!field:hide-body[yes]]\">\n\n<$transclude>\n\n<$transclude tiddler=\"$:/language/MissingTiddler/Hint\"/>\n\n</$transclude>\n\n</$list>\n\n</$reveal>\n" }, "$:/core/ui/ViewTemplate/classic": { "title": "$:/core/ui/ViewTemplate/classic", "tags": "$:/tags/ViewTemplate $:/tags/EditTemplate", "text": "\\define lingo-base() $:/language/ClassicWarning/\n<$list filter=\"[all[current]type[text/x-tiddlywiki]]\">\n<div class=\"tc-message-box\">\n\n<<lingo Hint>>\n\n<$button set=\"!!type\" setTo=\"text/vnd.tiddlywiki\"><<lingo Upgrade/Caption>></$button>\n\n</div>\n</$list>\n" }, "$:/core/ui/ViewTemplate/import": { "title": "$:/core/ui/ViewTemplate/import", "tags": "$:/tags/ViewTemplate", "text": "\\define lingo-base() $:/language/Import/\n\n<$list filter=\"[all[current]field:plugin-type[import]]\">\n\n<div class=\"tc-import\">\n\n<<lingo Listing/Hint>>\n\n<$button message=\"tm-delete-tiddler\" param=<<currentTiddler>>><<lingo Listing/Cancel/Caption>></$button>\n<$button message=\"tm-perform-import\" param=<<currentTiddler>>><<lingo Listing/Import/Caption>></$button>\n\n{{||$:/core/ui/ImportListing}}\n\n<$button message=\"tm-delete-tiddler\" param=<<currentTiddler>>><<lingo Listing/Cancel/Caption>></$button>\n<$button message=\"tm-perform-import\" param=<<currentTiddler>>><<lingo Listing/Import/Caption>></$button>\n\n</div>\n\n</$list>\n" }, "$:/core/ui/ViewTemplate/plugin": { "title": "$:/core/ui/ViewTemplate/plugin", "tags": "$:/tags/ViewTemplate", "text": "<$list filter=\"[all[current]has[plugin-type]] -[all[current]field:plugin-type[import]]\">\n\n{{||$:/core/ui/TiddlerInfo/Advanced/PluginInfo}}\n\n</$list>\n" }, "$:/core/ui/ViewTemplate/subtitle": { "title": "$:/core/ui/ViewTemplate/subtitle", "tags": "$:/tags/ViewTemplate", "text": "<$reveal type=\"nomatch\" state=<<folded-state>> text=\"hide\" tag=\"div\" retain=\"yes\" animate=\"yes\">\n<div class=\"tc-subtitle\">\n<$link to={{!!modifier}}>\n<$view field=\"modifier\"/>\n</$link> <$view field=\"modified\" format=\"date\" template={{$:/language/Tiddler/DateFormat}}/>\n</div>\n</$reveal>\n" }, "$:/core/ui/ViewTemplate/tags": { "title": "$:/core/ui/ViewTemplate/tags", "tags": "$:/tags/ViewTemplate", "text": "<$reveal type=\"nomatch\" state=<<folded-state>> text=\"hide\" tag=\"div\" retain=\"yes\" animate=\"yes\">\n<div class=\"tc-tags-wrapper\"><$list filter=\"[all[current]tags[]sort[title]]\" template=\"$:/core/ui/TagTemplate\" storyview=\"pop\"/></div>\n</$reveal>" }, "$:/core/ui/ViewTemplate/title": { "title": "$:/core/ui/ViewTemplate/title", "tags": "$:/tags/ViewTemplate", "text": "\\define title-styles()\nfill:$(foregroundColor)$;\n\\end\n\\define config-title()\n$:/config/ViewToolbarButtons/Visibility/$(listItem)$\n\\end\n<div class=\"tc-tiddler-title\">\n<div class=\"tc-titlebar\">\n<span class=\"tc-tiddler-controls\">\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/ViewToolbar]!has[draft.of]]\" variable=\"listItem\"><$reveal type=\"nomatch\" state=<<config-title>> text=\"hide\"><$transclude tiddler=<<listItem>>/></$reveal></$list>\n</span>\n<$set name=\"tv-wikilinks\" value={{$:/config/Tiddlers/TitleLinks}}>\n<$link>\n<$set name=\"foregroundColor\" value={{!!color}}>\n<span class=\"tc-tiddler-title-icon\" style=<<title-styles>>>\n<$transclude tiddler={{!!icon}}/>\n</span>\n</$set>\n<$list filter=\"[all[current]removeprefix[$:/]]\">\n<h2 class=\"tc-title\" title={{$:/language/SystemTiddler/Tooltip}}>\n<span class=\"tc-system-title-prefix\">$:/</span><$text text=<<currentTiddler>>/>\n</h2>\n</$list>\n<$list filter=\"[all[current]!prefix[$:/]]\">\n<h2 class=\"tc-title\">\n<$view field=\"title\"/>\n</h2>\n</$list>\n</$link>\n</$set>\n</div>\n\n<$reveal type=\"nomatch\" text=\"\" default=\"\" state=<<tiddlerInfoState>> class=\"tc-tiddler-info tc-popup-handle\" animate=\"yes\" retain=\"yes\">\n\n<$transclude tiddler=\"$:/core/ui/TiddlerInfo\"/>\n\n</$reveal>\n</div>" }, "$:/core/ui/ViewTemplate/unfold": { "title": "$:/core/ui/ViewTemplate/unfold", "tags": "$:/tags/ViewTemplate", "text": "<$reveal tag=\"div\" type=\"nomatch\" state=\"$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/fold-bar\" text=\"hide\">\n<$reveal tag=\"div\" type=\"nomatch\" state=<<folded-state>> text=\"hide\" default=\"show\" retain=\"yes\" animate=\"yes\">\n<$button tooltip={{$:/language/Buttons/Fold/Hint}} aria-label={{$:/language/Buttons/Fold/Caption}} class=\"tc-fold-banner\">\n<$action-sendmessage $message=\"tm-fold-tiddler\" $param=<<currentTiddler>> foldedState=<<folded-state>>/>\n{{$:/core/images/chevron-up}}\n</$button>\n</$reveal>\n<$reveal tag=\"div\" type=\"nomatch\" state=<<folded-state>> text=\"show\" default=\"show\" retain=\"yes\" animate=\"yes\">\n<$button tooltip={{$:/language/Buttons/Unfold/Hint}} aria-label={{$:/language/Buttons/Unfold/Caption}} class=\"tc-unfold-banner\">\n<$action-sendmessage $message=\"tm-fold-tiddler\" $param=<<currentTiddler>> foldedState=<<folded-state>>/>\n{{$:/core/images/chevron-down}}\n</$button>\n</$reveal>\n</$reveal>\n" }, "$:/core/ui/ViewTemplate": { "title": "$:/core/ui/ViewTemplate", "text": "\\define frame-classes()\ntc-tiddler-frame tc-tiddler-view-frame $(missingTiddlerClass)$ $(shadowTiddlerClass)$ $(systemTiddlerClass)$ $(tiddlerTagClasses)$\n\\end\n\\define folded-state()\n$:/state/folded/$(currentTiddler)$\n\\end\n<$set name=\"storyTiddler\" value=<<currentTiddler>>><$set name=\"tiddlerInfoState\" value=<<qualify \"$:/state/popup/tiddler-info\">>><$tiddler tiddler=<<currentTiddler>>><div class=<<frame-classes>>><$list filter=\"[all[shadows+tiddlers]tag[$:/tags/ViewTemplate]!has[draft.of]]\" variable=\"listItem\"><$transclude tiddler=<<listItem>>/></$list>\n</div>\n</$tiddler></$set></$set>\n" }, "$:/core/ui/Buttons/clone": { "title": "$:/core/ui/Buttons/clone", "tags": "$:/tags/ViewToolbar", "caption": "{{$:/core/images/clone-button}} {{$:/language/Buttons/Clone/Caption}}", "description": "{{$:/language/Buttons/Clone/Hint}}", "text": "<$button message=\"tm-new-tiddler\" param=<<currentTiddler>> tooltip={{$:/language/Buttons/Clone/Hint}} aria-label={{$:/language/Buttons/Clone/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\">\n{{$:/core/images/clone-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Clone/Caption}}/></span>\n</$list>\n</$button>" }, "$:/core/ui/Buttons/close-others": { "title": "$:/core/ui/Buttons/close-others", "tags": "$:/tags/ViewToolbar", "caption": "{{$:/core/images/close-others-button}} {{$:/language/Buttons/CloseOthers/Caption}}", "description": "{{$:/language/Buttons/CloseOthers/Hint}}", "text": "<$button message=\"tm-close-other-tiddlers\" param=<<currentTiddler>> tooltip={{$:/language/Buttons/CloseOthers/Hint}} aria-label={{$:/language/Buttons/CloseOthers/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\">\n{{$:/core/images/close-others-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/CloseOthers/Caption}}/></span>\n</$list>\n</$button>" }, "$:/core/ui/Buttons/close": { "title": "$:/core/ui/Buttons/close", "tags": "$:/tags/ViewToolbar", "caption": "{{$:/core/images/close-button}} {{$:/language/Buttons/Close/Caption}}", "description": "{{$:/language/Buttons/Close/Hint}}", "text": "<$button message=\"tm-close-tiddler\" tooltip={{$:/language/Buttons/Close/Hint}} aria-label={{$:/language/Buttons/Close/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\">\n{{$:/core/images/close-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Close/Caption}}/></span>\n</$list>\n</$button>" }, "$:/core/ui/Buttons/edit": { "title": "$:/core/ui/Buttons/edit", "tags": "$:/tags/ViewToolbar", "caption": "{{$:/core/images/edit-button}} {{$:/language/Buttons/Edit/Caption}}", "description": "{{$:/language/Buttons/Edit/Hint}}", "text": "<$button message=\"tm-edit-tiddler\" tooltip={{$:/language/Buttons/Edit/Hint}} aria-label={{$:/language/Buttons/Edit/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\">\n{{$:/core/images/edit-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Edit/Caption}}/></span>\n</$list>\n</$button>" }, "$:/core/ui/Buttons/export-tiddler": { "title": "$:/core/ui/Buttons/export-tiddler", "tags": "$:/tags/ViewToolbar", "caption": "{{$:/core/images/export-button}} {{$:/language/Buttons/ExportTiddler/Caption}}", "description": "{{$:/language/Buttons/ExportTiddler/Hint}}", "text": "\\define makeExportFilter()\n[[$(currentTiddler)$]]\n\\end\n<$macrocall $name=\"exportButton\" exportFilter=<<makeExportFilter>> lingoBase=\"$:/language/Buttons/ExportTiddler/\" baseFilename=<<currentTiddler>>/>" }, "$:/core/ui/Buttons/fold-bar": { "title": "$:/core/ui/Buttons/fold-bar", "tags": "$:/tags/ViewToolbar", "caption": "{{$:/language/Buttons/Fold/FoldBar/Caption}}", "description": "{{$:/language/Buttons/Fold/FoldBar/Hint}}", "text": "<!-- This dummy toolbar button is here to allow visibility of the fold-bar to be controlled as if it were a toolbar button -->" }, "$:/core/ui/Buttons/fold-others": { "title": "$:/core/ui/Buttons/fold-others", "tags": "$:/tags/ViewToolbar", "caption": "{{$:/core/images/fold-others-button}} {{$:/language/Buttons/FoldOthers/Caption}}", "description": "{{$:/language/Buttons/FoldOthers/Hint}}", "text": "<$button tooltip={{$:/language/Buttons/FoldOthers/Hint}} aria-label={{$:/language/Buttons/FoldOthers/Caption}} class=<<tv-config-toolbar-class>>>\n<$action-sendmessage $message=\"tm-fold-other-tiddlers\" $param=<<currentTiddler>> foldedStatePrefix=\"$:/state/folded/\"/>\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\" variable=\"listItem\">\n{{$:/core/images/fold-others-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/FoldOthers/Caption}}/></span>\n</$list>\n</$button>" }, "$:/core/ui/Buttons/fold": { "title": "$:/core/ui/Buttons/fold", "tags": "$:/tags/ViewToolbar", "caption": "{{$:/core/images/fold-button}} {{$:/language/Buttons/Fold/Caption}}", "description": "{{$:/language/Buttons/Fold/Hint}}", "text": "<$reveal type=\"nomatch\" state=<<folded-state>> text=\"hide\" default=\"show\"><$button tooltip={{$:/language/Buttons/Fold/Hint}} aria-label={{$:/language/Buttons/Fold/Caption}} class=<<tv-config-toolbar-class>>>\n<$action-sendmessage $message=\"tm-fold-tiddler\" $param=<<currentTiddler>> foldedState=<<folded-state>>/>\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\" variable=\"listItem\">\n{{$:/core/images/fold-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\">\n<$text text={{$:/language/Buttons/Fold/Caption}}/>\n</span>\n</$list>\n</$button></$reveal><$reveal type=\"match\" state=<<folded-state>> text=\"hide\" default=\"show\"><$button tooltip={{$:/language/Buttons/Unfold/Hint}} aria-label={{$:/language/Buttons/Unfold/Caption}} class=<<tv-config-toolbar-class>>>\n<$action-sendmessage $message=\"tm-fold-tiddler\" $param=<<currentTiddler>> foldedState=<<folded-state>>/>\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\" variable=\"listItem\">\n{{$:/core/images/unfold-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\">\n<$text text={{$:/language/Buttons/Unfold/Caption}}/>\n</span>\n</$list>\n</$button></$reveal>" }, "$:/core/ui/Buttons/info": { "title": "$:/core/ui/Buttons/info", "tags": "$:/tags/ViewToolbar", "caption": "{{$:/core/images/info-button}} {{$:/language/Buttons/Info/Caption}}", "description": "{{$:/language/Buttons/Info/Hint}}", "text": "<$button popup=<<tiddlerInfoState>> tooltip={{$:/language/Buttons/Info/Hint}} aria-label={{$:/language/Buttons/Info/Caption}} class=<<tv-config-toolbar-class>> selectedClass=\"tc-selected\">\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\">\n{{$:/core/images/info-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Info/Caption}}/></span>\n</$list>\n</$button>" }, "$:/core/ui/Buttons/more-tiddler-actions": { "title": "$:/core/ui/Buttons/more-tiddler-actions", "tags": "$:/tags/ViewToolbar", "caption": "{{$:/core/images/down-arrow}} {{$:/language/Buttons/More/Caption}}", "description": "{{$:/language/Buttons/More/Hint}}", "text": "\\define config-title()\n$:/config/ViewToolbarButtons/Visibility/$(listItem)$\n\\end\n<$button popup=<<qualify \"$:/state/popup/more\">> tooltip={{$:/language/Buttons/More/Hint}} aria-label={{$:/language/Buttons/More/Caption}} class=<<tv-config-toolbar-class>> selectedClass=\"tc-selected\">\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\">\n{{$:/core/images/down-arrow}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/More/Caption}}/></span>\n</$list>\n</$button><$reveal state=<<qualify \"$:/state/popup/more\">> type=\"popup\" position=\"below\" animate=\"yes\">\n\n<div class=\"tc-drop-down\">\n\n<$set name=\"tv-config-toolbar-icons\" value=\"yes\">\n\n<$set name=\"tv-config-toolbar-text\" value=\"yes\">\n\n<$set name=\"tv-config-toolbar-class\" value=\"tc-btn-invisible\">\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/ViewToolbar]!has[draft.of]] -[[$:/core/ui/Buttons/more-tiddler-actions]]\" variable=\"listItem\">\n\n<$reveal type=\"match\" state=<<config-title>> text=\"hide\">\n\n<$transclude tiddler=<<listItem>> mode=\"inline\"/>\n\n</$reveal>\n\n</$list>\n\n</$set>\n\n</$set>\n\n</$set>\n\n</div>\n\n</$reveal>" }, "$:/core/ui/Buttons/new-here": { "title": "$:/core/ui/Buttons/new-here", "tags": "$:/tags/ViewToolbar", "caption": "{{$:/core/images/new-here-button}} {{$:/language/Buttons/NewHere/Caption}}", "description": "{{$:/language/Buttons/NewHere/Hint}}", "text": "\\define newHereButtonTags()\n[[$(currentTiddler)$]]\n\\end\n\\define newHereButton()\n<$button tooltip={{$:/language/Buttons/NewHere/Hint}} aria-label={{$:/language/Buttons/NewHere/Caption}} class=<<tv-config-toolbar-class>>>\n<$action-sendmessage $message=\"tm-new-tiddler\" tags=<<newHereButtonTags>>/>\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\">\n{{$:/core/images/new-here-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/NewHere/Caption}}/></span>\n</$list>\n</$button>\n\\end\n<<newHereButton>>" }, "$:/core/ui/Buttons/new-journal-here": { "title": "$:/core/ui/Buttons/new-journal-here", "tags": "$:/tags/ViewToolbar", "caption": "{{$:/core/images/new-journal-button}} {{$:/language/Buttons/NewJournalHere/Caption}}", "description": "{{$:/language/Buttons/NewJournalHere/Hint}}", "text": "\\define journalButtonTags()\n[[$(currentTiddlerTag)$]] $(journalTags)$\n\\end\n\\define journalButton()\n<$button tooltip={{$:/language/Buttons/NewJournalHere/Hint}} aria-label={{$:/language/Buttons/NewJournalHere/Caption}} class=<<tv-config-toolbar-class>>>\n<$action-sendmessage $message=\"tm-new-tiddler\" title=<<now \"$(journalTitleTemplate)$\">> tags=<<journalButtonTags>>/>\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\">\n{{$:/core/images/new-journal-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/NewJournalHere/Caption}}/></span>\n</$list>\n</$button>\n\\end\n<$set name=\"journalTitleTemplate\" value={{$:/config/NewJournal/Title}}>\n<$set name=\"journalTags\" value={{$:/config/NewJournal/Tags}}>\n<$set name=\"currentTiddlerTag\" value=<<currentTiddler>>>\n<<journalButton>>\n</$set></$set></$set>" }, "$:/core/ui/Buttons/open-window": { "title": "$:/core/ui/Buttons/open-window", "tags": "$:/tags/ViewToolbar", "caption": "{{$:/core/images/open-window}} {{$:/language/Buttons/OpenWindow/Caption}}", "description": "{{$:/language/Buttons/OpenWindow/Hint}}", "text": "<$button message=\"tm-open-window\" tooltip={{$:/language/Buttons/OpenWindow/Hint}} aria-label={{$:/language/Buttons/OpenWindow/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\">\n{{$:/core/images/open-window}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/OpenWindow/Caption}}/></span>\n</$list>\n</$button>" }, "$:/core/ui/Buttons/permalink": { "title": "$:/core/ui/Buttons/permalink", "tags": "$:/tags/ViewToolbar", "caption": "{{$:/core/images/permalink-button}} {{$:/language/Buttons/Permalink/Caption}}", "description": "{{$:/language/Buttons/Permalink/Hint}}", "text": "<$button message=\"tm-permalink\" tooltip={{$:/language/Buttons/Permalink/Hint}} aria-label={{$:/language/Buttons/Permalink/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\">\n{{$:/core/images/permalink-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Permalink/Caption}}/></span>\n</$list>\n</$button>" }, "$:/core/ui/Buttons/permaview": { "title": "$:/core/ui/Buttons/permaview", "tags": "$:/tags/ViewToolbar $:/tags/PageControls", "caption": "{{$:/core/images/permaview-button}} {{$:/language/Buttons/Permaview/Caption}}", "description": "{{$:/language/Buttons/Permaview/Hint}}", "text": "<$button message=\"tm-permaview\" tooltip={{$:/language/Buttons/Permaview/Hint}} aria-label={{$:/language/Buttons/Permaview/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\">\n{{$:/core/images/permaview-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Permaview/Caption}}/></span>\n</$list>\n</$button>" }, "$:/DefaultTiddlers": { "title": "$:/DefaultTiddlers", "text": "GettingStarted\n" }, "$:/temp/advancedsearch": { "title": "$:/temp/advancedsearch", "text": "" }, "$:/snippets/allfields": { "title": "$:/snippets/allfields", "text": "\\define renderfield(title)\n<tr class=\"tc-view-field\"><td class=\"tc-view-field-name\">''$title$'':</td><td class=\"tc-view-field-value\">//{{$:/language/Docs/Fields/$title$}}//</td></tr>\n\\end\n<table class=\"tc-view-field-table\"><tbody><$list filter=\"[fields[]sort[title]]\" variable=\"listItem\"><$macrocall $name=\"renderfield\" title=<<listItem>>/></$list>\n</tbody></table>\n" }, "$:/config/AnimationDuration": { "title": "$:/config/AnimationDuration", "text": "400" }, "$:/config/AutoSave": { "title": "$:/config/AutoSave", "text": "yes" }, "$:/config/BitmapEditor/Colour": { "title": "$:/config/BitmapEditor/Colour", "text": "#444" }, "$:/config/BitmapEditor/ImageSizes": { "title": "$:/config/BitmapEditor/ImageSizes", "text": "[[62px 100px]] [[100px 62px]] [[124px 200px]] [[200px 124px]] [[248px 400px]] [[371px 600px]] [[400px 248px]] [[556px 900px]] [[600px 371px]] [[742px 1200px]] [[900px 556px]] [[1200px 742px]]" }, "$:/config/BitmapEditor/LineWidth": { "title": "$:/config/BitmapEditor/LineWidth", "text": "3px" }, "$:/config/BitmapEditor/LineWidths": { "title": "$:/config/BitmapEditor/LineWidths", "text": "0.25px 0.5px 1px 2px 3px 4px 6px 8px 10px 16px 20px 28px 40px 56px 80px" }, "$:/config/BitmapEditor/Opacities": { "title": "$:/config/BitmapEditor/Opacities", "text": "0.01 0.025 0.05 0.075 0.1 0.15 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0" }, "$:/config/BitmapEditor/Opacity": { "title": "$:/config/BitmapEditor/Opacity", "text": "1.0" }, "$:/config/DefaultSidebarTab": { "title": "$:/config/DefaultSidebarTab", "text": "$:/core/ui/SideBar/Open" }, "$:/config/Drafts/TypingTimeout": { "title": "$:/config/Drafts/TypingTimeout", "text": "400" }, "$:/config/EditTemplateFields/Visibility/title": { "title": "$:/config/EditTemplateFields/Visibility/title", "text": "hide" }, "$:/config/EditTemplateFields/Visibility/tags": { "title": "$:/config/EditTemplateFields/Visibility/tags", "text": "hide" }, "$:/config/EditTemplateFields/Visibility/text": { "title": "$:/config/EditTemplateFields/Visibility/text", "text": "hide" }, "$:/config/EditTemplateFields/Visibility/creator": { "title": "$:/config/EditTemplateFields/Visibility/creator", "text": "hide" }, "$:/config/EditTemplateFields/Visibility/created": { "title": "$:/config/EditTemplateFields/Visibility/created", "text": "hide" }, "$:/config/EditTemplateFields/Visibility/modified": { "title": "$:/config/EditTemplateFields/Visibility/modified", "text": "hide" }, "$:/config/EditTemplateFields/Visibility/modifier": { "title": "$:/config/EditTemplateFields/Visibility/modifier", "text": "hide" }, "$:/config/EditTemplateFields/Visibility/type": { "title": "$:/config/EditTemplateFields/Visibility/type", "text": "hide" }, "$:/config/EditTemplateFields/Visibility/draft.title": { "title": "$:/config/EditTemplateFields/Visibility/draft.title", "text": "hide" }, "$:/config/EditTemplateFields/Visibility/draft.of": { "title": "$:/config/EditTemplateFields/Visibility/draft.of", "text": "hide" }, "$:/config/EditTemplateFields/Visibility/revision": { "title": "$:/config/EditTemplateFields/Visibility/revision", "text": "hide" }, "$:/config/EditTemplateFields/Visibility/bag": { "title": "$:/config/EditTemplateFields/Visibility/bag", "text": "hide" }, "$:/config/EditorToolbarButtons/Visibility/$:/core/ui/EditorToolbar/heading-4": { "title": "$:/config/EditorToolbarButtons/Visibility/$:/core/ui/EditorToolbar/heading-4", "text": "hide" }, "$:/config/EditorToolbarButtons/Visibility/$:/core/ui/EditorToolbar/heading-5": { "title": "$:/config/EditorToolbarButtons/Visibility/$:/core/ui/EditorToolbar/heading-5", "text": "hide" }, "$:/config/EditorToolbarButtons/Visibility/$:/core/ui/EditorToolbar/heading-6": { "title": "$:/config/EditorToolbarButtons/Visibility/$:/core/ui/EditorToolbar/heading-6", "text": "hide" }, "$:/config/EditorTypeMappings/image/gif": { "title": "$:/config/EditorTypeMappings/image/gif", "text": "bitmap" }, "$:/config/EditorTypeMappings/image/jpeg": { "title": "$:/config/EditorTypeMappings/image/jpeg", "text": "bitmap" }, "$:/config/EditorTypeMappings/image/jpg": { "title": "$:/config/EditorTypeMappings/image/jpg", "text": "bitmap" }, "$:/config/EditorTypeMappings/image/png": { "title": "$:/config/EditorTypeMappings/image/png", "text": "bitmap" }, "$:/config/EditorTypeMappings/image/x-icon": { "title": "$:/config/EditorTypeMappings/image/x-icon", "text": "bitmap" }, "$:/config/EditorTypeMappings/text/vnd.tiddlywiki": { "title": "$:/config/EditorTypeMappings/text/vnd.tiddlywiki", "text": "text" }, "$:/config/MissingLinks": { "title": "$:/config/MissingLinks", "text": "yes" }, "$:/config/Navigation/UpdateAddressBar": { "title": "$:/config/Navigation/UpdateAddressBar", "text": "no" }, "$:/config/Navigation/UpdateHistory": { "title": "$:/config/Navigation/UpdateHistory", "text": "no" }, "$:/config/OfficialPluginLibrary": { "title": "$:/config/OfficialPluginLibrary", "tags": "$:/tags/PluginLibrary", "url": "http://tiddlywiki.com/library/v5.1.12/index.html", "caption": "{{$:/language/OfficialPluginLibrary}}", "text": "{{$:/language/OfficialPluginLibrary/Hint}}\n" }, "$:/config/Navigation/openLinkFromInsideRiver": { "title": "$:/config/Navigation/openLinkFromInsideRiver", "text": "below" }, "$:/config/Navigation/openLinkFromOutsideRiver": { "title": "$:/config/Navigation/openLinkFromOutsideRiver", "text": "top" }, "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/advanced-search": { "title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/advanced-search", "text": "hide" }, "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/close-all": { "title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/close-all", "text": "hide" }, "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/encryption": { "title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/encryption", "text": "hide" }, "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/export-page": { "title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/export-page", "text": "hide" }, "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/fold-all": { "title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/fold-all", "text": "hide" }, "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/full-screen": { "title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/full-screen", "text": "hide" }, "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/home": { "title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/home", "text": "hide" }, "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/refresh": { "title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/refresh", "text": "hide" }, "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/import": { "title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/import", "text": "hide" }, "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/language": { "title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/language", "text": "hide" }, "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/tag-manager": { "title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/tag-manager", "text": "hide" }, "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/more-page-actions": { "title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/more-page-actions", "text": "hide" }, "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/new-journal": { "title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/new-journal", "text": "hide" }, "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/new-image": { "title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/new-image", "text": "hide" }, "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/palette": { "title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/palette", "text": "hide" }, "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/permaview": { "title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/permaview", "text": "hide" }, "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/storyview": { "title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/storyview", "text": "hide" }, "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/theme": { "title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/theme", "text": "hide" }, "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/unfold-all": { "title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/unfold-all", "text": "hide" }, "$:/config/Performance/Instrumentation": { "title": "$:/config/Performance/Instrumentation", "text": "no" }, "$:/config/SaveWikiButton/Template": { "title": "$:/config/SaveWikiButton/Template", "text": "$:/core/save/all" }, "$:/config/SaverFilter": { "title": "$:/config/SaverFilter", "text": "[all[]] -[[$:/HistoryList]] -[[$:/StoryList]] -[[$:/Import]] -[[$:/isEncrypted]] -[[$:/UploadName]] -[prefix[$:/state/]] -[prefix[$:/temp/]]" }, "$:/config/Search/AutoFocus": { "title": "$:/config/Search/AutoFocus", "text": "true" }, "$:/config/SearchResults/Default": { "title": "$:/config/SearchResults/Default", "text": "$:/core/ui/DefaultSearchResultList" }, "$:/config/ShortcutInfo/bold": { "title": "$:/config/ShortcutInfo/bold", "text": "{{$:/language/Buttons/Bold/Hint}}" }, "$:/config/ShortcutInfo/cancel-edit-tiddler": { "title": "$:/config/ShortcutInfo/cancel-edit-tiddler", "text": "{{$:/language/Buttons/Cancel/Hint}}" }, "$:/config/ShortcutInfo/excise": { "title": "$:/config/ShortcutInfo/excise", "text": "{{$:/language/Buttons/Excise/Hint}}" }, "$:/config/ShortcutInfo/heading-1": { "title": "$:/config/ShortcutInfo/heading-1", "text": "{{$:/language/Buttons/Heading1/Hint}}" }, "$:/config/ShortcutInfo/heading-2": { "title": "$:/config/ShortcutInfo/heading-2", "text": "{{$:/language/Buttons/Heading2/Hint}}" }, "$:/config/ShortcutInfo/heading-3": { "title": "$:/config/ShortcutInfo/heading-3", "text": "{{$:/language/Buttons/Heading3/Hint}}" }, "$:/config/ShortcutInfo/heading-4": { "title": "$:/config/ShortcutInfo/heading-4", "text": "{{$:/language/Buttons/Heading4/Hint}}" }, "$:/config/ShortcutInfo/heading-5": { "title": "$:/config/ShortcutInfo/heading-5", "text": "{{$:/language/Buttons/Heading5/Hint}}" }, "$:/config/ShortcutInfo/heading-6": { "title": "$:/config/ShortcutInfo/heading-6", "text": "{{$:/language/Buttons/Heading6/Hint}}" }, "$:/config/ShortcutInfo/italic": { "title": "$:/config/ShortcutInfo/italic", "text": "{{$:/language/Buttons/Italic/Hint}}" }, "$:/config/ShortcutInfo/link": { "title": "$:/config/ShortcutInfo/link", "text": "{{$:/language/Buttons/Link/Hint}}" }, "$:/config/ShortcutInfo/list-bullet": { "title": "$:/config/ShortcutInfo/list-bullet", "text": "{{$:/language/Buttons/ListBullet/Hint}}" }, "$:/config/ShortcutInfo/list-number": { "title": "$:/config/ShortcutInfo/list-number", "text": "{{$:/language/Buttons/ListNumber/Hint}}" }, "$:/config/ShortcutInfo/mono-block": { "title": "$:/config/ShortcutInfo/mono-block", "text": "{{$:/language/Buttons/MonoBlock/Hint}}" }, "$:/config/ShortcutInfo/mono-line": { "title": "$:/config/ShortcutInfo/mono-line", "text": "{{$:/language/Buttons/MonoLine/Hint}}" }, "$:/config/ShortcutInfo/picture": { "title": "$:/config/ShortcutInfo/picture", "text": "{{$:/language/Buttons/Picture/Hint}}" }, "$:/config/ShortcutInfo/preview": { "title": "$:/config/ShortcutInfo/preview", "text": "{{$:/language/Buttons/Preview/Hint}}" }, "$:/config/ShortcutInfo/quote": { "title": "$:/config/ShortcutInfo/quote", "text": "{{$:/language/Buttons/Quote/Hint}}" }, "$:/config/ShortcutInfo/save-tiddler": { "title": "$:/config/ShortcutInfo/save-tiddler", "text": "{{$:/language/Buttons/Save/Hint}}" }, "$:/config/ShortcutInfo/stamp": { "title": "$:/config/ShortcutInfo/stamp", "text": "{{$:/language/Buttons/Stamp/Hint}}" }, "$:/config/ShortcutInfo/strikethrough": { "title": "$:/config/ShortcutInfo/strikethrough", "text": "{{$:/language/Buttons/Strikethrough/Hint}}" }, "$:/config/ShortcutInfo/subscript": { "title": "$:/config/ShortcutInfo/subscript", "text": "{{$:/language/Buttons/Subscript/Hint}}" }, "$:/config/ShortcutInfo/superscript": { "title": "$:/config/ShortcutInfo/superscript", "text": "{{$:/language/Buttons/Superscript/Hint}}" }, "$:/config/ShortcutInfo/underline": { "title": "$:/config/ShortcutInfo/underline", "text": "{{$:/language/Buttons/Underline/Hint}}" }, "$:/config/SyncFilter": { "title": "$:/config/SyncFilter", "text": "[is[tiddler]] -[[$:/HistoryList]] -[[$:/Import]] -[[$:/isEncrypted]] -[prefix[$:/status/]] -[prefix[$:/state/]] -[prefix[$:/temp/]]" }, "$:/config/TextEditor/EditorHeight/Height": { "title": "$:/config/TextEditor/EditorHeight/Height", "text": "400px" }, "$:/config/TextEditor/EditorHeight/Mode": { "title": "$:/config/TextEditor/EditorHeight/Mode", "text": "auto" }, "$:/config/TiddlerInfo/Default": { "title": "$:/config/TiddlerInfo/Default", "text": "$:/core/ui/TiddlerInfo/Fields" }, "$:/config/Tiddlers/TitleLinks": { "title": "$:/config/Tiddlers/TitleLinks", "text": "no" }, "$:/config/Toolbar/ButtonClass": { "title": "$:/config/Toolbar/ButtonClass", "text": "tc-btn-invisible" }, "$:/config/Toolbar/Icons": { "title": "$:/config/Toolbar/Icons", "text": "yes" }, "$:/config/Toolbar/Text": { "title": "$:/config/Toolbar/Text", "text": "no" }, "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/clone": { "title": "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/clone", "text": "hide" }, "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/close-others": { "title": "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/close-others", "text": "hide" }, "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/export-tiddler": { "title": "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/export-tiddler", "text": "hide" }, "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/info": { "title": "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/info", "text": "hide" }, "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/more-tiddler-actions": { "title": "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/more-tiddler-actions", "text": "show" }, "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/new-here": { "title": "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/new-here", "text": "hide" }, "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/new-journal-here": { "title": "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/new-journal-here", "text": "hide" }, "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/open-window": { "title": "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/open-window", "text": "hide" }, "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/permalink": { "title": "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/permalink", "text": "hide" }, "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/permaview": { "title": "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/permaview", "text": "hide" }, "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/delete": { "title": "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/delete", "text": "hide" }, "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/fold": { "title": "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/fold", "text": "hide" }, "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/fold-bar": { "title": "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/fold-bar", "text": "hide" }, "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/fold-others": { "title": "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/fold-others", "text": "hide" }, "$:/config/shortcuts-mac/bold": { "title": "$:/config/shortcuts-mac/bold", "text": "meta-B" }, "$:/config/shortcuts-mac/italic": { "title": "$:/config/shortcuts-mac/italic", "text": "meta-I" }, "$:/config/shortcuts-mac/underline": { "title": "$:/config/shortcuts-mac/underline", "text": "meta-U" }, "$:/config/shortcuts-not-mac/bold": { "title": "$:/config/shortcuts-not-mac/bold", "text": "ctrl-B" }, "$:/config/shortcuts-not-mac/italic": { "title": "$:/config/shortcuts-not-mac/italic", "text": "ctrl-I" }, "$:/config/shortcuts-not-mac/underline": { "title": "$:/config/shortcuts-not-mac/underline", "text": "ctrl-U" }, "$:/config/shortcuts/cancel-edit-tiddler": { "title": "$:/config/shortcuts/cancel-edit-tiddler", "text": "escape" }, "$:/config/shortcuts/excise": { "title": "$:/config/shortcuts/excise", "text": "ctrl-E" }, "$:/config/shortcuts/heading-1": { "title": "$:/config/shortcuts/heading-1", "text": "ctrl-1" }, "$:/config/shortcuts/heading-2": { "title": "$:/config/shortcuts/heading-2", "text": "ctrl-2" }, "$:/config/shortcuts/heading-3": { "title": "$:/config/shortcuts/heading-3", "text": "ctrl-3" }, "$:/config/shortcuts/heading-4": { "title": "$:/config/shortcuts/heading-4", "text": "ctrl-4" }, "$:/config/shortcuts/heading-5": { "title": "$:/config/shortcuts/heading-5", "text": "ctrl-5" }, "$:/config/shortcuts/heading-6": { "title": "$:/config/shortcuts/heading-6", "text": "ctrl-6" }, "$:/config/shortcuts/link": { "title": "$:/config/shortcuts/link", "text": "ctrl-L" }, "$:/config/shortcuts/list-bullet": { "title": "$:/config/shortcuts/list-bullet", "text": "ctrl-shift-L" }, "$:/config/shortcuts/list-number": { "title": "$:/config/shortcuts/list-number", "text": "ctrl-shift-N" }, "$:/config/shortcuts/mono-block": { "title": "$:/config/shortcuts/mono-block", "text": "ctrl-shift-M" }, "$:/config/shortcuts/mono-line": { "title": "$:/config/shortcuts/mono-line", "text": "ctrl-M" }, "$:/config/shortcuts/picture": { "title": "$:/config/shortcuts/picture", "text": "ctrl-shift-I" }, "$:/config/shortcuts/preview": { "title": "$:/config/shortcuts/preview", "text": "alt-P" }, "$:/config/shortcuts/quote": { "title": "$:/config/shortcuts/quote", "text": "ctrl-Q" }, "$:/config/shortcuts/save-tiddler": { "title": "$:/config/shortcuts/save-tiddler", "text": "ctrl+enter" }, "$:/config/shortcuts/stamp": { "title": "$:/config/shortcuts/stamp", "text": "ctrl-S" }, "$:/config/shortcuts/strikethrough": { "title": "$:/config/shortcuts/strikethrough", "text": "ctrl-T" }, "$:/config/shortcuts/subscript": { "title": "$:/config/shortcuts/subscript", "text": "ctrl-shift-B" }, "$:/config/shortcuts/superscript": { "title": "$:/config/shortcuts/superscript", "text": "ctrl-shift-P" }, "$:/config/WikiParserRules/Inline/wikilink": { "title": "$:/config/WikiParserRules/Inline/wikilink", "text": "enable" }, "$:/snippets/currpalettepreview": { "title": "$:/snippets/currpalettepreview", "text": "\\define swatchStyle()\nbackground-color: $(swatchColour)$;\n\\end\n\\define swatch(colour)\n<$set name=\"swatchColour\" value={{##$colour$}}>\n<div class=\"tc-swatch\" style=<<swatchStyle>>/>\n</$set>\n\\end\n<div class=\"tc-swatches-horiz\">\n<<swatch foreground>>\n<<swatch background>>\n<<swatch muted-foreground>>\n<<swatch primary>>\n<<swatch page-background>>\n<<swatch tab-background>>\n<<swatch tiddler-info-background>>\n</div>\n" }, "$:/snippets/download-wiki-button": { "title": "$:/snippets/download-wiki-button", "text": "\\define lingo-base() $:/language/ControlPanel/Tools/Download/\n<$button class=\"tc-btn-big-green\">\n<$action-sendmessage $message=\"tm-download-file\" $param=\"$:/core/save/all\" filename=\"index.html\"/>\n<<lingo Full/Caption>> {{$:/core/images/save-button}}\n</$button>" }, "$:/language": { "title": "$:/language", "text": "$:/languages/en-GB" }, "$:/snippets/languageswitcher": { "title": "$:/snippets/languageswitcher", "text": "{{$:/language/ControlPanel/Basics/Language/Prompt}} <$select tiddler=\"$:/language\">\n<$list filter=\"[[$:/languages/en-GB]] [plugin-type[language]sort[description]]\">\n<option value=<<currentTiddler>>><$view field=\"description\"><$view field=\"name\"><$view field=\"title\"/></$view></$view></option>\n</$list>\n</$select>" }, "$:/core/macros/CSS": { "title": "$:/core/macros/CSS", "tags": "$:/tags/Macro", "text": "\\define colour(name)\n<$transclude tiddler={{$:/palette}} index=\"$name$\"><$transclude tiddler=\"$:/palettes/Vanilla\" index=\"$name$\"/></$transclude>\n\\end\n\n\\define color(name)\n<<colour $name$>>\n\\end\n\n\\define box-shadow(shadow)\n``\n -webkit-box-shadow: $shadow$;\n -moz-box-shadow: $shadow$;\n box-shadow: $shadow$;\n``\n\\end\n\n\\define filter(filter)\n``\n -webkit-filter: $filter$;\n -moz-filter: $filter$;\n filter: $filter$;\n``\n\\end\n\n\\define transition(transition)\n``\n -webkit-transition: $transition$;\n -moz-transition: $transition$;\n transition: $transition$;\n``\n\\end\n\n\\define transform-origin(origin)\n``\n -webkit-transform-origin: $origin$;\n -moz-transform-origin: $origin$;\n transform-origin: $origin$;\n``\n\\end\n\n\\define background-linear-gradient(gradient)\n``\nbackground-image: linear-gradient($gradient$);\nbackground-image: -o-linear-gradient($gradient$);\nbackground-image: -moz-linear-gradient($gradient$);\nbackground-image: -webkit-linear-gradient($gradient$);\nbackground-image: -ms-linear-gradient($gradient$);\n``\n\\end\n\n\\define datauri(title)\n<$macrocall $name=\"makedatauri\" type={{$title$!!type}} text={{$title$}}/>\n\\end\n\n\\define if-sidebar(text)\n<$reveal state=\"$:/state/sidebar\" type=\"match\" text=\"yes\" default=\"yes\">$text$</$reveal>\n\\end\n\n\\define if-no-sidebar(text)\n<$reveal state=\"$:/state/sidebar\" type=\"nomatch\" text=\"yes\" default=\"yes\">$text$</$reveal>\n\\end\n" }, "$:/core/macros/colour-picker": { "title": "$:/core/macros/colour-picker", "tags": "$:/tags/Macro", "text": "\\define colour-picker-update-recent()\n<$action-listops\n\t$tiddler=\"$:/config/ColourPicker/Recent\"\n\t$subfilter=\"$(colour-picker-value)$ [list[$:/config/ColourPicker/Recent]remove[$(colour-picker-value)$]] +[limit[8]]\"\n/>\n\\end\n\n\\define colour-picker-inner(actions)\n<$button tag=\"a\" tooltip=\"\"\"$(colour-picker-value)$\"\"\">\n\n$(colour-picker-update-recent)$\n\n$actions$\n\n<div style=\"background-color: $(colour-picker-value)$; width: 100%; height: 100%; border-radius: 50%;\"/>\n\n</$button>\n\\end\n\n\\define colour-picker-recent-inner(actions)\n<$set name=\"colour-picker-value\" value=\"$(recentColour)$\">\n<$macrocall $name=\"colour-picker-inner\" actions=\"\"\"$actions$\"\"\"/>\n</$set>\n\\end\n\n\\define colour-picker-recent(actions)\n{{$:/language/ColourPicker/Recent}} <$list filter=\"[list[$:/config/ColourPicker/Recent]]\" variable=\"recentColour\">\n<$macrocall $name=\"colour-picker-recent-inner\" actions=\"\"\"$actions$\"\"\"/></$list>\n\\end\n\n\\define colour-picker(actions)\n<div class=\"tc-colour-chooser\">\n\n<$macrocall $name=\"colour-picker-recent\" actions=\"\"\"$actions$\"\"\"/>\n\n---\n\n<$list filter=\"LightPink Pink Crimson LavenderBlush PaleVioletRed HotPink DeepPink MediumVioletRed Orchid Thistle Plum Violet Magenta Fuchsia DarkMagenta Purple MediumOrchid DarkViolet DarkOrchid Indigo BlueViolet MediumPurple MediumSlateBlue SlateBlue DarkSlateBlue Lavender GhostWhite Blue MediumBlue MidnightBlue DarkBlue Navy RoyalBlue CornflowerBlue LightSteelBlue LightSlateGrey SlateGrey DodgerBlue AliceBlue SteelBlue LightSkyBlue SkyBlue DeepSkyBlue LightBlue PowderBlue CadetBlue Azure LightCyan PaleTurquoise Cyan Aqua DarkTurquoise DarkSlateGrey DarkCyan Teal MediumTurquoise LightSeaGreen Turquoise Aquamarine MediumAquamarine MediumSpringGreen MintCream SpringGreen MediumSeaGreen SeaGreen Honeydew LightGreen PaleGreen DarkSeaGreen LimeGreen Lime ForestGreen Green DarkGreen Chartreuse LawnGreen GreenYellow DarkOliveGreen YellowGreen OliveDrab Beige LightGoldenrodYellow Ivory LightYellow Yellow Olive DarkKhaki LemonChiffon PaleGoldenrod Khaki Gold Cornsilk Goldenrod DarkGoldenrod FloralWhite OldLace Wheat Moccasin Orange PapayaWhip BlanchedAlmond NavajoWhite AntiqueWhite Tan BurlyWood Bisque DarkOrange Linen Peru PeachPuff SandyBrown Chocolate SaddleBrown Seashell Sienna LightSalmon Coral OrangeRed DarkSalmon Tomato MistyRose Salmon Snow LightCoral RosyBrown IndianRed Red Brown FireBrick DarkRed Maroon White WhiteSmoke Gainsboro LightGrey Silver DarkGrey Grey DimGrey Black\" variable=\"colour-picker-value\">\n<$macrocall $name=\"colour-picker-inner\" actions=\"\"\"$actions$\"\"\"/>\n</$list>\n\n---\n\n<$edit-text tiddler=\"$:/config/ColourPicker/New\" tag=\"input\" default=\"\" placeholder=\"\"/> \n<$edit-text tiddler=\"$:/config/ColourPicker/New\" type=\"color\" tag=\"input\"/>\n<$set name=\"colour-picker-value\" value={{$:/config/ColourPicker/New}}>\n<$macrocall $name=\"colour-picker-inner\" actions=\"\"\"$actions$\"\"\"/>\n</$set>\n\n</div>\n\n\\end\n" }, "$:/core/macros/export": { "title": "$:/core/macros/export", "tags": "$:/tags/Macro", "text": "\\define exportButtonFilename(baseFilename)\n$baseFilename$$(extension)$\n\\end\n\n\\define exportButton(exportFilter:\"[!is[system]sort[title]]\",lingoBase,baseFilename:\"tiddlers\")\n<span class=\"tc-popup-keep\">\n<$button popup=<<qualify \"$:/state/popup/export\">> tooltip={{$lingoBase$Hint}} aria-label={{$lingoBase$Caption}} class=<<tv-config-toolbar-class>> selectedClass=\"tc-selected\">\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\">\n{{$:/core/images/export-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$lingoBase$Caption}}/></span>\n</$list>\n</$button>\n</span>\n<$reveal state=<<qualify \"$:/state/popup/export\">> type=\"popup\" position=\"below\" animate=\"yes\">\n<div class=\"tc-drop-down\">\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/Exporter]]\">\n<$set name=\"extension\" value={{!!extension}}>\n<$button class=\"tc-btn-invisible\">\n<$action-sendmessage $message=\"tm-download-file\" $param=<<currentTiddler>> exportFilter=\"\"\"$exportFilter$\"\"\" filename=<<exportButtonFilename \"\"\"$baseFilename$\"\"\">>/>\n<$action-deletetiddler $tiddler=<<qualify \"$:/state/popup/export\">>/>\n<$transclude field=\"description\"/>\n</$button>\n</$set>\n</$list>\n</div>\n</$reveal>\n\\end\n" }, "$:/core/macros/image-picker": { "title": "$:/core/macros/image-picker", "tags": "$:/tags/Macro", "text": "\\define image-picker-inner(actions)\n<$button tag=\"a\" tooltip=\"\"\"$(imageTitle)$\"\"\">\n\n$actions$\n\n<$transclude tiddler=<<imageTitle>>/>\n\n</$button>\n\\end\n\n\\define image-picker(actions,subfilter:\"\")\n<div class=\"tc-image-chooser\">\n\n<$list filter=\"[all[shadows+tiddlers]is[image]$subfilter$!has[draft.of]] -[type[application/pdf]] +[sort[title]]\" variable=\"imageTitle\">\n\n<$macrocall $name=\"image-picker-inner\" actions=\"\"\"$actions$\"\"\"/>\n\n</$list>\n\n</div>\n\n\\end\n\n" }, "$:/core/macros/lingo": { "title": "$:/core/macros/lingo", "tags": "$:/tags/Macro", "text": "\\define lingo-base()\n$:/language/\n\\end\n\n\\define lingo(title)\n{{$(lingo-base)$$title$}}\n\\end\n" }, "$:/core/macros/list": { "title": "$:/core/macros/list", "tags": "$:/tags/Macro", "text": "\\define list-links(filter,type:\"ul\",subtype:\"li\",class:\"\")\n<$type$ class=\"$class$\">\n<$list filter=\"$filter$\">\n<$subtype$>\n<$link to={{!!title}}>\n<$transclude field=\"caption\">\n<$view field=\"title\"/>\n</$transclude>\n</$link>\n</$subtype$>\n</$list>\n</$type$>\n\\end\n" }, "$:/core/macros/tabs": { "title": "$:/core/macros/tabs", "tags": "$:/tags/Macro", "text": "\\define tabs(tabsList,default,state:\"$:/state/tab\",class,template)\n<div class=\"tc-tab-set $class$\">\n<div class=\"tc-tab-buttons $class$\">\n<$list filter=\"$tabsList$\" variable=\"currentTab\"><$set name=\"save-currentTiddler\" value=<<currentTiddler>>><$tiddler tiddler=<<currentTab>>><$button set=<<qualify \"$state$\">> setTo=<<currentTab>> default=\"$default$\" selectedClass=\"tc-tab-selected\" tooltip={{!!tooltip}}>\n<$tiddler tiddler=<<save-currentTiddler>>>\n<$set name=\"tv-wikilinks\" value=\"no\">\n<$transclude tiddler=<<currentTab>> field=\"caption\">\n<$macrocall $name=\"currentTab\" $type=\"text/plain\" $output=\"text/plain\"/>\n</$transclude>\n</$set></$tiddler></$button></$tiddler></$set></$list>\n</div>\n<div class=\"tc-tab-divider $class$\"/>\n<div class=\"tc-tab-content $class$\">\n<$list filter=\"$tabsList$\" variable=\"currentTab\">\n\n<$reveal type=\"match\" state=<<qualify \"$state$\">> text=<<currentTab>> default=\"$default$\">\n\n<$transclude tiddler=\"$template$\" mode=\"block\">\n\n<$transclude tiddler=<<currentTab>> mode=\"block\"/>\n\n</$transclude>\n\n</$reveal>\n\n</$list>\n</div>\n</div>\n\\end\n" }, "$:/core/macros/tag": { "title": "$:/core/macros/tag", "tags": "$:/tags/Macro", "text": "\\define tag(tag)\n{{$tag$||$:/core/ui/TagTemplate}}\n\\end\n" }, "$:/core/macros/thumbnails": { "title": "$:/core/macros/thumbnails", "tags": "$:/tags/Macro", "text": "\\define thumbnail(link,icon,color,background-color,image,caption,width:\"280\",height:\"157\")\n<$link to=\"\"\"$link$\"\"\"><div class=\"tc-thumbnail-wrapper\">\n<div class=\"tc-thumbnail-image\" style=\"width:$width$px;height:$height$px;\"><$reveal type=\"nomatch\" text=\"\" default=\"\"\"$image$\"\"\" tag=\"div\" style=\"width:$width$px;height:$height$px;\">\n[img[$image$]]\n</$reveal><$reveal type=\"match\" text=\"\" default=\"\"\"$image$\"\"\" tag=\"div\" class=\"tc-thumbnail-background\" style=\"width:$width$px;height:$height$px;background-color:$background-color$;\"></$reveal></div><div class=\"tc-thumbnail-icon\" style=\"fill:$color$;color:$color$;\">\n$icon$\n</div><div class=\"tc-thumbnail-caption\">\n$caption$\n</div>\n</div></$link>\n\\end\n\n\\define thumbnail-right(link,icon,color,background-color,image,caption,width:\"280\",height:\"157\")\n<div class=\"tc-thumbnail-right-wrapper\"><<thumbnail \"\"\"$link$\"\"\" \"\"\"$icon$\"\"\" \"\"\"$color$\"\"\" \"\"\"$background-color$\"\"\" \"\"\"$image$\"\"\" \"\"\"$caption$\"\"\" \"\"\"$width$\"\"\" \"\"\"$height$\"\"\">></div>\n\\end\n\n\\define list-thumbnails(filter,width:\"280\",height:\"157\")\n<$list filter=\"\"\"$filter$\"\"\"><$macrocall $name=\"thumbnail\" link={{!!link}} icon={{!!icon}} color={{!!color}} background-color={{!!background-color}} image={{!!image}} caption={{!!caption}} width=\"\"\"$width$\"\"\" height=\"\"\"$height$\"\"\"/></$list>\n\\end\n" }, "$:/core/macros/timeline": { "created": "20141212105914482", "modified": "20141212110330815", "tags": "$:/tags/Macro", "title": "$:/core/macros/timeline", "type": "text/vnd.tiddlywiki", "text": "\\define timeline-title()\n<!-- Override this macro with a global macro \n of the same name if you need to change \n how titles are displayed on the timeline \n -->\n<$view field=\"title\"/>\n\\end\n\\define timeline(limit:\"100\",format:\"DDth MMM YYYY\",subfilter:\"\",dateField:\"modified\")\n<div class=\"tc-timeline\">\n<$list filter=\"[!is[system]$subfilter$has[$dateField$]!sort[$dateField$]limit[$limit$]eachday[$dateField$]]\">\n<div class=\"tc-menu-list-item\">\n<$view field=\"$dateField$\" format=\"date\" template=\"$format$\"/>\n<$list filter=\"[sameday:$dateField${!!$dateField$}!is[system]$subfilter$!sort[$dateField$]]\">\n<div class=\"tc-menu-list-subitem\">\n<$link to={{!!title}}>\n<<timeline-title>>\n</$link>\n</div>\n</$list>\n</div>\n</$list>\n</div>\n\\end\n" }, "$:/core/macros/toc": { "title": "$:/core/macros/toc", "tags": "$:/tags/Macro", "text": "\\define toc-caption()\n<$set name=\"tv-wikilinks\" value=\"no\">\n<$transclude field=\"caption\">\n<$view field=\"title\"/>\n</$transclude>\n</$set>\n\\end\n\n\\define toc-body(rootTag,tag,sort:\"\",itemClassFilter)\n<ol class=\"tc-toc\">\n<$list filter=\"\"\"[all[shadows+tiddlers]tag[$tag$]!has[draft.of]$sort$]\"\"\">\n<$set name=\"toc-item-class\" filter=\"\"\"$itemClassFilter$\"\"\" value=\"toc-item-selected\" emptyValue=\"toc-item\">\n<li class=<<toc-item-class>>>\n<$list filter=\"[all[current]toc-link[no]]\" emptyMessage=\"<$link><$view field='caption'><$view field='title'/></$view></$link>\">\n<<toc-caption>>\n</$list>\n<$list filter=\"\"\"[all[current]] -[[$rootTag$]]\"\"\">\n<$macrocall $name=\"toc-body\" rootTag=\"\"\"$rootTag$\"\"\" tag=<<currentTiddler>> sort=\"\"\"$sort$\"\"\" itemClassFilter=\"\"\"$itemClassFilter$\"\"\"/>\n</$list>\n</li>\n</$set>\n</$list>\n</ol>\n\\end\n\n\\define toc(tag,sort:\"\",itemClassFilter)\n<<toc-body rootTag:\"\"\"$tag$\"\"\" tag:\"\"\"$tag$\"\"\" sort:\"\"\"$sort$\"\"\" itemClassFilter:\"\"\"itemClassFilter\"\"\">>\n\\end\n\n\\define toc-linked-expandable-body(tag,sort:\"\",itemClassFilter)\n<$set name=\"toc-state\" value=<<qualify \"\"\"$:/state/toc/$tag$-$(currentTiddler)$\"\"\">>>\n<$set name=\"toc-item-class\" filter=\"\"\"$itemClassFilter$\"\"\" value=\"toc-item-selected\" emptyValue=\"toc-item\">\n<li class=<<toc-item-class>>>\n<$link>\n<$reveal type=\"nomatch\" state=<<toc-state>> text=\"open\">\n<$button set=<<toc-state>> setTo=\"open\" class=\"tc-btn-invisible\">\n{{$:/core/images/right-arrow}}\n</$button>\n</$reveal>\n<$reveal type=\"match\" state=<<toc-state>> text=\"open\">\n<$button set=<<toc-state>> setTo=\"close\" class=\"tc-btn-invisible\">\n{{$:/core/images/down-arrow}}\n</$button>\n</$reveal>\n<<toc-caption>>\n</$link>\n<$reveal type=\"match\" state=<<toc-state>> text=\"open\">\n<$macrocall $name=\"toc-expandable\" tag=<<currentTiddler>> sort=\"\"\"$sort$\"\"\" itemClassFilter=\"\"\"$itemClassFilter$\"\"\"/>\n</$reveal>\n</li>\n</$set>\n</$set>\n\\end\n\n\\define toc-unlinked-expandable-body(tag,sort:\"\",itemClassFilter)\n<$set name=\"toc-state\" value=<<qualify \"\"\"$:/state/toc/$tag$-$(currentTiddler)$\"\"\">>>\n<$set name=\"toc-item-class\" filter=\"\"\"$itemClassFilter$\"\"\" value=\"toc-item-selected\" emptyValue=\"toc-item\">\n<li class=<<toc-item-class>>>\n<$reveal type=\"nomatch\" state=<<toc-state>> text=\"open\">\n<$button set=<<toc-state>> setTo=\"open\" class=\"tc-btn-invisible\">\n{{$:/core/images/right-arrow}}\n<<toc-caption>>\n</$button>\n</$reveal>\n<$reveal type=\"match\" state=<<toc-state>> text=\"open\">\n<$button set=<<toc-state>> setTo=\"close\" class=\"tc-btn-invisible\">\n{{$:/core/images/down-arrow}}\n<<toc-caption>>\n</$button>\n</$reveal>\n<$reveal type=\"match\" state=<<toc-state>> text=\"open\">\n<$macrocall $name=\"toc-expandable\" tag=<<currentTiddler>> sort=\"\"\"$sort$\"\"\" itemClassFilter=\"\"\"$itemClassFilter$\"\"\"/>\n</$reveal>\n</li>\n</$set>\n</$set>\n\\end\n\n\\define toc-expandable-empty-message()\n<<toc-linked-expandable-body tag:\"\"\"$(tag)$\"\"\" sort:\"\"\"$(sort)$\"\"\" itemClassFilter:\"\"\"$(itemClassFilter)$\"\"\">>\n\\end\n\n\\define toc-expandable(tag,sort:\"\",itemClassFilter)\n<$vars tag=\"\"\"$tag$\"\"\" sort=\"\"\"$sort$\"\"\" itemClassFilter=\"\"\"$itemClassFilter$\"\"\">\n<ol class=\"tc-toc toc-expandable\">\n<$list filter=\"[all[shadows+tiddlers]tag[$tag$]!has[draft.of]$sort$]\">\n<$list filter=\"[all[current]toc-link[no]]\" emptyMessage=<<toc-expandable-empty-message>>>\n<<toc-unlinked-expandable-body tag:\"\"\"$tag$\"\"\" sort:\"\"\"$sort$\"\"\" itemClassFilter:\"\"\"itemClassFilter\"\"\">>\n</$list>\n</$list>\n</ol>\n</$vars>\n\\end\n\n\\define toc-linked-selective-expandable-body(tag,sort:\"\",itemClassFilter)\n<$set name=\"toc-state\" value=<<qualify \"\"\"$:/state/toc/$tag$-$(currentTiddler)$\"\"\">>>\n<$set name=\"toc-item-class\" filter=\"\"\"$itemClassFilter$\"\"\" value=\"toc-item-selected\" emptyValue=\"toc-item\">\n<li class=<<toc-item-class>>>\n<$link>\n<$list filter=\"[all[current]tagging[]limit[1]]\" variable=\"ignore\" emptyMessage=\"<$button class='tc-btn-invisible'>{{$:/core/images/blank}}</$button>\">\n<$reveal type=\"nomatch\" state=<<toc-state>> text=\"open\">\n<$button set=<<toc-state>> setTo=\"open\" class=\"tc-btn-invisible\">\n{{$:/core/images/right-arrow}}\n</$button>\n</$reveal>\n<$reveal type=\"match\" state=<<toc-state>> text=\"open\">\n<$button set=<<toc-state>> setTo=\"close\" class=\"tc-btn-invisible\">\n{{$:/core/images/down-arrow}}\n</$button>\n</$reveal>\n</$list>\n<<toc-caption>>\n</$link>\n<$reveal type=\"match\" state=<<toc-state>> text=\"open\">\n<$macrocall $name=\"toc-selective-expandable\" tag=<<currentTiddler>> sort=\"\"\"$sort$\"\"\" itemClassFilter=\"\"\"$itemClassFilter$\"\"\"/>\n</$reveal>\n</li>\n</$set>\n</$set>\n\\end\n\n\\define toc-unlinked-selective-expandable-body(tag,sort:\"\",itemClassFilter)\n<$set name=\"toc-state\" value=<<qualify \"\"\"$:/state/toc/$tag$-$(currentTiddler)$\"\"\">>>\n<$set name=\"toc-item-class\" filter=\"\"\"$itemClassFilter$\"\"\" value=\"toc-item-selected\" emptyValue=\"toc-item\">\n<li class=<<toc-item-class>>>\n<$list filter=\"[all[current]tagging[]limit[1]]\" variable=\"ignore\" emptyMessage=\"<$button class='tc-btn-invisible'>{{$:/core/images/blank}}</$button> <$view field='caption'><$view field='title'/></$view>\">\n<$reveal type=\"nomatch\" state=<<toc-state>> text=\"open\">\n<$button set=<<toc-state>> setTo=\"open\" class=\"tc-btn-invisible\">\n{{$:/core/images/right-arrow}}\n<<toc-caption>>\n</$button>\n</$reveal>\n<$reveal type=\"match\" state=<<toc-state>> text=\"open\">\n<$button set=<<toc-state>> setTo=\"close\" class=\"tc-btn-invisible\">\n{{$:/core/images/down-arrow}}\n<<toc-caption>>\n</$button>\n</$reveal>\n</$list>\n<$reveal type=\"match\" state=<<toc-state>> text=\"open\">\n<$macrocall $name=\"\"\"toc-selective-expandable\"\"\" tag=<<currentTiddler>> sort=\"\"\"$sort$\"\"\" itemClassFilter=\"\"\"$itemClassFilter$\"\"\"/>\n</$reveal>\n</li>\n</$set>\n</$set>\n\\end\n\n\\define toc-selective-expandable-empty-message()\n<<toc-linked-selective-expandable-body tag:\"\"\"$(tag)$\"\"\" sort:\"\"\"$(sort)$\"\"\" itemClassFilter:\"\"\"$(itemClassFilter)$\"\"\">>\n\\end\n\n\\define toc-selective-expandable(tag,sort:\"\",itemClassFilter)\n<$vars tag=\"\"\"$tag$\"\"\" sort=\"\"\"$sort$\"\"\" itemClassFilter=\"\"\"$itemClassFilter$\"\"\">\n<ol class=\"tc-toc toc-selective-expandable\">\n<$list filter=\"[all[shadows+tiddlers]tag[$tag$]!has[draft.of]$sort$]\">\n<$list filter=\"[all[current]toc-link[no]]\" variable=\"ignore\" emptyMessage=<<toc-selective-expandable-empty-message>>>\n<<toc-unlinked-selective-expandable-body tag:\"\"\"$tag$\"\"\" sort:\"\"\"$sort$\"\"\" itemClassFilter:\"\"\"$itemClassFilter$\"\"\">>\n</$list>\n</$list>\n</ol>\n</$vars>\n\\end\n\n\\define toc-tabbed-selected-item-filter(selectedTiddler)\n[all[current]field:title{$selectedTiddler$}]\n\\end\n\n\\define toc-tabbed-external-nav(tag,sort:\"\",selectedTiddler:\"$:/temp/toc/selectedTiddler\",unselectedText,missingText,template:\"\")\n<$tiddler tiddler={{$selectedTiddler$}}>\n<div class=\"tc-tabbed-table-of-contents\">\n<$linkcatcher to=\"$selectedTiddler$\">\n<div class=\"tc-table-of-contents\">\n<$macrocall $name=\"toc-selective-expandable\" tag=\"\"\"$tag$\"\"\" sort=\"\"\"$sort$\"\"\" itemClassFilter=<<toc-tabbed-selected-item-filter selectedTiddler:\"\"\"$selectedTiddler$\"\"\">>/>\n</div>\n</$linkcatcher>\n<div class=\"tc-tabbed-table-of-contents-content\">\n<$reveal state=\"\"\"$selectedTiddler$\"\"\" type=\"nomatch\" text=\"\">\n<$transclude mode=\"block\" tiddler=\"$template$\">\n<h1><<toc-caption>></h1>\n<$transclude mode=\"block\">$missingText$</$transclude>\n</$transclude>\n</$reveal>\n<$reveal state=\"\"\"$selectedTiddler$\"\"\" type=\"match\" text=\"\">\n$unselectedText$\n</$reveal>\n</div>\n</div>\n</$tiddler>\n\\end\n\n\\define toc-tabbed-internal-nav(tag,sort:\"\",selectedTiddler:\"$:/temp/toc/selectedTiddler\",unselectedText,missingText,template:\"\")\n<$linkcatcher to=\"\"\"$selectedTiddler$\"\"\">\n<$macrocall $name=\"toc-tabbed-external-nav\" tag=\"\"\"$tag$\"\"\" sort=\"\"\"$sort$\"\"\" selectedTiddler=\"\"\"$selectedTiddler$\"\"\" unselectedText=\"\"\"$unselectedText$\"\"\" missingText=\"\"\"$missingText$\"\"\" template=\"\"\"$template$\"\"\"/>\n</$linkcatcher>\n\\end\n\n" }, "$:/core/macros/translink": { "title": "$:/core/macros/translink", "tags": "$:/tags/Macro", "text": "\\define translink(title,mode:\"block\")\n<div style=\"border:1px solid #ccc; padding: 0.5em; background: black; foreground; white;\">\n<$link to=\"\"\"$title$\"\"\">\n<$text text=\"\"\"$title$\"\"\"/>\n</$link>\n<div style=\"border:1px solid #ccc; padding: 0.5em; background: white; foreground; black;\">\n<$transclude tiddler=\"\"\"$title$\"\"\" mode=\"$mode$\">\n\"<$text text=\"\"\"$title$\"\"\"/>\" is missing\n</$transclude>\n</div>\n</div>\n\\end\n" }, "$:/snippets/minilanguageswitcher": { "title": "$:/snippets/minilanguageswitcher", "text": "<$select tiddler=\"$:/language\">\n<$list filter=\"[[$:/languages/en-GB]] [plugin-type[language]sort[title]]\">\n<option value=<<currentTiddler>>><$view field=\"description\"><$view field=\"name\"><$view field=\"title\"/></$view></$view></option>\n</$list>\n</$select>" }, "$:/snippets/minithemeswitcher": { "title": "$:/snippets/minithemeswitcher", "text": "\\define lingo-base() $:/language/ControlPanel/Theme/\n<<lingo Prompt>> <$select tiddler=\"$:/theme\">\n<$list filter=\"[plugin-type[theme]sort[title]]\">\n<option value=<<currentTiddler>>><$view field=\"name\"><$view field=\"title\"/></$view></option>\n</$list>\n</$select>" }, "$:/snippets/modules": { "title": "$:/snippets/modules", "text": "\\define describeModuleType(type)\n{{$:/language/Docs/ModuleTypes/$type$}}\n\\end\n<$list filter=\"[moduletypes[]]\">\n\n!! <$macrocall $name=\"currentTiddler\" $type=\"text/plain\" $output=\"text/plain\"/>\n\n<$macrocall $name=\"describeModuleType\" type=<<currentTiddler>>/>\n\n<ul><$list filter=\"[all[current]modules[]]\"><li><$link><<currentTiddler>></$link>\n</li>\n</$list>\n</ul>\n</$list>\n" }, "$:/palette": { "title": "$:/palette", "text": "$:/palettes/Vanilla" }, "$:/snippets/paletteeditor": { "title": "$:/snippets/paletteeditor", "text": "\\define lingo-base() $:/language/ControlPanel/Palette/Editor/\n\\define describePaletteColour(colour)\n<$transclude tiddler=\"$:/language/Docs/PaletteColours/$colour$\"><$text text=\"$colour$\"/></$transclude>\n\\end\n<$set name=\"currentTiddler\" value={{$:/palette}}>\n\n<<lingo Prompt>> <$link to={{$:/palette}}><$macrocall $name=\"currentTiddler\" $output=\"text/plain\"/></$link>\n\n<$list filter=\"[all[current]is[shadow]is[tiddler]]\" variable=\"listItem\">\n<<lingo Prompt/Modified>>\n<$button message=\"tm-delete-tiddler\" param={{$:/palette}}><<lingo Reset/Caption>></$button>\n</$list>\n\n<$list filter=\"[all[current]is[shadow]!is[tiddler]]\" variable=\"listItem\">\n<<lingo Clone/Prompt>>\n</$list>\n\n<$button message=\"tm-new-tiddler\" param={{$:/palette}}><<lingo Clone/Caption>></$button>\n\n<table>\n<tbody>\n<$list filter=\"[all[current]indexes[]]\" variable=\"colourName\">\n<tr>\n<td>\n''<$macrocall $name=\"describePaletteColour\" colour=<<colourName>>/>''<br/>\n<$macrocall $name=\"colourName\" $output=\"text/plain\"/>\n</td>\n<td>\n<$edit-text index=<<colourName>> tag=\"input\"/>\n<br>\n<$edit-text index=<<colourName>> type=\"color\" tag=\"input\"/>\n</td>\n</tr>\n</$list>\n</tbody>\n</table>\n</$set>\n" }, "$:/snippets/palettepreview": { "title": "$:/snippets/palettepreview", "text": "<$set name=\"currentTiddler\" value={{$:/palette}}>\n<$transclude tiddler=\"$:/snippets/currpalettepreview\"/>\n</$set>\n" }, "$:/snippets/paletteswitcher": { "title": "$:/snippets/paletteswitcher", "text": "\\define lingo-base() $:/language/ControlPanel/Palette/\n<div class=\"tc-prompt\">\n<<lingo Prompt>> <$view tiddler={{$:/palette}} field=\"name\"/>\n</div>\n\n<$linkcatcher to=\"$:/palette\">\n<div class=\"tc-chooser\"><$list filter=\"[all[shadows+tiddlers]tag[$:/tags/Palette]sort[description]]\"><div class=\"tc-chooser-item\"><$link to={{!!title}}><div><$reveal state=\"$:/palette\" type=\"match\" text={{!!title}}>•</$reveal><$reveal state=\"$:/palette\" type=\"nomatch\" text={{!!title}}> </$reveal> ''<$view field=\"name\" format=\"text\"/>'' - <$view field=\"description\" format=\"text\"/></div><$transclude tiddler=\"$:/snippets/currpalettepreview\"/></$link></div>\n</$list>\n</div>\n</$linkcatcher>" }, "$:/temp/search": { "title": "$:/temp/search", "text": "" }, "$:/tags/AdvancedSearch": { "title": "$:/tags/AdvancedSearch", "list": "[[$:/core/ui/AdvancedSearch/Standard]] [[$:/core/ui/AdvancedSearch/System]] [[$:/core/ui/AdvancedSearch/Shadows]] [[$:/core/ui/AdvancedSearch/Filter]]" }, "$:/tags/AdvancedSearch/FilterButton": { "title": "$:/tags/AdvancedSearch/FilterButton", "list": "$:/core/ui/AdvancedSearch/Filter/FilterButtons/dropdown $:/core/ui/AdvancedSearch/Filter/FilterButtons/clear $:/core/ui/AdvancedSearch/Filter/FilterButtons/export $:/core/ui/AdvancedSearch/Filter/FilterButtons/delete" }, "$:/tags/ControlPanel": { "title": "$:/tags/ControlPanel", "list": "$:/core/ui/ControlPanel/Info $:/core/ui/ControlPanel/Appearance $:/core/ui/ControlPanel/Settings $:/core/ui/ControlPanel/Saving $:/core/ui/ControlPanel/Plugins $:/core/ui/ControlPanel/Tools $:/core/ui/ControlPanel/Internals" }, "$:/tags/ControlPanel/Info": { "title": "$:/tags/ControlPanel/Info", "list": "$:/core/ui/ControlPanel/Basics $:/core/ui/ControlPanel/Advanced" }, "$:/tags/ControlPanel/Plugins": { "title": "$:/tags/ControlPanel/Plugins", "list": "[[$:/core/ui/ControlPanel/Plugins/Installed]] [[$:/core/ui/ControlPanel/Plugins/Add]]" }, "$:/tags/EditTemplate": { "title": "$:/tags/EditTemplate", "list": "[[$:/core/ui/EditTemplate/controls]] [[$:/core/ui/EditTemplate/title]] [[$:/core/ui/EditTemplate/tags]] [[$:/core/ui/EditTemplate/shadow]] [[$:/core/ui/ViewTemplate/classic]] [[$:/core/ui/EditTemplate/body]] [[$:/core/ui/EditTemplate/type]] [[$:/core/ui/EditTemplate/fields]]" }, "$:/tags/EditToolbar": { "title": "$:/tags/EditToolbar", "list": "[[$:/core/ui/Buttons/delete]] [[$:/core/ui/Buttons/cancel]] [[$:/core/ui/Buttons/save]]" }, "$:/tags/EditorToolbar": { "title": "$:/tags/EditorToolbar", "list": "$:/core/ui/EditorToolbar/paint $:/core/ui/EditorToolbar/opacity $:/core/ui/EditorToolbar/line-width $:/core/ui/EditorToolbar/clear $:/core/ui/EditorToolbar/bold $:/core/ui/EditorToolbar/italic $:/core/ui/EditorToolbar/strikethrough $:/core/ui/EditorToolbar/underline $:/core/ui/EditorToolbar/superscript $:/core/ui/EditorToolbar/subscript $:/core/ui/EditorToolbar/mono-line $:/core/ui/EditorToolbar/mono-block $:/core/ui/EditorToolbar/quote $:/core/ui/EditorToolbar/list-bullet $:/core/ui/EditorToolbar/list-number $:/core/ui/EditorToolbar/heading-1 $:/core/ui/EditorToolbar/heading-2 $:/core/ui/EditorToolbar/heading-3 $:/core/ui/EditorToolbar/heading-4 $:/core/ui/EditorToolbar/heading-5 $:/core/ui/EditorToolbar/heading-6 $:/core/ui/EditorToolbar/link $:/core/ui/EditorToolbar/excise $:/core/ui/EditorToolbar/picture $:/core/ui/EditorToolbar/stamp $:/core/ui/EditorToolbar/size $:/core/ui/EditorToolbar/editor-height $:/core/ui/EditorToolbar/more $:/core/ui/EditorToolbar/preview $:/core/ui/EditorToolbar/preview-type" }, "$:/tags/MoreSideBar": { "title": "$:/tags/MoreSideBar", "list": "[[$:/core/ui/MoreSideBar/All]] [[$:/core/ui/MoreSideBar/Recent]] [[$:/core/ui/MoreSideBar/Tags]] [[$:/core/ui/MoreSideBar/Missing]] [[$:/core/ui/MoreSideBar/Drafts]] [[$:/core/ui/MoreSideBar/Orphans]] [[$:/core/ui/MoreSideBar/Types]] [[$:/core/ui/MoreSideBar/System]] [[$:/core/ui/MoreSideBar/Shadows]]", "text": "" }, "$:/tags/PageControls": { "title": "$:/tags/PageControls", "list": "[[$:/core/ui/Buttons/home]] [[$:/core/ui/Buttons/close-all]] [[$:/core/ui/Buttons/fold-all]] [[$:/core/ui/Buttons/unfold-all]] [[$:/core/ui/Buttons/permaview]] [[$:/core/ui/Buttons/new-tiddler]] [[$:/core/ui/Buttons/new-journal]] [[$:/core/ui/Buttons/new-image]] [[$:/core/ui/Buttons/import]] [[$:/core/ui/Buttons/export-page]] [[$:/core/ui/Buttons/control-panel]] [[$:/core/ui/Buttons/advanced-search]] [[$:/core/ui/Buttons/tag-manager]] [[$:/core/ui/Buttons/language]] [[$:/core/ui/Buttons/palette]] [[$:/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/refresh]] [[$:/core/ui/Buttons/more-page-actions]]" }, "$:/tags/PageTemplate": { "title": "$:/tags/PageTemplate", "list": "[[$:/core/ui/PageTemplate/topleftbar]] [[$:/core/ui/PageTemplate/toprightbar]] [[$:/core/ui/PageTemplate/sidebar]] [[$:/core/ui/PageTemplate/story]] [[$:/core/ui/PageTemplate/alerts]]", "text": "" }, "$:/tags/SideBar": { "title": "$:/tags/SideBar", "list": "[[$:/core/ui/SideBar/Open]] [[$:/core/ui/SideBar/Recent]] [[$:/core/ui/SideBar/Tools]] [[$:/core/ui/SideBar/More]]", "text": "" }, "$:/tags/TiddlerInfo": { "title": "$:/tags/TiddlerInfo", "list": "[[$:/core/ui/TiddlerInfo/Tools]] [[$:/core/ui/TiddlerInfo/References]] [[$:/core/ui/TiddlerInfo/Tagging]] [[$:/core/ui/TiddlerInfo/List]] [[$:/core/ui/TiddlerInfo/Listed]] [[$:/core/ui/TiddlerInfo/Fields]]", "text": "" }, "$:/tags/TiddlerInfo/Advanced": { "title": "$:/tags/TiddlerInfo/Advanced", "list": "[[$:/core/ui/TiddlerInfo/Advanced/ShadowInfo]] [[$:/core/ui/TiddlerInfo/Advanced/PluginInfo]]" }, "$:/tags/ViewTemplate": { "title": "$:/tags/ViewTemplate", "list": "[[$:/core/ui/ViewTemplate/title]] [[$:/core/ui/ViewTemplate/unfold]] [[$:/core/ui/ViewTemplate/subtitle]] [[$:/core/ui/ViewTemplate/tags]] [[$:/core/ui/ViewTemplate/classic]] [[$:/core/ui/ViewTemplate/body]]" }, "$:/tags/ViewToolbar": { "title": "$:/tags/ViewToolbar", "list": "[[$:/core/ui/Buttons/more-tiddler-actions]] [[$:/core/ui/Buttons/info]] [[$:/core/ui/Buttons/new-here]] [[$:/core/ui/Buttons/new-journal-here]] [[$:/core/ui/Buttons/clone]] [[$:/core/ui/Buttons/export-tiddler]] [[$:/core/ui/Buttons/edit]] [[$:/core/ui/Buttons/delete]] [[$:/core/ui/Buttons/permalink]] [[$:/core/ui/Buttons/permaview]] [[$:/core/ui/Buttons/open-window]] [[$:/core/ui/Buttons/close-others]] [[$:/core/ui/Buttons/close]] [[$:/core/ui/Buttons/fold-others]] [[$:/core/ui/Buttons/fold]]" }, "$:/snippets/themeswitcher": { "title": "$:/snippets/themeswitcher", "text": "\\define lingo-base() $:/language/ControlPanel/Theme/\n<<lingo Prompt>> <$view tiddler={{$:/theme}} field=\"name\"/>\n\n<$linkcatcher to=\"$:/theme\">\n<$list filter=\"[plugin-type[theme]sort[title]]\"><div><$reveal state=\"$:/theme\" type=\"match\" text={{!!title}}>•</$reveal><$reveal state=\"$:/theme\" type=\"nomatch\" text={{!!title}}> </$reveal> <$link to={{!!title}}>''<$view field=\"name\" format=\"text\"/>'' <$view field=\"description\" format=\"text\"/></$link></div>\n</$list>\n</$linkcatcher>" }, "$:/core/wiki/title": { "title": "$:/core/wiki/title", "type": "text/vnd.tiddlywiki", "text": "{{$:/SiteTitle}} --- {{$:/SiteSubtitle}}" }, "$:/view": { "title": "$:/view", "text": "classic" }, "$:/snippets/viewswitcher": { "title": "$:/snippets/viewswitcher", "text": "\\define lingo-base() $:/language/ControlPanel/StoryView/\n<<lingo Prompt>> <$select tiddler=\"$:/view\">\n<$list filter=\"[storyviews[]]\">\n<option><$view field=\"title\"/></option>\n</$list>\n</$select>" } } }
Start
{ "tiddlers": { "Untitled": { "text": "main", "title": "Untitled" } } }
no
$:/languages/de-DE
{ "tiddlers": { "$:/core/de-AT/readme": { "title": "$:/core/de-AT/readme", "text": "{{$:/core/de-DE/readme}}\n" }, "$:/language/Date/Long/Month/1": { "title": "$:/language/Date/Long/Month/1", "text": "Jänner" }, "$:/language/Date/Short/Month/1": { "title": "$:/language/Date/Short/Month/1", "text": "Jän" }, "$:/languages/de-AT/icon": { "title": "$:/languages/de-AT/icon", "type": "image/svg+xml", "text": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"900\" height=\"600\" viewBox=\"0 0 9 6\">\n<rect fill=\"#ef3340\" width=\"9\" height=\"6\"/>\n<rect fill=\"#fff\" y=\"2\" width=\"9\" height=\"2\"/>\n</svg>" } } }
{ "tiddlers": { "$:/language/Buttons/AdvancedSearch/Caption": { "title": "$:/language/Buttons/AdvancedSearch/Caption", "text": "Erweiterte Suche" }, "$:/language/Buttons/AdvancedSearch/Hint": { "title": "$:/language/Buttons/AdvancedSearch/Hint", "text": "Erweiterte Suche" }, "$:/language/Buttons/Cancel/Caption": { "title": "$:/language/Buttons/Cancel/Caption", "text": "Abbrechen" }, "$:/language/Buttons/Cancel/Hint": { "title": "$:/language/Buttons/Cancel/Hint", "text": "Änderungen verwerfen" }, "$:/language/Buttons/Clone/Caption": { "title": "$:/language/Buttons/Clone/Caption", "text": "Klone" }, "$:/language/Buttons/Clone/Hint": { "title": "$:/language/Buttons/Clone/Hint", "text": "Klone diesen Tiddler" }, "$:/language/Buttons/Close/Caption": { "title": "$:/language/Buttons/Close/Caption", "text": "Schließen" }, "$:/language/Buttons/Close/Hint": { "title": "$:/language/Buttons/Close/Hint", "text": "Schließe diesen Tiddler" }, "$:/language/Buttons/CloseAll/Caption": { "title": "$:/language/Buttons/CloseAll/Caption", "text": "Alle schließen" }, "$:/language/Buttons/CloseAll/Hint": { "title": "$:/language/Buttons/CloseAll/Hint", "text": "Alle Tiddler schließen" }, "$:/language/Buttons/CloseOthers/Caption": { "title": "$:/language/Buttons/CloseOthers/Caption", "text": "Andere schließen" }, "$:/language/Buttons/CloseOthers/Hint": { "title": "$:/language/Buttons/CloseOthers/Hint", "text": "Alle anderen Tiddler schließen" }, "$:/language/Buttons/ControlPanel/Caption": { "title": "$:/language/Buttons/ControlPanel/Caption", "text": "Control-Panel" }, "$:/language/Buttons/ControlPanel/Hint": { "title": "$:/language/Buttons/ControlPanel/Hint", "text": "Öffne das Control-Panel" }, "$:/language/Buttons/Delete/Caption": { "title": "$:/language/Buttons/Delete/Caption", "text": "Löschen" }, "$:/language/Buttons/Delete/Hint": { "title": "$:/language/Buttons/Delete/Hint", "text": "Lösche diesen Tiddler" }, "$:/language/Buttons/Edit/Caption": { "title": "$:/language/Buttons/Edit/Caption", "text": "Bearbeiten" }, "$:/language/Buttons/Edit/Hint": { "title": "$:/language/Buttons/Edit/Hint", "text": "Bearbeite diesen Tiddler" }, "$:/language/Buttons/Encryption/Caption": { "title": "$:/language/Buttons/Encryption/Caption", "text": "Verschlüsselung" }, "$:/language/Buttons/Encryption/Hint": { "title": "$:/language/Buttons/Encryption/Hint", "text": "Aktivieren oder löschen des Passworts für dieses Wiki" }, "$:/language/Buttons/Encryption/ClearPassword/Caption": { "title": "$:/language/Buttons/Encryption/ClearPassword/Caption", "text": "Verschlüsselung deaktivieren" }, "$:/language/Buttons/Encryption/ClearPassword/Hint": { "title": "$:/language/Buttons/Encryption/ClearPassword/Hint", "text": "Lösche das Passwort und speichere ohne Verschlüsselung" }, "$:/language/Buttons/Encryption/SetPassword/Caption": { "title": "$:/language/Buttons/Encryption/SetPassword/Caption", "text": "Verschlüsselung" }, "$:/language/Buttons/Encryption/SetPassword/Hint": { "title": "$:/language/Buttons/Encryption/SetPassword/Hint", "text": "Definiert ein Passwort, um dieses Wiki zu verschlüsseln" }, "$:/language/Buttons/ExportPage/Caption": { "title": "$:/language/Buttons/ExportPage/Caption", "text": "Alle exportieren" }, "$:/language/Buttons/ExportPage/Hint": { "title": "$:/language/Buttons/ExportPage/Hint", "text": "Alle Tiddler exportieren" }, "$:/language/Buttons/ExportTiddler/Caption": { "title": "$:/language/Buttons/ExportTiddler/Caption", "text": "Exportieren" }, "$:/language/Buttons/ExportTiddler/Hint": { "title": "$:/language/Buttons/ExportTiddler/Hint", "text": "Diesen Tiddler exportieren" }, "$:/language/Buttons/ExportTiddlers/Caption": { "title": "$:/language/Buttons/ExportTiddlers/Caption", "text": "Mehrere exportieren" }, "$:/language/Buttons/ExportTiddlers/Hint": { "title": "$:/language/Buttons/ExportTiddlers/Hint", "text": "Mehrere Tiddler exportieren" }, "$:/language/Buttons/Fold/Caption": { "title": "$:/language/Buttons/Fold/Caption", "text": "Ausblenden Textbereich" }, "$:/language/Buttons/Fold/Hint": { "title": "$:/language/Buttons/Fold/Hint", "text": "Der Tiddler Textbereich wird ausgeblendet" }, "$:/language/Buttons/Fold/FoldBar/Caption": { "title": "$:/language/Buttons/Fold/FoldBar/Caption", "text": "Textbereich ein/aus" }, "$:/language/Buttons/Fold/FoldBar/Hint": { "title": "$:/language/Buttons/Fold/FoldBar/Hint", "text": "Optionelle Buttons im Tiddler, um den Textbereich ein- bzw. auszublenden" }, "$:/language/Buttons/Unfold/Caption": { "title": "$:/language/Buttons/Unfold/Caption", "text": "Einblenden Textbereich" }, "$:/language/Buttons/Unfold/Hint": { "title": "$:/language/Buttons/Unfold/Hint", "text": "Der Tiddler Textbereich wird eingeblendet" }, "$:/language/Buttons/FoldOthers/Caption": { "title": "$:/language/Buttons/FoldOthers/Caption", "text": "Ausblenden andere Textbereiche" }, "$:/language/Buttons/FoldOthers/Hint": { "title": "$:/language/Buttons/FoldOthers/Hint", "text": "Die Textbereiche aller anderen Tiddler werden ausgeblendet" }, "$:/language/Buttons/FoldAll/Caption": { "title": "$:/language/Buttons/FoldAll/Caption", "text": "Ausblenden aller Textbereiche" }, "$:/language/Buttons/FoldAll/Hint": { "title": "$:/language/Buttons/FoldAll/Hint", "text": "Ausblenden der Textbereiche aller Tiddler" }, "$:/language/Buttons/UnfoldAll/Caption": { "title": "$:/language/Buttons/UnfoldAll/Caption", "text": "Einblenden aller Textbereiche" }, "$:/language/Buttons/UnfoldAll/Hint": { "title": "$:/language/Buttons/UnfoldAll/Hint", "text": "Einblenden der Textbereiche aller Tiddler" }, "$:/language/Buttons/FullScreen/Caption": { "title": "$:/language/Buttons/FullScreen/Caption", "text": "Vollbild" }, "$:/language/Buttons/FullScreen/Hint": { "title": "$:/language/Buttons/FullScreen/Hint", "text": "Aktivieren oder Deaktivieren des Vollbild-Modus" }, "$:/language/Buttons/Help/Caption": { "title": "$:/language/Buttons/Help/Caption", "text": "Hilfe" }, "$:/language/Buttons/Help/Hint": { "title": "$:/language/Buttons/Help/Hint", "text": "Hilfe anzeigen" }, "$:/language/Buttons/Import/Caption": { "title": "$:/language/Buttons/Import/Caption", "text": "Import" }, "$:/language/Buttons/Import/Hint": { "title": "$:/language/Buttons/Import/Hint", "text": "Importiere unterschiedliche Dateitypen. zB: Text, Bilder, TiddlyWiki oder JSON" }, "$:/language/Buttons/Info/Caption": { "title": "$:/language/Buttons/Info/Caption", "text": "Info" }, "$:/language/Buttons/Info/Hint": { "title": "$:/language/Buttons/Info/Hint", "text": "Informationen zu diesem Tiddler anzeigen" }, "$:/language/Buttons/Home/Caption": { "title": "$:/language/Buttons/Home/Caption", "text": "Home" }, "$:/language/Buttons/Home/Hint": { "title": "$:/language/Buttons/Home/Hint", "text": "Öffnen der Standard-Tiddler" }, "$:/language/Buttons/Language/Caption": { "title": "$:/language/Buttons/Language/Caption", "text": "Sprache" }, "$:/language/Buttons/Language/Hint": { "title": "$:/language/Buttons/Language/Hint", "text": "Auswahldialog für die Systemsprache" }, "$:/language/Buttons/More/Caption": { "title": "$:/language/Buttons/More/Caption", "text": "mehr" }, "$:/language/Buttons/More/Hint": { "title": "$:/language/Buttons/More/Hint", "text": "Weitere Aktionen" }, "$:/language/Buttons/NewHere/Caption": { "title": "$:/language/Buttons/NewHere/Caption", "text": "Neu hier" }, "$:/language/Buttons/NewHere/Hint": { "title": "$:/language/Buttons/NewHere/Hint", "text": "Erstelle einen neuen Tiddler, der mit dem Namen dieses Tiddlers getaggt ist" }, "$:/language/Buttons/NewJournal/Caption": { "title": "$:/language/Buttons/NewJournal/Caption", "text": "Neues Journal" }, "$:/language/Buttons/NewJournal/Hint": { "title": "$:/language/Buttons/NewJournal/Hint", "text": "Erstelle einen neuen Journal-Tiddler" }, "$:/language/Buttons/NewJournalHere/Caption": { "title": "$:/language/Buttons/NewJournalHere/Caption", "text": "Neues Journal hier" }, "$:/language/Buttons/NewJournalHere/Hint": { "title": "$:/language/Buttons/NewJournalHere/Hint", "text": "Erstelle ein neues Journal der mit diesem getaggt ist" }, "$:/language/Buttons/NewImage/Caption": { "title": "$:/language/Buttons/NewImage/Caption", "text": "Neues Bild" }, "$:/language/Buttons/NewImage/Hint": { "title": "$:/language/Buttons/NewImage/Hint", "text": "Erstelle ein neues Bild" }, "$:/language/Buttons/NewMarkdown/Caption": { "title": "$:/language/Buttons/NewMarkdown/Caption", "text": "Neuer Markdown Tiddler" }, "$:/language/Buttons/NewMarkdown/Hint": { "title": "$:/language/Buttons/NewMarkdown/Hint", "text": "Erstelle einen neuen \"Markdown\" Tiddler" }, "$:/language/Buttons/NewTiddler/Caption": { "title": "$:/language/Buttons/NewTiddler/Caption", "text": "Neuer Tiddler" }, "$:/language/Buttons/NewTiddler/Hint": { "title": "$:/language/Buttons/NewTiddler/Hint", "text": "Erstelle einen neuen Tiddler" }, "$:/language/Buttons/OpenWindow/Caption": { "title": "$:/language/Buttons/OpenWindow/Caption", "text": "Öffne in neuem Fenster" }, "$:/language/Buttons/OpenWindow/Hint": { "title": "$:/language/Buttons/OpenWindow/Hint", "text": "Öffne diesen Tiddler in einem neuen Fenster" }, "$:/language/Buttons/Palette/Caption": { "title": "$:/language/Buttons/Palette/Caption", "text": "Palette" }, "$:/language/Buttons/Palette/Hint": { "title": "$:/language/Buttons/Palette/Hint", "text": "Wähle eine Farbpalette" }, "$:/language/Buttons/Permalink/Caption": { "title": "$:/language/Buttons/Permalink/Caption", "text": "Permalink" }, "$:/language/Buttons/Permalink/Hint": { "title": "$:/language/Buttons/Permalink/Hint", "text": "Die Adressleiste des Browsers enthält einen Link zu diesem Tiddler" }, "$:/language/Buttons/Permaview/Caption": { "title": "$:/language/Buttons/Permaview/Caption", "text": "Permaview" }, "$:/language/Buttons/Permaview/Hint": { "title": "$:/language/Buttons/Permaview/Hint", "text": "Die Adressleiste des Browsers enthält einen Link zu allen offenen Tiddlern in dieser Story" }, "$:/language/Buttons/Refresh/Caption": { "title": "$:/language/Buttons/Refresh/Caption", "text": "Aktualisieren" }, "$:/language/Buttons/Refresh/Hint": { "title": "$:/language/Buttons/Refresh/Hint", "text": "Die Seite wird neu in den Browser geladen" }, "$:/language/Buttons/Save/Caption": { "title": "$:/language/Buttons/Save/Caption", "text": "Fertig" }, "$:/language/Buttons/Save/Hint": { "title": "$:/language/Buttons/Save/Hint", "text": "Änderungen für diesen Tiddler bestätigen" }, "$:/language/Buttons/SaveWiki/Caption": { "title": "$:/language/Buttons/SaveWiki/Caption", "text": "Speichern" }, "$:/language/Buttons/SaveWiki/Hint": { "title": "$:/language/Buttons/SaveWiki/Hint", "text": "Das Wiki speichern" }, "$:/language/Buttons/StoryView/Caption": { "title": "$:/language/Buttons/StoryView/Caption", "text": "Story-Modus" }, "$:/language/Buttons/StoryView/Hint": { "title": "$:/language/Buttons/StoryView/Hint", "text": "Auswahl des Anzeigemodus für die Story" }, "$:/language/Buttons/HideSideBar/Caption": { "title": "$:/language/Buttons/HideSideBar/Caption", "text": "Sidebar ausblenden" }, "$:/language/Buttons/HideSideBar/Hint": { "title": "$:/language/Buttons/HideSideBar/Hint", "text": "Sidebar ausblenden" }, "$:/language/Buttons/ShowSideBar/Caption": { "title": "$:/language/Buttons/ShowSideBar/Caption", "text": "Sidebar einblenden" }, "$:/language/Buttons/ShowSideBar/Hint": { "title": "$:/language/Buttons/ShowSideBar/Hint", "text": "Sidebar einblenden" }, "$:/language/Buttons/TagManager/Caption": { "title": "$:/language/Buttons/TagManager/Caption", "text": "Tag-Manager" }, "$:/language/Buttons/TagManager/Hint": { "title": "$:/language/Buttons/TagManager/Hint", "text": "Öffne den Tag-Manager" }, "$:/language/Buttons/Theme/Caption": { "title": "$:/language/Buttons/Theme/Caption", "text": "Theme" }, "$:/language/Buttons/Theme/Hint": { "title": "$:/language/Buttons/Theme/Hint", "text": "Theme auswählen" }, "$:/language/Buttons/Bold/Caption": { "title": "$:/language/Buttons/Bold/Caption", "text": "Fett" }, "$:/language/Buttons/Bold/Hint": { "title": "$:/language/Buttons/Bold/Hint", "text": "Ausgewählten Text fett darstellen" }, "$:/language/Buttons/Clear/Caption": { "title": "$:/language/Buttons/Clear/Caption", "text": "Löschen" }, "$:/language/Buttons/Clear/Hint": { "title": "$:/language/Buttons/Clear/Hint", "text": "Bild mit Hintergrund Farbe löschen" }, "$:/language/Buttons/EditorHeight/Caption": { "title": "$:/language/Buttons/EditorHeight/Caption", "text": "Editor Höhe" }, "$:/language/Buttons/EditorHeight/Caption/Auto": { "title": "$:/language/Buttons/EditorHeight/Caption/Auto", "text": "Editor Höhe an Inhalt anpassen" }, "$:/language/Buttons/EditorHeight/Caption/Fixed": { "title": "$:/language/Buttons/EditorHeight/Caption/Fixed", "text": "Fixe Höhe:" }, "$:/language/Buttons/EditorHeight/Hint": { "title": "$:/language/Buttons/EditorHeight/Hint", "text": "Wählen Sie die Höhe des Editors" }, "$:/language/Buttons/Excise/Caption": { "title": "$:/language/Buttons/Excise/Caption", "text": "Verschieben" }, "$:/language/Buttons/Excise/Caption/Excise": { "title": "$:/language/Buttons/Excise/Caption/Excise", "text": "Text verschieben" }, "$:/language/Buttons/Excise/Caption/MacroName": { "title": "$:/language/Buttons/Excise/Caption/MacroName", "text": "Makro Name:" }, "$:/language/Buttons/Excise/Caption/NewTitle": { "title": "$:/language/Buttons/Excise/Caption/NewTitle", "text": "Titel des neuen Tiddlers:" }, "$:/language/Buttons/Excise/Caption/Replace": { "title": "$:/language/Buttons/Excise/Caption/Replace", "text": "Ersetze den verschobenen Text mit:" }, "$:/language/Buttons/Excise/Caption/Replace/Macro": { "title": "$:/language/Buttons/Excise/Caption/Replace/Macro", "text": "Makro" }, "$:/language/Buttons/Excise/Caption/Replace/Link": { "title": "$:/language/Buttons/Excise/Caption/Replace/Link", "text": "Link" }, "$:/language/Buttons/Excise/Caption/Replace/Transclusion": { "title": "$:/language/Buttons/Excise/Caption/Replace/Transclusion", "text": "Transklusion" }, "$:/language/Buttons/Excise/Caption/Tag": { "title": "$:/language/Buttons/Excise/Caption/Tag", "text": "Tagge den neuen Tiddler mit dem Titel des aktuellen Tiddlers" }, "$:/language/Buttons/Excise/Caption/TiddlerExists": { "title": "$:/language/Buttons/Excise/Caption/TiddlerExists", "text": "Warnung: Tiddler existiert bereits!" }, "$:/language/Buttons/Excise/Hint": { "title": "$:/language/Buttons/Excise/Hint", "text": "Verschiebe den ausgewählten Text in einen neuen Tiddler" }, "$:/language/Buttons/Heading1/Caption": { "title": "$:/language/Buttons/Heading1/Caption", "text": "Überschrift 1" }, "$:/language/Buttons/Heading1/Hint": { "title": "$:/language/Buttons/Heading1/Hint", "text": "Überschrift 1 auf die Zeilen anwenden, die eine Auswahl enthalten" }, "$:/language/Buttons/Heading2/Caption": { "title": "$:/language/Buttons/Heading2/Caption", "text": "Überschrift 2" }, "$:/language/Buttons/Heading2/Hint": { "title": "$:/language/Buttons/Heading2/Hint", "text": "Überschrift 2 auf die Zeilen anwenden, die eine Auswahl enthalten" }, "$:/language/Buttons/Heading3/Caption": { "title": "$:/language/Buttons/Heading3/Caption", "text": "Überschrift 3" }, "$:/language/Buttons/Heading3/Hint": { "title": "$:/language/Buttons/Heading3/Hint", "text": "Überschrift 3 auf die Zeilen anwenden, die eine Auswahl enthalten" }, "$:/language/Buttons/Heading4/Caption": { "title": "$:/language/Buttons/Heading4/Caption", "text": "Überschrift 4" }, "$:/language/Buttons/Heading4/Hint": { "title": "$:/language/Buttons/Heading4/Hint", "text": "Überschrift 4 auf die Zeilen anwenden, die eine Auswahl enthalten" }, "$:/language/Buttons/Heading5/Caption": { "title": "$:/language/Buttons/Heading5/Caption", "text": "Überschrift 5" }, "$:/language/Buttons/Heading5/Hint": { "title": "$:/language/Buttons/Heading5/Hint", "text": "Überschrift 5 auf die Zeilen anwenden, die eine Auswahl enthalten" }, "$:/language/Buttons/Heading6/Caption": { "title": "$:/language/Buttons/Heading6/Caption", "text": "Überschrift 6" }, "$:/language/Buttons/Heading6/Hint": { "title": "$:/language/Buttons/Heading6/Hint", "text": "Überschrift 6 auf die Zeilen anwenden, die eine Auswahl enthalten" }, "$:/language/Buttons/Italic/Caption": { "title": "$:/language/Buttons/Italic/Caption", "text": "Kursiv" }, "$:/language/Buttons/Italic/Hint": { "title": "$:/language/Buttons/Italic/Hint", "text": "Kursiv auf den selektierten Text anwenden" }, "$:/language/Buttons/LineWidth/Caption": { "title": "$:/language/Buttons/LineWidth/Caption", "text": "Zeilen Länge" }, "$:/language/Buttons/LineWidth/Hint": { "title": "$:/language/Buttons/LineWidth/Hint", "text": "Wählen Sie die Zeilenlänge" }, "$:/language/Buttons/Link/Caption": { "title": "$:/language/Buttons/Link/Caption", "text": "Link" }, "$:/language/Buttons/Link/Hint": { "title": "$:/language/Buttons/Link/Hint", "text": "Erstellt einen Wiki-Link" }, "$:/language/Buttons/ListBullet/Caption": { "title": "$:/language/Buttons/ListBullet/Caption", "text": "Punkteliste" }, "$:/language/Buttons/ListBullet/Hint": { "title": "$:/language/Buttons/ListBullet/Hint", "text": "Zeilen, die eine Markierung enthalten, werden als Punkteliste formatiert" }, "$:/language/Buttons/ListNumber/Caption": { "title": "$:/language/Buttons/ListNumber/Caption", "text": "Aufzählungsliste" }, "$:/language/Buttons/ListNumber/Hint": { "title": "$:/language/Buttons/ListNumber/Hint", "text": "Zeilen, die eine Markierung enthalten, werden als Auzählungsliste formatiert" }, "$:/language/Buttons/MonoBlock/Caption": { "title": "$:/language/Buttons/MonoBlock/Caption", "text": "Dicktengleicher Textblock" }, "$:/language/Buttons/MonoBlock/Hint": { "title": "$:/language/Buttons/MonoBlock/Hint", "text": "Alle Zeilen die eine Markierung enthalten, werden als Textblock mit einer dicktengleichen Schrift formatiert" }, "$:/language/Buttons/MonoLine/Caption": { "title": "$:/language/Buttons/MonoLine/Caption", "text": "Dicktengleich" }, "$:/language/Buttons/MonoLine/Hint": { "title": "$:/language/Buttons/MonoLine/Hint", "text": "Alle markierten Zeichen werden mit einer dicktengleichen Schrift formatiert" }, "$:/language/Buttons/Opacity/Caption": { "title": "$:/language/Buttons/Opacity/Caption", "text": "Transparenz" }, "$:/language/Buttons/Opacity/Hint": { "title": "$:/language/Buttons/Opacity/Hint", "text": "Wählen sie die Transparenz" }, "$:/language/Buttons/Paint/Caption": { "title": "$:/language/Buttons/Paint/Caption", "text": "Malfarbe" }, "$:/language/Buttons/Paint/Hint": { "title": "$:/language/Buttons/Paint/Hint", "text": "Wählen Sie die Malfarbe" }, "$:/language/Buttons/Picture/Caption": { "title": "$:/language/Buttons/Picture/Caption", "text": "Bild" }, "$:/language/Buttons/Picture/Hint": { "title": "$:/language/Buttons/Picture/Hint", "text": "Bild einfügen" }, "$:/language/Buttons/Preview/Caption": { "title": "$:/language/Buttons/Preview/Caption", "text": "Vorschau" }, "$:/language/Buttons/Preview/Hint": { "title": "$:/language/Buttons/Preview/Hint", "text": "Vorschau einblenden" }, "$:/language/Buttons/PreviewType/Caption": { "title": "$:/language/Buttons/PreviewType/Caption", "text": "Vorschau Typ" }, "$:/language/Buttons/PreviewType/Hint": { "title": "$:/language/Buttons/PreviewType/Hint", "text": "Wählen Sie den Vorschau Typ" }, "$:/language/Buttons/Quote/Caption": { "title": "$:/language/Buttons/Quote/Caption", "text": "Zitat" }, "$:/language/Buttons/Quote/Hint": { "title": "$:/language/Buttons/Quote/Hint", "text": "Alle Zeilen, die eine Markierung enthalten werden als Referenz/Zitat formatiert" }, "$:/language/Buttons/Size/Caption": { "title": "$:/language/Buttons/Size/Caption", "text": "Bildgröße" }, "$:/language/Buttons/Size/Caption/Height": { "title": "$:/language/Buttons/Size/Caption/Height", "text": "Höhe:" }, "$:/language/Buttons/Size/Caption/Resize": { "title": "$:/language/Buttons/Size/Caption/Resize", "text": "Bildgröße ändern" }, "$:/language/Buttons/Size/Caption/Width": { "title": "$:/language/Buttons/Size/Caption/Width", "text": "Weite:" }, "$:/language/Buttons/Size/Hint": { "title": "$:/language/Buttons/Size/Hint", "text": "Bildweite ändern" }, "$:/language/Buttons/Stamp/Caption": { "title": "$:/language/Buttons/Stamp/Caption", "text": "Stempel" }, "$:/language/Buttons/Stamp/Caption/New": { "title": "$:/language/Buttons/Stamp/Caption/New", "text": "Eigenen Stempel erstellen" }, "$:/language/Buttons/Stamp/Hint": { "title": "$:/language/Buttons/Stamp/Hint", "text": "Textschnipsel hier einfügen" }, "$:/language/Buttons/Stamp/New/Title": { "title": "$:/language/Buttons/Stamp/New/Title", "text": "Name, der im Menü angezeigt werden soll" }, "$:/language/Buttons/Stamp/New/Text": { "title": "$:/language/Buttons/Stamp/New/Text", "text": "Text des Schnipsels. (Nicher vergessen eine aussagekräftigen Titel zu verwenden)" }, "$:/language/Buttons/Strikethrough/Caption": { "title": "$:/language/Buttons/Strikethrough/Caption", "text": "Durchgestrichen" }, "$:/language/Buttons/Strikethrough/Hint": { "title": "$:/language/Buttons/Strikethrough/Hint", "text": "Ausgewählten Text durchgestrichen darstgellen" }, "$:/language/Buttons/Subscript/Caption": { "title": "$:/language/Buttons/Subscript/Caption", "text": "Tiefsgestellt" }, "$:/language/Buttons/Subscript/Hint": { "title": "$:/language/Buttons/Subscript/Hint", "text": "Ausgewählten Text tiefgestellt darstellen" }, "$:/language/Buttons/Superscript/Caption": { "title": "$:/language/Buttons/Superscript/Caption", "text": "Hochgestellt" }, "$:/language/Buttons/Superscript/Hint": { "title": "$:/language/Buttons/Superscript/Hint", "text": "Ausgewählten Text hochgestellt darstellen" }, "$:/language/Buttons/Underline/Caption": { "title": "$:/language/Buttons/Underline/Caption", "text": "Unterstreichen" }, "$:/language/Buttons/Underline/Hint": { "title": "$:/language/Buttons/Underline/Hint", "text": "Ausgewählten Text unterstrichen darstellen" }, "$:/language/ControlPanel/Advanced/Caption": { "title": "$:/language/ControlPanel/Advanced/Caption", "text": "Erweitert" }, "$:/language/ControlPanel/Advanced/Hint": { "title": "$:/language/ControlPanel/Advanced/Hint", "text": "Interne Informationen über dieses ~TiddlyWiki." }, "$:/language/ControlPanel/Appearance/Caption": { "title": "$:/language/ControlPanel/Appearance/Caption", "text": "Design" }, "$:/language/ControlPanel/Appearance/Hint": { "title": "$:/language/ControlPanel/Appearance/Hint", "text": "Möglichkeiten um das Aussehen Ihres ~TiddlyWikis anzupassen." }, "$:/language/ControlPanel/Basics/AnimDuration/Prompt": { "title": "$:/language/ControlPanel/Basics/AnimDuration/Prompt", "text": "Dauer der Animation:" }, "$:/language/ControlPanel/Basics/Caption": { "title": "$:/language/ControlPanel/Basics/Caption", "text": "Basis" }, "$:/language/ControlPanel/Basics/DefaultTiddlers/BottomHint": { "title": "$:/language/ControlPanel/Basics/DefaultTiddlers/BottomHint", "text": "Verwenden Sie [[doppelte eckige Klammern]] für Titel mit Leerzeichen oder wählen Sie <$button set=\"$:/DefaultTiddlers\" setTo=\"[list[$:/StoryList]]\">Offene Tiddler beim Laden wiederherstellen.</$button>" }, "$:/language/ControlPanel/Basics/DefaultTiddlers/Prompt": { "title": "$:/language/ControlPanel/Basics/DefaultTiddlers/Prompt", "text": "Standard-Tiddler:" }, "$:/language/ControlPanel/Basics/DefaultTiddlers/TopHint": { "title": "$:/language/ControlPanel/Basics/DefaultTiddlers/TopHint", "text": "Tiddler, die beim Start geladen werden:" }, "$:/language/ControlPanel/Basics/Language/Prompt": { "title": "$:/language/ControlPanel/Basics/Language/Prompt", "text": "Hallo! Aktuelle Sprache:" }, "$:/language/ControlPanel/Basics/NewJournal/Title/Prompt": { "title": "$:/language/ControlPanel/Basics/NewJournal/Title/Prompt", "text": "Titel des neuen Journal-Tiddlers:" }, "$:/language/ControlPanel/Basics/NewJournal/Tags/Prompt": { "title": "$:/language/ControlPanel/Basics/NewJournal/Tags/Prompt", "text": "Tags des neuen Journal-Tiddlers:" }, "$:/language/ControlPanel/Basics/OverriddenShadowTiddlers/Prompt": { "title": "$:/language/ControlPanel/Basics/OverriddenShadowTiddlers/Prompt", "text": "Anzahl überschriebener Schatten-Tiddler:" }, "$:/language/ControlPanel/Basics/ShadowTiddlers/Prompt": { "title": "$:/language/ControlPanel/Basics/ShadowTiddlers/Prompt", "text": "Anzahl Schatten-Tiddler:" }, "$:/language/ControlPanel/Basics/Subtitle/Prompt": { "title": "$:/language/ControlPanel/Basics/Subtitle/Prompt", "text": "Untertitel:" }, "$:/language/ControlPanel/Basics/SystemTiddlers/Prompt": { "title": "$:/language/ControlPanel/Basics/SystemTiddlers/Prompt", "text": "Anzahl System-Tiddler:" }, "$:/language/ControlPanel/Basics/Tags/Prompt": { "title": "$:/language/ControlPanel/Basics/Tags/Prompt", "text": "Anzahl Tags:" }, "$:/language/ControlPanel/Basics/Tiddlers/Prompt": { "title": "$:/language/ControlPanel/Basics/Tiddlers/Prompt", "text": "Anzahl Tiddler:" }, "$:/language/ControlPanel/Basics/Title/Prompt": { "title": "$:/language/ControlPanel/Basics/Title/Prompt", "text": "Titel dieses ~TiddlyWikis:" }, "$:/language/ControlPanel/Basics/Username/Prompt": { "title": "$:/language/ControlPanel/Basics/Username/Prompt", "text": "Benutzersignatur zum Editieren:" }, "$:/language/ControlPanel/Basics/Version/Prompt": { "title": "$:/language/ControlPanel/Basics/Version/Prompt", "text": "~TiddlyWiki Version:" }, "$:/language/ControlPanel/EditorTypes/Caption": { "title": "$:/language/ControlPanel/EditorTypes/Caption", "text": "Editor Typen" }, "$:/language/ControlPanel/EditorTypes/Editor/Caption": { "title": "$:/language/ControlPanel/EditorTypes/Editor/Caption", "text": "Editor" }, "$:/language/ControlPanel/EditorTypes/Hint": { "title": "$:/language/ControlPanel/EditorTypes/Hint", "text": "Diese Tiddler definieren, welcher Editor für bestimmte Tiddler Typen (MIME-Type) verwendet werden soll." }, "$:/language/ControlPanel/EditorTypes/Type/Caption": { "title": "$:/language/ControlPanel/EditorTypes/Type/Caption", "text": "MIME-Type" }, "$:/language/ControlPanel/Info/Caption": { "title": "$:/language/ControlPanel/Info/Caption", "text": "Info" }, "$:/language/ControlPanel/Info/Hint": { "title": "$:/language/ControlPanel/Info/Hint", "text": "Informationen über dieses TiddlyWiki" }, "$:/language/ControlPanel/KeyboardShortcuts/Add/Prompt": { "title": "$:/language/ControlPanel/KeyboardShortcuts/Add/Prompt", "text": "Tastenkürzel hier eingeben" }, "$:/language/ControlPanel/KeyboardShortcuts/Add/Caption": { "title": "$:/language/ControlPanel/KeyboardShortcuts/Add/Caption", "text": "Tastenkürzel erstellen" }, "$:/language/ControlPanel/KeyboardShortcuts/Caption": { "title": "$:/language/ControlPanel/KeyboardShortcuts/Caption", "text": "Tastenkürzel" }, "$:/language/ControlPanel/KeyboardShortcuts/Hint": { "title": "$:/language/ControlPanel/KeyboardShortcuts/Hint", "text": "Tastenkürzel Zuweisungen bearbeiten" }, "$:/language/ControlPanel/KeyboardShortcuts/NoShortcuts/Caption": { "title": "$:/language/ControlPanel/KeyboardShortcuts/NoShortcuts/Caption", "text": "Keine Tastenkürzel Zusweisungen vorhanden" }, "$:/language/ControlPanel/KeyboardShortcuts/Remove/Hint": { "title": "$:/language/ControlPanel/KeyboardShortcuts/Remove/Hint", "text": "Löschen eines Tastenkürzels" }, "$:/language/ControlPanel/KeyboardShortcuts/Platform/All": { "title": "$:/language/ControlPanel/KeyboardShortcuts/Platform/All", "text": "Alle Plattformen" }, "$:/language/ControlPanel/KeyboardShortcuts/Platform/Mac": { "title": "$:/language/ControlPanel/KeyboardShortcuts/Platform/Mac", "text": "Nur Macintosh" }, "$:/language/ControlPanel/KeyboardShortcuts/Platform/NonMac": { "title": "$:/language/ControlPanel/KeyboardShortcuts/Platform/NonMac", "text": "Alle Plattformen, außer Macintosh" }, "$:/language/ControlPanel/KeyboardShortcuts/Platform/Linux": { "title": "$:/language/ControlPanel/KeyboardShortcuts/Platform/Linux", "text": "Nur Linux" }, "$:/language/ControlPanel/KeyboardShortcuts/Platform/NonLinux": { "title": "$:/language/ControlPanel/KeyboardShortcuts/Platform/NonLinux", "text": "Alle Plattformen, außer Linux" }, "$:/language/ControlPanel/KeyboardShortcuts/Platform/Windows": { "title": "$:/language/ControlPanel/KeyboardShortcuts/Platform/Windows", "text": "Nur Windows" }, "$:/language/ControlPanel/KeyboardShortcuts/Platform/NonWindows": { "title": "$:/language/ControlPanel/KeyboardShortcuts/Platform/NonWindows", "text": "Alle Plattformen, außer Windows" }, "$:/language/ControlPanel/LoadedModules/Caption": { "title": "$:/language/ControlPanel/LoadedModules/Caption", "text": "Geladene Module" }, "$:/language/ControlPanel/LoadedModules/Hint": { "title": "$:/language/ControlPanel/LoadedModules/Hint", "text": "Hier werden die geladenen Module und ihre Quelltext-Komponenten angezeigt. Kursiv hervorgehobene Tiddler haben keinen Quelltext. Sie werden während des Boot-Prozesses (Aufrufen des Tiddlywikis) erstellt." }, "$:/language/ControlPanel/Palette/Caption": { "title": "$:/language/ControlPanel/Palette/Caption", "text": "Palette" }, "$:/language/ControlPanel/Palette/Editor/Clone/Caption": { "title": "$:/language/ControlPanel/Palette/Editor/Clone/Caption", "text": "Palette klonen" }, "$:/language/ControlPanel/Palette/Editor/Clone/Prompt": { "title": "$:/language/ControlPanel/Palette/Editor/Clone/Prompt", "text": "Es wird empfohlen, dass Sie diese Schatten-Palette klonen, bevor Sie sie bearbeiten. Der Name der Palette wird im Tiddler-Feld \"description\" eingestellt." }, "$:/language/ControlPanel/Palette/Editor/Prompt/Modified": { "title": "$:/language/ControlPanel/Palette/Editor/Prompt/Modified", "text": "Diese Schatten-Palette wurde bearbeitet." }, "$:/language/ControlPanel/Palette/Editor/Prompt": { "title": "$:/language/ControlPanel/Palette/Editor/Prompt", "text": "Bearbeiten" }, "$:/language/ControlPanel/Palette/Editor/Reset/Caption": { "title": "$:/language/ControlPanel/Palette/Editor/Reset/Caption", "text": "Palette zurücksetzen" }, "$:/language/ControlPanel/Palette/HideEditor/Caption": { "title": "$:/language/ControlPanel/Palette/HideEditor/Caption", "text": "Editor ausblenden" }, "$:/language/ControlPanel/Palette/Prompt": { "title": "$:/language/ControlPanel/Palette/Prompt", "text": "Ausgewählte Farbpalette:" }, "$:/language/ControlPanel/Palette/ShowEditor/Caption": { "title": "$:/language/ControlPanel/Palette/ShowEditor/Caption", "text": "Editor zeigen" }, "$:/language/ControlPanel/Parsing/Caption": { "title": "$:/language/ControlPanel/Parsing/Caption", "text": "Parser" }, "$:/language/ControlPanel/Parsing/Hint": { "title": "$:/language/ControlPanel/Parsing/Hint", "text": "Hier können Sie die globalen Parser-Einstellungen ändern. ACHTUNG: Manche Einstellungen können dazu führen, dass ~TiddlyWiki nicht mehr richtig funktioniert. Sollte das der Fall sein, dann können Sie die Änderungen im [[\"safe mode\"|http://tiddlywiki.com/#SafeMode]] rückgängig machen." }, "$:/language/ControlPanel/Parsing/Block/Caption": { "title": "$:/language/ControlPanel/Parsing/Block/Caption", "text": "Block Regeln" }, "$:/language/ControlPanel/Parsing/Inline/Caption": { "title": "$:/language/ControlPanel/Parsing/Inline/Caption", "text": "Inline Regeln" }, "$:/language/ControlPanel/Parsing/Pragma/Caption": { "title": "$:/language/ControlPanel/Parsing/Pragma/Caption", "text": "Pragma Regeln" }, "$:/language/ControlPanel/Plugins/Add/Hint": { "title": "$:/language/ControlPanel/Plugins/Add/Hint", "text": "Suche und installiere neue Plugins" }, "$:/language/ControlPanel/Plugins/Add/Caption": { "title": "$:/language/ControlPanel/Plugins/Add/Caption", "text": "Suche" }, "$:/language/ControlPanel/Plugins/AlreadyInstalled/Hint": { "title": "$:/language/ControlPanel/Plugins/AlreadyInstalled/Hint", "text": "Dieses Plugin ist bereits installiert. Version: <$text text=<<installedVersion>>/>" }, "$:/language/ControlPanel/Plugins/Caption": { "title": "$:/language/ControlPanel/Plugins/Caption", "text": "Plugins" }, "$:/language/ControlPanel/Plugins/Disable/Caption": { "title": "$:/language/ControlPanel/Plugins/Disable/Caption", "text": "deaktivieren" }, "$:/language/ControlPanel/Plugins/Disable/Hint": { "title": "$:/language/ControlPanel/Plugins/Disable/Hint", "text": "Deaktivieren Sie dieses Plugin beim nächsten Laden der Seite." }, "$:/language/ControlPanel/Plugins/Disabled/Status": { "title": "$:/language/ControlPanel/Plugins/Disabled/Status", "text": "(deaktiviert)" }, "$:/language/ControlPanel/Plugins/Empty/Hint": { "title": "$:/language/ControlPanel/Plugins/Empty/Hint", "text": "keine" }, "$:/language/ControlPanel/Plugins/Enable/Caption": { "title": "$:/language/ControlPanel/Plugins/Enable/Caption", "text": "aktivieren" }, "$:/language/ControlPanel/Plugins/Enable/Hint": { "title": "$:/language/ControlPanel/Plugins/Enable/Hint", "text": "Aktivieren Sie dieses Plugin beim nächsten Laden der Seite." }, "$:/language/ControlPanel/Plugins/Install/Caption": { "title": "$:/language/ControlPanel/Plugins/Install/Caption", "text": "installieren" }, "$:/language/ControlPanel/Plugins/Installed/Hint": { "title": "$:/language/ControlPanel/Plugins/Installed/Hint", "text": "Momentan installierte Plugins" }, "$:/language/ControlPanel/Plugins/Languages/Caption": { "title": "$:/language/ControlPanel/Plugins/Languages/Caption", "text": "Sprachen" }, "$:/language/ControlPanel/Plugins/Languages/Hint": { "title": "$:/language/ControlPanel/Plugins/Languages/Hint", "text": "Spracherweiterungen" }, "$:/language/ControlPanel/Plugins/NoInfoFound/Hint": { "title": "$:/language/ControlPanel/Plugins/NoInfoFound/Hint", "text": "Kein ''\"<$text text=<<currentTab>>/>\"'' gefunden" }, "$:/language/ControlPanel/Plugins/NoInformation/Hint": { "title": "$:/language/ControlPanel/Plugins/NoInformation/Hint", "text": "Kein Information vorhanden" }, "$:/language/ControlPanel/Plugins/NotInstalled/Hint": { "title": "$:/language/ControlPanel/Plugins/NotInstalled/Hint", "text": "Dieses Plugin ist momentan nicht installiert" }, "$:/language/ControlPanel/Plugins/OpenPluginLibrary": { "title": "$:/language/ControlPanel/Plugins/OpenPluginLibrary", "text": "Öffne das Plugin-Verzeichnis" }, "$:/language/ControlPanel/Plugins/Plugins/Caption": { "title": "$:/language/ControlPanel/Plugins/Plugins/Caption", "text": "Plugins" }, "$:/language/ControlPanel/Plugins/Plugins/Hint": { "title": "$:/language/ControlPanel/Plugins/Plugins/Hint", "text": "Erweiterungen" }, "$:/language/ControlPanel/Plugins/Reinstall/Caption": { "title": "$:/language/ControlPanel/Plugins/Reinstall/Caption", "text": "erneut installieren" }, "$:/language/ControlPanel/Plugins/Themes/Caption": { "title": "$:/language/ControlPanel/Plugins/Themes/Caption", "text": "Themes" }, "$:/language/ControlPanel/Plugins/Themes/Hint": { "title": "$:/language/ControlPanel/Plugins/Themes/Hint", "text": "Theme Erweiterungen" }, "$:/language/ControlPanel/Saving/Caption": { "title": "$:/language/ControlPanel/Saving/Caption", "text": "Speichern" }, "$:/language/ControlPanel/Saving/Heading": { "title": "$:/language/ControlPanel/Saving/Heading", "text": "Speichern" }, "$:/language/ControlPanel/Saving/TiddlySpot/Advanced/Heading": { "title": "$:/language/ControlPanel/Saving/TiddlySpot/Advanced/Heading", "text": "Erweiterte Einstellungen" }, "$:/language/ControlPanel/Saving/TiddlySpot/BackupDir": { "title": "$:/language/ControlPanel/Saving/TiddlySpot/BackupDir", "text": "Verzeichnis für das \"Backup\"" }, "$:/language/ControlPanel/Saving/TiddlySpot/Backups": { "title": "$:/language/ControlPanel/Saving/TiddlySpot/Backups", "text": "\"Backups\"" }, "$:/language/ControlPanel/Saving/TiddlySpot/Description": { "title": "$:/language/ControlPanel/Saving/TiddlySpot/Description", "text": "Diese Einstellungen sind nur für http://tiddlyspot.com und kompatible Server aktiv!" }, "$:/language/ControlPanel/Saving/TiddlySpot/Filename": { "title": "$:/language/ControlPanel/Saving/TiddlySpot/Filename", "text": "Dateiname für den \"Upload\"" }, "$:/language/ControlPanel/Saving/TiddlySpot/Heading": { "title": "$:/language/ControlPanel/Saving/TiddlySpot/Heading", "text": "~TiddlySpot" }, "$:/language/ControlPanel/Saving/TiddlySpot/Hint": { "title": "$:/language/ControlPanel/Saving/TiddlySpot/Hint", "text": "//Die Standard-Server-URL ist `http://<wikiname>.tiddlyspot.com/store.cgi` und kann im Feld 'Server-URL' verändert werden. zB: http://example.com/store.php//" }, "$:/language/ControlPanel/Saving/TiddlySpot/Password": { "title": "$:/language/ControlPanel/Saving/TiddlySpot/Password", "text": "Passwort" }, "$:/language/ControlPanel/Saving/TiddlySpot/ServerURL": { "title": "$:/language/ControlPanel/Saving/TiddlySpot/ServerURL", "text": "Server-URL" }, "$:/language/ControlPanel/Saving/TiddlySpot/UploadDir": { "title": "$:/language/ControlPanel/Saving/TiddlySpot/UploadDir", "text": "Verzeichnis für den \"Upload\"" }, "$:/language/ControlPanel/Saving/TiddlySpot/UserName": { "title": "$:/language/ControlPanel/Saving/TiddlySpot/UserName", "text": "Name des Wikis" }, "$:/language/ControlPanel/Settings/AutoSave/Caption": { "title": "$:/language/ControlPanel/Settings/AutoSave/Caption", "text": "Automatisch speichern" }, "$:/language/ControlPanel/Settings/AutoSave/Disabled/Description": { "title": "$:/language/ControlPanel/Settings/AutoSave/Disabled/Description", "text": "Änderungen NICHT automatisch speichern" }, "$:/language/ControlPanel/Settings/AutoSave/Enabled/Description": { "title": "$:/language/ControlPanel/Settings/AutoSave/Enabled/Description", "text": "Änderungen automatisch speichern" }, "$:/language/ControlPanel/Settings/AutoSave/Hint": { "title": "$:/language/ControlPanel/Settings/AutoSave/Hint", "text": "Änderungen des Wikis automatisch speichern" }, "$:/language/ControlPanel/Settings/CamelCase/Caption": { "title": "$:/language/ControlPanel/Settings/CamelCase/Caption", "text": "Camel Case Wiki Links" }, "$:/language/ControlPanel/Settings/CamelCase/Hint": { "title": "$:/language/ControlPanel/Settings/CamelCase/Hint", "text": "Hier können Sie die automatische Umwandlung von \"~CamelCase Links\" einstellen. ''Wichtig:'' Die Seite muss neu geladen werden, damit die Einstellungen wirksam werden." }, "$:/language/ControlPanel/Settings/CamelCase/Description": { "title": "$:/language/ControlPanel/Settings/CamelCase/Description", "text": "Automatische ~CamelCase Umwandlung aktivieren" }, "$:/language/ControlPanel/Settings/Caption": { "title": "$:/language/ControlPanel/Settings/Caption", "text": "Einstellungen" }, "$:/language/ControlPanel/Settings/EditorToolbar/Caption": { "title": "$:/language/ControlPanel/Settings/EditorToolbar/Caption", "text": "Editor Toolbar" }, "$:/language/ControlPanel/Settings/EditorToolbar/Hint": { "title": "$:/language/ControlPanel/Settings/EditorToolbar/Hint", "text": "Aktivieren oder deaktivieren der Editor Toolbar" }, "$:/language/ControlPanel/Settings/EditorToolbar/Description": { "title": "$:/language/ControlPanel/Settings/EditorToolbar/Description", "text": "Editor Toolbar anzeigen" }, "$:/language/ControlPanel/Settings/Hint": { "title": "$:/language/ControlPanel/Settings/Hint", "text": "Diese erweiterten Einstellungen ermöglichen Ihnen, das Verhalten von TiddlyWiki zu ändern." }, "$:/language/ControlPanel/Settings/NavigationAddressBar/Caption": { "title": "$:/language/ControlPanel/Settings/NavigationAddressBar/Caption", "text": "Navigation Adresszeile" }, "$:/language/ControlPanel/Settings/NavigationAddressBar/Hint": { "title": "$:/language/ControlPanel/Settings/NavigationAddressBar/Hint", "text": "Verhalten der Adresszeile des Browsers, wenn ein Tiddler geöffnet wird:" }, "$:/language/ControlPanel/Settings/NavigationAddressBar/No/Description": { "title": "$:/language/ControlPanel/Settings/NavigationAddressBar/No/Description", "text": "Die Adresszeile des Browsers wird nicht verändert." }, "$:/language/ControlPanel/Settings/NavigationAddressBar/Permalink/Description": { "title": "$:/language/ControlPanel/Settings/NavigationAddressBar/Permalink/Description", "text": "Den aktuellen Tiddler einbinden." }, "$:/language/ControlPanel/Settings/NavigationAddressBar/Permaview/Description": { "title": "$:/language/ControlPanel/Settings/NavigationAddressBar/Permaview/Description", "text": "Alle geöffneten Tiddler einbinden." }, "$:/language/ControlPanel/Settings/NavigationHistory/Caption": { "title": "$:/language/ControlPanel/Settings/NavigationHistory/Caption", "text": "Browser Chronik" }, "$:/language/ControlPanel/Settings/NavigationHistory/Hint": { "title": "$:/language/ControlPanel/Settings/NavigationHistory/Hint", "text": "Die Browser Chronik ändern, wenn ein Tiddler angezeigt wird:" }, "$:/language/ControlPanel/Settings/NavigationHistory/No/Description": { "title": "$:/language/ControlPanel/Settings/NavigationHistory/No/Description", "text": "Browser Chronik nicht ändern." }, "$:/language/ControlPanel/Settings/NavigationHistory/Yes/Description": { "title": "$:/language/ControlPanel/Settings/NavigationHistory/Yes/Description", "text": "Browser Chronik ändern." }, "$:/language/ControlPanel/Settings/PerformanceInstrumentation/Caption": { "title": "$:/language/ControlPanel/Settings/PerformanceInstrumentation/Caption", "text": "Performance Messung" }, "$:/language/ControlPanel/Settings/PerformanceInstrumentation/Hint": { "title": "$:/language/ControlPanel/Settings/PerformanceInstrumentation/Hint", "text": "Anzeige der Performance Statistik in der Browser Entwickler Konsole. ''Wichtig:'' Seite neu laden um die Einstellung zu aktivieren!" }, "$:/language/ControlPanel/Settings/PerformanceInstrumentation/Description": { "title": "$:/language/ControlPanel/Settings/PerformanceInstrumentation/Description", "text": "Aktiviere Performance Messung" }, "$:/language/ControlPanel/Settings/ToolbarButtonStyle/Caption": { "title": "$:/language/ControlPanel/Settings/ToolbarButtonStyle/Caption", "text": "Toolbar Button Stil" }, "$:/language/ControlPanel/Settings/ToolbarButtonStyle/Hint": { "title": "$:/language/ControlPanel/Settings/ToolbarButtonStyle/Hint", "text": "Wählen Sie einen Stil:" }, "$:/language/ControlPanel/Settings/ToolbarButtonStyle/Styles/Borderless": { "title": "$:/language/ControlPanel/Settings/ToolbarButtonStyle/Styles/Borderless", "text": "Ohne Rand" }, "$:/language/ControlPanel/Settings/ToolbarButtonStyle/Styles/Boxed": { "title": "$:/language/ControlPanel/Settings/ToolbarButtonStyle/Styles/Boxed", "text": "Box" }, "$:/language/ControlPanel/Settings/ToolbarButtonStyle/Styles/Rounded": { "title": "$:/language/ControlPanel/Settings/ToolbarButtonStyle/Styles/Rounded", "text": "Abgerundet" }, "$:/language/ControlPanel/Settings/ToolbarButtons/Caption": { "title": "$:/language/ControlPanel/Settings/ToolbarButtons/Caption", "text": "Toolbar Buttons" }, "$:/language/ControlPanel/Settings/ToolbarButtons/Hint": { "title": "$:/language/ControlPanel/Settings/ToolbarButtons/Hint", "text": "Standard Toolbar Button Erscheinungsbild:" }, "$:/language/ControlPanel/Settings/ToolbarButtons/Icons/Description": { "title": "$:/language/ControlPanel/Settings/ToolbarButtons/Icons/Description", "text": "Icon anzeigen" }, "$:/language/ControlPanel/Settings/ToolbarButtons/Text/Description": { "title": "$:/language/ControlPanel/Settings/ToolbarButtons/Text/Description", "text": "Text anzeigen" }, "$:/language/ControlPanel/Settings/DefaultSidebarTab/Caption": { "title": "$:/language/ControlPanel/Settings/DefaultSidebarTab/Caption", "text": "Standard Sidebar Tab" }, "$:/language/ControlPanel/Settings/DefaultSidebarTab/Hint": { "title": "$:/language/ControlPanel/Settings/DefaultSidebarTab/Hint", "text": "Definition, welcher Sidebar Tab standardmäßig aktiv ist." }, "$:/language/ControlPanel/Settings/LinkToBehaviour/Caption": { "title": "$:/language/ControlPanel/Settings/LinkToBehaviour/Caption", "text": "Tiddler Öffnen" }, "$:/language/ControlPanel/Settings/LinkToBehaviour/InsideRiver/Hint": { "title": "$:/language/ControlPanel/Settings/LinkToBehaviour/InsideRiver/Hint", "text": "Navigation bei Klicks //innerhalb// der Story" }, "$:/language/ControlPanel/Settings/LinkToBehaviour/OutsideRiver/Hint": { "title": "$:/language/ControlPanel/Settings/LinkToBehaviour/OutsideRiver/Hint", "text": "Navigation bei Klicks //außerhalb// der Story" }, "$:/language/ControlPanel/Settings/LinkToBehaviour/OpenAbove": { "title": "$:/language/ControlPanel/Settings/LinkToBehaviour/OpenAbove", "text": "Öffne vor dem aktuellen Tiddler" }, "$:/language/ControlPanel/Settings/LinkToBehaviour/OpenBelow": { "title": "$:/language/ControlPanel/Settings/LinkToBehaviour/OpenBelow", "text": "Öffne unter dem aktuellen Tiddler" }, "$:/language/ControlPanel/Settings/LinkToBehaviour/OpenAtTop": { "title": "$:/language/ControlPanel/Settings/LinkToBehaviour/OpenAtTop", "text": "Öffne als ersten Tiddler in der Story" }, "$:/language/ControlPanel/Settings/LinkToBehaviour/OpenAtBottom": { "title": "$:/language/ControlPanel/Settings/LinkToBehaviour/OpenAtBottom", "text": "Öffne alse letzten Tiddler in der Story" }, "$:/language/ControlPanel/Settings/TitleLinks/Caption": { "title": "$:/language/ControlPanel/Settings/TitleLinks/Caption", "text": "Tiddler Titel" }, "$:/language/ControlPanel/Settings/TitleLinks/Hint": { "title": "$:/language/ControlPanel/Settings/TitleLinks/Hint", "text": "Tiddler Titel als Links anzeigen:" }, "$:/language/ControlPanel/Settings/TitleLinks/No/Description": { "title": "$:/language/ControlPanel/Settings/TitleLinks/No/Description", "text": "Tiddler Titel normal anzeigen." }, "$:/language/ControlPanel/Settings/TitleLinks/Yes/Description": { "title": "$:/language/ControlPanel/Settings/TitleLinks/Yes/Description", "text": "Tiddler Titel als Link anzeigen." }, "$:/language/ControlPanel/Settings/MissingLinks/Caption": { "title": "$:/language/ControlPanel/Settings/MissingLinks/Caption", "text": "Wiki-Links" }, "$:/language/ControlPanel/Settings/MissingLinks/Hint": { "title": "$:/language/ControlPanel/Settings/MissingLinks/Hint", "text": "Aktiviere Links zu fehlenden Tiddlern. zB: FehlenderTiddler [[Einführung]]" }, "$:/language/ControlPanel/Settings/MissingLinks/Description": { "title": "$:/language/ControlPanel/Settings/MissingLinks/Description", "text": "Aktiviere Links zu fehlenden Tiddlern." }, "$:/language/ControlPanel/StoryView/Caption": { "title": "$:/language/ControlPanel/StoryView/Caption", "text": "Anzeige" }, "$:/language/ControlPanel/StoryView/Prompt": { "title": "$:/language/ControlPanel/StoryView/Prompt", "text": "Ausgewählte Anzeige:" }, "$:/language/ControlPanel/Theme/Caption": { "title": "$:/language/ControlPanel/Theme/Caption", "text": "Theme" }, "$:/language/ControlPanel/Theme/Prompt": { "title": "$:/language/ControlPanel/Theme/Prompt", "text": "Ausgewähltes Theme:" }, "$:/language/ControlPanel/TiddlerFields/Caption": { "title": "$:/language/ControlPanel/TiddlerFields/Caption", "text": "Tiddler Felder" }, "$:/language/ControlPanel/TiddlerFields/Hint": { "title": "$:/language/ControlPanel/TiddlerFields/Hint", "text": "Hier finden Sie alle [[Felder|TiddlerFields]], die in diesem Wiki verwendet werden. Inklusive der Felder aus System-, exklusive Schatten-Tiddler. " }, "$:/language/ControlPanel/Toolbars/Caption": { "title": "$:/language/ControlPanel/Toolbars/Caption", "text": "Toolbar" }, "$:/language/ControlPanel/Toolbars/EditToolbar/Caption": { "title": "$:/language/ControlPanel/Toolbars/EditToolbar/Caption", "text": "Edit Toolbar" }, "$:/language/ControlPanel/Toolbars/EditToolbar/Hint": { "title": "$:/language/ControlPanel/Toolbars/EditToolbar/Hint", "text": "Auswählen, welche Buttons im \"Edit Modus\" angezeigt werden:" }, "$:/language/ControlPanel/Toolbars/Hint": { "title": "$:/language/ControlPanel/Toolbars/Hint", "text": "Auswählen, welche \"Toolbar Button\" angezeigt werden" }, "$:/language/ControlPanel/Toolbars/PageControls/Caption": { "title": "$:/language/ControlPanel/Toolbars/PageControls/Caption", "text": "Page Toolbar" }, "$:/language/ControlPanel/Toolbars/PageControls/Hint": { "title": "$:/language/ControlPanel/Toolbars/PageControls/Hint", "text": "Auswählen, welche Buttons im Hauptmenü angezeigt werden:" }, "$:/language/ControlPanel/Toolbars/EditorToolbar/Caption": { "title": "$:/language/ControlPanel/Toolbars/EditorToolbar/Caption", "text": "Editor Toolbar" }, "$:/language/ControlPanel/Toolbars/EditorToolbar/Hint": { "title": "$:/language/ControlPanel/Toolbars/EditorToolbar/Hint", "text": "Auswählen, welche Editorbuttons angezeigt werden sollen. Manche Buttons sind vom Tiddler-Typ abhängig und werden eventuell ausgeblendet." }, "$:/language/ControlPanel/Toolbars/ViewToolbar/Caption": { "title": "$:/language/ControlPanel/Toolbars/ViewToolbar/Caption", "text": "View Toolbar" }, "$:/language/ControlPanel/Toolbars/ViewToolbar/Hint": { "title": "$:/language/ControlPanel/Toolbars/ViewToolbar/Hint", "text": "Auswählen, welche Buttons im \"View Modus\" angezeigt werden:" }, "$:/language/ControlPanel/Tools/Download/Full/Caption": { "title": "$:/language/ControlPanel/Tools/Download/Full/Caption", "text": "Herunterladen des ''gesamten Wikis''" }, "$:/core/de-DE/readme": { "title": "$:/core/de-DE/readme", "text": "Dieses Plugin enthält die TiddlyWiki Basis Komponenten, bestehend aus:\n\n* JavaScript Code Module.\n* Piktogramme (icons).\n* Vorlagen, die benötigt werden um die TiddlyWiki Oberfläche zu erstellen.\n* British English (''en-GB'') übersetzbare Texte, die von der TW Basis Software verwendet werden.\n" }, "$:/language/Date/DaySuffix/1": { "title": "$:/language/Date/DaySuffix/1", "text": "." }, "$:/language/Date/DaySuffix/2": { "title": "$:/language/Date/DaySuffix/2", "text": "." }, "$:/language/Date/DaySuffix/3": { "title": "$:/language/Date/DaySuffix/3", "text": "." }, "$:/language/Date/DaySuffix/4": { "title": "$:/language/Date/DaySuffix/4", "text": "." }, "$:/language/Date/DaySuffix/5": { "title": "$:/language/Date/DaySuffix/5", "text": "." }, "$:/language/Date/DaySuffix/6": { "title": "$:/language/Date/DaySuffix/6", "text": "." }, "$:/language/Date/DaySuffix/7": { "title": "$:/language/Date/DaySuffix/7", "text": "." }, "$:/language/Date/DaySuffix/8": { "title": "$:/language/Date/DaySuffix/8", "text": "." }, "$:/language/Date/DaySuffix/9": { "title": "$:/language/Date/DaySuffix/9", "text": "." }, "$:/language/Date/DaySuffix/10": { "title": "$:/language/Date/DaySuffix/10", "text": "." }, "$:/language/Date/DaySuffix/11": { "title": "$:/language/Date/DaySuffix/11", "text": "." }, "$:/language/Date/DaySuffix/12": { "title": "$:/language/Date/DaySuffix/12", "text": "." }, "$:/language/Date/DaySuffix/13": { "title": "$:/language/Date/DaySuffix/13", "text": "." }, "$:/language/Date/DaySuffix/14": { "title": "$:/language/Date/DaySuffix/14", "text": "." }, "$:/language/Date/DaySuffix/15": { "title": "$:/language/Date/DaySuffix/15", "text": "." }, "$:/language/Date/DaySuffix/16": { "title": "$:/language/Date/DaySuffix/16", "text": "." }, "$:/language/Date/DaySuffix/17": { "title": "$:/language/Date/DaySuffix/17", "text": "." }, "$:/language/Date/DaySuffix/18": { "title": "$:/language/Date/DaySuffix/18", "text": "." }, "$:/language/Date/DaySuffix/19": { "title": "$:/language/Date/DaySuffix/19", "text": "." }, "$:/language/Date/DaySuffix/20": { "title": "$:/language/Date/DaySuffix/20", "text": "." }, "$:/language/Date/DaySuffix/21": { "title": "$:/language/Date/DaySuffix/21", "text": "." }, "$:/language/Date/DaySuffix/22": { "title": "$:/language/Date/DaySuffix/22", "text": "." }, "$:/language/Date/DaySuffix/23": { "title": "$:/language/Date/DaySuffix/23", "text": "." }, "$:/language/Date/DaySuffix/24": { "title": "$:/language/Date/DaySuffix/24", "text": "." }, "$:/language/Date/DaySuffix/25": { "title": "$:/language/Date/DaySuffix/25", "text": "." }, "$:/language/Date/DaySuffix/26": { "title": "$:/language/Date/DaySuffix/26", "text": "." }, "$:/language/Date/DaySuffix/27": { "title": "$:/language/Date/DaySuffix/27", "text": "." }, "$:/language/Date/DaySuffix/28": { "title": "$:/language/Date/DaySuffix/28", "text": "." }, "$:/language/Date/DaySuffix/29": { "title": "$:/language/Date/DaySuffix/29", "text": "." }, "$:/language/Date/DaySuffix/30": { "title": "$:/language/Date/DaySuffix/30", "text": "." }, "$:/language/Date/DaySuffix/31": { "title": "$:/language/Date/DaySuffix/31", "text": "." }, "$:/language/Date/Long/Day/0": { "title": "$:/language/Date/Long/Day/0", "text": "Sonntag" }, "$:/language/Date/Long/Day/1": { "title": "$:/language/Date/Long/Day/1", "text": "Montag" }, "$:/language/Date/Long/Day/2": { "title": "$:/language/Date/Long/Day/2", "text": "Dienstag" }, "$:/language/Date/Long/Day/3": { "title": "$:/language/Date/Long/Day/3", "text": "Mittwoch" }, "$:/language/Date/Long/Day/4": { "title": "$:/language/Date/Long/Day/4", "text": "Donnerstag" }, "$:/language/Date/Long/Day/5": { "title": "$:/language/Date/Long/Day/5", "text": "Freitag" }, "$:/language/Date/Long/Day/6": { "title": "$:/language/Date/Long/Day/6", "text": "Samstag" }, "$:/language/Date/Long/Month/1": { "title": "$:/language/Date/Long/Month/1", "text": "Januar" }, "$:/language/Date/Long/Month/2": { "title": "$:/language/Date/Long/Month/2", "text": "Februar" }, "$:/language/Date/Long/Month/3": { "title": "$:/language/Date/Long/Month/3", "text": "März" }, "$:/language/Date/Long/Month/4": { "title": "$:/language/Date/Long/Month/4", "text": "April" }, "$:/language/Date/Long/Month/5": { "title": "$:/language/Date/Long/Month/5", "text": "Mai" }, "$:/language/Date/Long/Month/6": { "title": "$:/language/Date/Long/Month/6", "text": "Juni" }, "$:/language/Date/Long/Month/7": { "title": "$:/language/Date/Long/Month/7", "text": "Juli" }, "$:/language/Date/Long/Month/8": { "title": "$:/language/Date/Long/Month/8", "text": "August" }, "$:/language/Date/Long/Month/9": { "title": "$:/language/Date/Long/Month/9", "text": "September" }, "$:/language/Date/Long/Month/10": { "title": "$:/language/Date/Long/Month/10", "text": "Oktober" }, "$:/language/Date/Long/Month/11": { "title": "$:/language/Date/Long/Month/11", "text": "November" }, "$:/language/Date/Long/Month/12": { "title": "$:/language/Date/Long/Month/12", "text": "Dezember" }, "$:/language/Date/Period/am": { "title": "$:/language/Date/Period/am", "text": "am" }, "$:/language/Date/Period/pm": { "title": "$:/language/Date/Period/pm", "text": "pm" }, "$:/language/Date/Short/Day/0": { "title": "$:/language/Date/Short/Day/0", "text": "So" }, "$:/language/Date/Short/Day/1": { "title": "$:/language/Date/Short/Day/1", "text": "Mo" }, "$:/language/Date/Short/Day/2": { "title": "$:/language/Date/Short/Day/2", "text": "Di" }, "$:/language/Date/Short/Day/3": { "title": "$:/language/Date/Short/Day/3", "text": "Mi" }, "$:/language/Date/Short/Day/4": { "title": "$:/language/Date/Short/Day/4", "text": "Do" }, "$:/language/Date/Short/Day/5": { "title": "$:/language/Date/Short/Day/5", "text": "Fr" }, "$:/language/Date/Short/Day/6": { "title": "$:/language/Date/Short/Day/6", "text": "Sa" }, "$:/language/Date/Short/Month/1": { "title": "$:/language/Date/Short/Month/1", "text": "Jan" }, "$:/language/Date/Short/Month/2": { "title": "$:/language/Date/Short/Month/2", "text": "Feb" }, "$:/language/Date/Short/Month/3": { "title": "$:/language/Date/Short/Month/3", "text": "Mär" }, "$:/language/Date/Short/Month/4": { "title": "$:/language/Date/Short/Month/4", "text": "Apr" }, "$:/language/Date/Short/Month/5": { "title": "$:/language/Date/Short/Month/5", "text": "Mai" }, "$:/language/Date/Short/Month/6": { "title": "$:/language/Date/Short/Month/6", "text": "Jun" }, "$:/language/Date/Short/Month/7": { "title": "$:/language/Date/Short/Month/7", "text": "Jul" }, "$:/language/Date/Short/Month/8": { "title": "$:/language/Date/Short/Month/8", "text": "Aug" }, "$:/language/Date/Short/Month/9": { "title": "$:/language/Date/Short/Month/9", "text": "Sep" }, "$:/language/Date/Short/Month/10": { "title": "$:/language/Date/Short/Month/10", "text": "Okt" }, "$:/language/Date/Short/Month/11": { "title": "$:/language/Date/Short/Month/11", "text": "Nov" }, "$:/language/Date/Short/Month/12": { "title": "$:/language/Date/Short/Month/12", "text": "Dez" }, "$:/language/RelativeDate/Future/Days": { "title": "$:/language/RelativeDate/Future/Days", "text": "in <<period>> Tagen" }, "$:/language/RelativeDate/Future/Hours": { "title": "$:/language/RelativeDate/Future/Hours", "text": "in <<period>> Stunden" }, "$:/language/RelativeDate/Future/Minutes": { "title": "$:/language/RelativeDate/Future/Minutes", "text": "in <<period>> Minuten" }, "$:/language/RelativeDate/Future/Months": { "title": "$:/language/RelativeDate/Future/Months", "text": "in <<period>> Monaten" }, "$:/language/RelativeDate/Future/Second": { "title": "$:/language/RelativeDate/Future/Second", "text": "in einer Sekunde" }, "$:/language/RelativeDate/Future/Seconds": { "title": "$:/language/RelativeDate/Future/Seconds", "text": "in <<period>> Sekunden" }, "$:/language/RelativeDate/Future/Years": { "title": "$:/language/RelativeDate/Future/Years", "text": "in <<period>> Jahren" }, "$:/language/RelativeDate/Past/Days": { "title": "$:/language/RelativeDate/Past/Days", "text": "vor <<period>> Tagen" }, "$:/language/RelativeDate/Past/Hours": { "title": "$:/language/RelativeDate/Past/Hours", "text": "vor <<period>> Stunden" }, "$:/language/RelativeDate/Past/Minutes": { "title": "$:/language/RelativeDate/Past/Minutes", "text": "vor <<period>> Minuten" }, "$:/language/RelativeDate/Past/Months": { "title": "$:/language/RelativeDate/Past/Months", "text": "vor <<period>> Monaten" }, "$:/language/RelativeDate/Past/Second": { "title": "$:/language/RelativeDate/Past/Second", "text": "vor einer Sekunde" }, "$:/language/RelativeDate/Past/Seconds": { "title": "$:/language/RelativeDate/Past/Seconds", "text": "vor <<period>> Sekunden" }, "$:/language/RelativeDate/Past/Years": { "title": "$:/language/RelativeDate/Past/Years", "text": "vor <<period>> Jahren" }, "$:/language/Docs/ModuleTypes/animation": { "title": "$:/language/Docs/ModuleTypes/animation", "text": "Animationen, die vom RevealWidget verwendet werden. " }, "$:/language/Docs/ModuleTypes/command": { "title": "$:/language/Docs/ModuleTypes/command", "text": "Kommandozeilen-Parameter, die mit node.js ausgeführt werden können." }, "$:/language/Docs/ModuleTypes/config": { "title": "$:/language/Docs/ModuleTypes/config", "text": "Daten, die in `$tw.config` eingefügt werden." }, "$:/language/Docs/ModuleTypes/filteroperator": { "title": "$:/language/Docs/ModuleTypes/filteroperator", "text": "Individuelle Funktionen für den Filter-Operator." }, "$:/language/Docs/ModuleTypes/global": { "title": "$:/language/Docs/ModuleTypes/global", "text": "Globale Daten, die in `$tw` eingefügt werden." }, "$:/language/Docs/ModuleTypes/isfilteroperator": { "title": "$:/language/Docs/ModuleTypes/isfilteroperator", "text": "Operanden für den Filter-Operator: ''is''" }, "$:/language/Docs/ModuleTypes/macro": { "title": "$:/language/Docs/ModuleTypes/macro", "text": "Globale Makro-Definitionen in JavaScript." }, "$:/language/Docs/ModuleTypes/parser": { "title": "$:/language/Docs/ModuleTypes/parser", "text": "Parser für verschiedene Tiddler Typen." }, "$:/language/Docs/ModuleTypes/saver": { "title": "$:/language/Docs/ModuleTypes/saver", "text": "\"Savers\" stellen verschiedene Methoden zum Speichern mit dem Browser zur Verfügung." }, "$:/language/Docs/ModuleTypes/startup": { "title": "$:/language/Docs/ModuleTypes/startup", "text": "Funktionen zur Initialisierung." }, "$:/language/Docs/ModuleTypes/storyview": { "title": "$:/language/Docs/ModuleTypes/storyview", "text": "[[Story-View|Story]] ist für das Verhalten des \"ListWidgets\" zuständig, das die Tiddler \"Hauptanzeige\" verwaltet. Mit dem Toolbutton Story-Modus wird einer dieser Modi ausgewählt." }, "$:/language/Docs/ModuleTypes/tiddlerdeserializer": { "title": "$:/language/Docs/ModuleTypes/tiddlerdeserializer", "text": "Konvertiert verschiedene textbasierte Inhaltstypen in das Tiddler-Format." }, "$:/language/Docs/ModuleTypes/tiddlerfield": { "title": "$:/language/Docs/ModuleTypes/tiddlerfield", "text": "Definiert das Verhalten, der unterschiedlichen Tiddler-Felder." }, "$:/language/Docs/ModuleTypes/tiddlermethod": { "title": "$:/language/Docs/ModuleTypes/tiddlermethod", "text": "Methoden werden dem `$tw.Tiddler` Prototypen hinzugefügt." }, "$:/language/Docs/ModuleTypes/upgrader": { "title": "$:/language/Docs/ModuleTypes/upgrader", "text": "Führt spezifische Änderungen während des Upgrade- oder Import-prozesses durch." }, "$:/language/Docs/ModuleTypes/utils": { "title": "$:/language/Docs/ModuleTypes/utils", "text": "Methoden werden `$tw.utils` hinzugefügt." }, "$:/language/Docs/ModuleTypes/utils-node": { "title": "$:/language/Docs/ModuleTypes/utils-node", "text": "Erweitert `$tw.utils` mit Methoden aus node.js." }, "$:/language/Docs/ModuleTypes/widget": { "title": "$:/language/Docs/ModuleTypes/widget", "text": "Widgets verarbeiten das Rendern und Aktualisieren der Anzeige in der DOM." }, "$:/language/Docs/ModuleTypes/wikimethod": { "title": "$:/language/Docs/ModuleTypes/wikimethod", "text": "Methoden werden zu `$tw.Wiki` hinzugefügt." }, "$:/language/Docs/ModuleTypes/wikirule": { "title": "$:/language/Docs/ModuleTypes/wikirule", "text": "Enthält die individuellen Parser Regeln für den WikiText-Parser." }, "$:/language/Docs/PaletteColours/alert-background": { "title": "$:/language/Docs/PaletteColours/alert-background", "text": "Warnung Hintergrund" }, "$:/language/Docs/PaletteColours/alert-border": { "title": "$:/language/Docs/PaletteColours/alert-border", "text": "Warnung Rahmen" }, "$:/language/Docs/PaletteColours/alert-highlight": { "title": "$:/language/Docs/PaletteColours/alert-highlight", "text": "Warnung Hervorhebung" }, "$:/language/Docs/PaletteColours/alert-muted-foreground": { "title": "$:/language/Docs/PaletteColours/alert-muted-foreground", "text": "Warnung gedeckt Vordergrund" }, "$:/language/Docs/PaletteColours/background": { "title": "$:/language/Docs/PaletteColours/background", "text": "Hintergrund Global" }, "$:/language/Docs/PaletteColours/blockquote-bar": { "title": "$:/language/Docs/PaletteColours/blockquote-bar", "text": "Zitat Markierung" }, "$:/language/Docs/PaletteColours/button-background": { "title": "$:/language/Docs/PaletteColours/button-background", "text": "Standard-Button Hintergrund" }, "$:/language/Docs/PaletteColours/button-border": { "title": "$:/language/Docs/PaletteColours/button-border", "text": "Standard-Button Rahmen" }, "$:/language/Docs/PaletteColours/button-foreground": { "title": "$:/language/Docs/PaletteColours/button-foreground", "text": "Standard-Button Vordergrund" }, "$:/language/Docs/PaletteColours/dirty-indicator": { "title": "$:/language/Docs/PaletteColours/dirty-indicator", "text": "Speichern nötig - Indikator" }, "$:/language/Docs/PaletteColours/code-background": { "title": "$:/language/Docs/PaletteColours/code-background", "text": "Code Hintergrund" }, "$:/language/Docs/PaletteColours/code-border": { "title": "$:/language/Docs/PaletteColours/code-border", "text": "Code Rahmen" }, "$:/language/Docs/PaletteColours/code-foreground": { "title": "$:/language/Docs/PaletteColours/code-foreground", "text": "Code Vordergrund" }, "$:/language/Docs/PaletteColours/download-background": { "title": "$:/language/Docs/PaletteColours/download-background", "text": "Herunterladen-Button Hintergrund" }, "$:/language/Docs/PaletteColours/download-foreground": { "title": "$:/language/Docs/PaletteColours/download-foreground", "text": "Herunterladen-Button Vordergrund" }, "$:/language/Docs/PaletteColours/dragger-background": { "title": "$:/language/Docs/PaletteColours/dragger-background", "text": "Ziehen Hintergrund" }, "$:/language/Docs/PaletteColours/dragger-foreground": { "title": "$:/language/Docs/PaletteColours/dragger-foreground", "text": "Ziehen Vordergrund" }, "$:/language/Docs/PaletteColours/dropdown-background": { "title": "$:/language/Docs/PaletteColours/dropdown-background", "text": "Auswahldialog Hintergrund" }, "$:/language/Docs/PaletteColours/dropdown-border": { "title": "$:/language/Docs/PaletteColours/dropdown-border", "text": "Auswahldialog Rahmen" }, "$:/language/Docs/PaletteColours/dropdown-tab-background-selected": { "title": "$:/language/Docs/PaletteColours/dropdown-tab-background-selected", "text": "Auswahldialog ausgewählter Reiter Hintergrund" }, "$:/language/Docs/PaletteColours/dropdown-tab-background": { "title": "$:/language/Docs/PaletteColours/dropdown-tab-background", "text": "Auswahldialog Reiter Hintergrund" }, "$:/language/Docs/PaletteColours/dropzone-background": { "title": "$:/language/Docs/PaletteColours/dropzone-background", "text": "Import Zone Hintergrund" }, "$:/language/Docs/PaletteColours/external-link-background-hover": { "title": "$:/language/Docs/PaletteColours/external-link-background-hover", "text": "Externer Link Hintergrund (hover)" }, "$:/language/Docs/PaletteColours/external-link-background-visited": { "title": "$:/language/Docs/PaletteColours/external-link-background-visited", "text": "Externer Link besucht Hintergrund" }, "$:/language/Docs/PaletteColours/external-link-background": { "title": "$:/language/Docs/PaletteColours/external-link-background", "text": "Externer Link Hintergrund" }, "$:/language/Docs/PaletteColours/external-link-foreground-hover": { "title": "$:/language/Docs/PaletteColours/external-link-foreground-hover", "text": "Externer Link Vordergrund (hover)" }, "$:/language/Docs/PaletteColours/external-link-foreground-visited": { "title": "$:/language/Docs/PaletteColours/external-link-foreground-visited", "text": "Externer Link besucht Vordergrund" }, "$:/language/Docs/PaletteColours/external-link-foreground": { "title": "$:/language/Docs/PaletteColours/external-link-foreground", "text": "Externer Link Vordergrund" }, "$:/language/Docs/PaletteColours/foreground": { "title": "$:/language/Docs/PaletteColours/foreground", "text": "Vordergrund Global" }, "$:/language/Docs/PaletteColours/message-background": { "title": "$:/language/Docs/PaletteColours/message-background", "text": "Meldungs-Box Hintergrund" }, "$:/language/Docs/PaletteColours/message-border": { "title": "$:/language/Docs/PaletteColours/message-border", "text": "Meldungs-Box Rahmen" }, "$:/language/Docs/PaletteColours/message-foreground": { "title": "$:/language/Docs/PaletteColours/message-foreground", "text": "Meldungs-Box Vordergrund" }, "$:/language/Docs/PaletteColours/modal-backdrop": { "title": "$:/language/Docs/PaletteColours/modal-backdrop", "text": "Modaler Dialog abgedunkelt" }, "$:/language/Docs/PaletteColours/modal-background": { "title": "$:/language/Docs/PaletteColours/modal-background", "text": "Modaler Dialog Hintergrund" }, "$:/language/Docs/PaletteColours/modal-border": { "title": "$:/language/Docs/PaletteColours/modal-border", "text": "Modaler Dialog Rahmen" }, "$:/language/Docs/PaletteColours/modal-footer-background": { "title": "$:/language/Docs/PaletteColours/modal-footer-background", "text": "Modaler Dialog Fußzeile Hintergrund" }, "$:/language/Docs/PaletteColours/modal-footer-border": { "title": "$:/language/Docs/PaletteColours/modal-footer-border", "text": "Modaler Dialog Fußzeile Rahmen" }, "$:/language/Docs/PaletteColours/modal-header-border": { "title": "$:/language/Docs/PaletteColours/modal-header-border", "text": "Modaler Dialog Kopfzeile Rahmen" }, "$:/language/Docs/PaletteColours/muted-foreground": { "title": "$:/language/Docs/PaletteColours/muted-foreground", "text": "Global gedeckt Vordergrund" }, "$:/language/Docs/PaletteColours/notification-background": { "title": "$:/language/Docs/PaletteColours/notification-background", "text": "Mitteilung Hintergrund" }, "$:/language/Docs/PaletteColours/notification-border": { "title": "$:/language/Docs/PaletteColours/notification-border", "text": "Mitteilung Rahmen" }, "$:/language/Docs/PaletteColours/page-background": { "title": "$:/language/Docs/PaletteColours/page-background", "text": "Seite Hintergrund" }, "$:/language/Docs/PaletteColours/pre-background": { "title": "$:/language/Docs/PaletteColours/pre-background", "text": "Formatierter Code Hintergrund" }, "$:/language/Docs/PaletteColours/pre-border": { "title": "$:/language/Docs/PaletteColours/pre-border", "text": "Formatierter Code Rahmen" }, "$:/language/Docs/PaletteColours/primary": { "title": "$:/language/Docs/PaletteColours/primary", "text": "Global Primary" }, "$:/language/Docs/PaletteColours/sidebar-button-foreground": { "title": "$:/language/Docs/PaletteColours/sidebar-button-foreground", "text": "Seitenleiste Button Vordergrund" }, "$:/language/Docs/PaletteColours/sidebar-controls-foreground-hover": { "title": "$:/language/Docs/PaletteColours/sidebar-controls-foreground-hover", "text": "Seitenleiste Bedienelement Vordergrund (hover)" }, "$:/language/Docs/PaletteColours/sidebar-controls-foreground": { "title": "$:/language/Docs/PaletteColours/sidebar-controls-foreground", "text": "Seitenleiste Bedienelement Vordergrund" }, "$:/language/Docs/PaletteColours/sidebar-foreground-shadow": { "title": "$:/language/Docs/PaletteColours/sidebar-foreground-shadow", "text": "Seitenleiste Vordergrund Schatten" }, "$:/language/Docs/PaletteColours/sidebar-foreground": { "title": "$:/language/Docs/PaletteColours/sidebar-foreground", "text": "Seitenleiste Vordergrund" }, "$:/language/Docs/PaletteColours/sidebar-muted-foreground-hover": { "title": "$:/language/Docs/PaletteColours/sidebar-muted-foreground-hover", "text": "Seitenleiste gedeckt Vordergrund (hover)" }, "$:/language/Docs/PaletteColours/sidebar-muted-foreground": { "title": "$:/language/Docs/PaletteColours/sidebar-muted-foreground", "text": "Seitenleiste gedeckt Vordergrund" }, "$:/language/Docs/PaletteColours/sidebar-tab-background-selected": { "title": "$:/language/Docs/PaletteColours/sidebar-tab-background-selected", "text": "Seitenleiste Reiter" }, "$:/language/Docs/PaletteColours/sidebar-tab-background": { "title": "$:/language/Docs/PaletteColours/sidebar-tab-background", "text": "Seitenleiste Reiter Hintergrund" }, "$:/language/Docs/PaletteColours/sidebar-tab-border-selected": { "title": "$:/language/Docs/PaletteColours/sidebar-tab-border-selected", "text": "Seitenleiste Reiter Rahmen für selektierte Reiter" }, "$:/language/Docs/PaletteColours/sidebar-tab-border": { "title": "$:/language/Docs/PaletteColours/sidebar-tab-border", "text": "Seitenleiste Reiter Rahmen" }, "$:/language/Docs/PaletteColours/sidebar-tab-divider": { "title": "$:/language/Docs/PaletteColours/sidebar-tab-divider", "text": "Seitenleiste Reiter Trennzeichen" }, "$:/language/Docs/PaletteColours/sidebar-tab-foreground-selected": { "title": "$:/language/Docs/PaletteColours/sidebar-tab-foreground-selected", "text": "Seitenleiste Reiter Vordergrund für selectierte Reiter" }, "$:/language/Docs/PaletteColours/sidebar-tab-foreground": { "title": "$:/language/Docs/PaletteColours/sidebar-tab-foreground", "text": "Seitenleiste Reiter Vordergrund" }, "$:/language/Docs/PaletteColours/sidebar-tiddler-link-foreground-hover": { "title": "$:/language/Docs/PaletteColours/sidebar-tiddler-link-foreground-hover", "text": "Seitenleiste Tiddler Link Vordergrund (hover)" }, "$:/language/Docs/PaletteColours/sidebar-tiddler-link-foreground": { "title": "$:/language/Docs/PaletteColours/sidebar-tiddler-link-foreground", "text": "Seitenleiste Tiddler Link Vordergrund" }, "$:/language/Docs/PaletteColours/site-title-foreground": { "title": "$:/language/Docs/PaletteColours/site-title-foreground", "text": "Wiki Titel Vordergrund" }, "$:/language/Docs/PaletteColours/static-alert-foreground": { "title": "$:/language/Docs/PaletteColours/static-alert-foreground", "text": "Statische Warnung Vordergrund" }, "$:/language/Docs/PaletteColours/tab-background-selected": { "title": "$:/language/Docs/PaletteColours/tab-background-selected", "text": "Reiter Hintergrund für selektierte Reiter" }, "$:/language/Docs/PaletteColours/tab-background": { "title": "$:/language/Docs/PaletteColours/tab-background", "text": "Reiter Hintergrund" }, "$:/language/Docs/PaletteColours/tab-border-selected": { "title": "$:/language/Docs/PaletteColours/tab-border-selected", "text": "Reiter Rahmen für selektierte Reiter" }, "$:/language/Docs/PaletteColours/tab-border": { "title": "$:/language/Docs/PaletteColours/tab-border", "text": "Reiter Rahmen" }, "$:/language/Docs/PaletteColours/tab-divider": { "title": "$:/language/Docs/PaletteColours/tab-divider", "text": "Reiter Trennzeichen" }, "$:/language/Docs/PaletteColours/tab-foreground-selected": { "title": "$:/language/Docs/PaletteColours/tab-foreground-selected", "text": "Reiter Vordergrund für selektierte Reiter" }, "$:/language/Docs/PaletteColours/tab-foreground": { "title": "$:/language/Docs/PaletteColours/tab-foreground", "text": "Reiter Vordergrund" }, "$:/language/Docs/PaletteColours/table-border": { "title": "$:/language/Docs/PaletteColours/table-border", "text": "Tabelle Rahmen" }, "$:/language/Docs/PaletteColours/table-footer-background": { "title": "$:/language/Docs/PaletteColours/table-footer-background", "text": "Tabelle Fußzeile Hintergrund" }, "$:/language/Docs/PaletteColours/table-header-background": { "title": "$:/language/Docs/PaletteColours/table-header-background", "text": "Tabelle Kopfzeile Hintergrund" }, "$:/language/Docs/PaletteColours/tag-background": { "title": "$:/language/Docs/PaletteColours/tag-background", "text": "Tag Hintergrund" }, "$:/language/Docs/PaletteColours/tag-foreground": { "title": "$:/language/Docs/PaletteColours/tag-foreground", "text": "Tag Vordergrund" }, "$:/language/Docs/PaletteColours/tiddler-background": { "title": "$:/language/Docs/PaletteColours/tiddler-background", "text": "Tiddler Hintergrund" }, "$:/language/Docs/PaletteColours/tiddler-border": { "title": "$:/language/Docs/PaletteColours/tiddler-border", "text": "Tiddler Rahmen" }, "$:/language/Docs/PaletteColours/tiddler-controls-foreground-hover": { "title": "$:/language/Docs/PaletteColours/tiddler-controls-foreground-hover", "text": "Tiddler Bedienelement Vordergrund (hover)" }, "$:/language/Docs/PaletteColours/tiddler-controls-foreground-selected": { "title": "$:/language/Docs/PaletteColours/tiddler-controls-foreground-selected", "text": "Tiddler Bedienelement Vordergrund für selektierte Elemente" }, "$:/language/Docs/PaletteColours/tiddler-controls-foreground": { "title": "$:/language/Docs/PaletteColours/tiddler-controls-foreground", "text": "Tiddler Bedienelement Vordergrund" }, "$:/language/Docs/PaletteColours/tiddler-editor-background": { "title": "$:/language/Docs/PaletteColours/tiddler-editor-background", "text": "Tiddler Editor Hintergrund" }, "$:/language/Docs/PaletteColours/tiddler-editor-border-image": { "title": "$:/language/Docs/PaletteColours/tiddler-editor-border-image", "text": "Tiddler Editor Rahmen Bild" }, "$:/language/Docs/PaletteColours/tiddler-editor-border": { "title": "$:/language/Docs/PaletteColours/tiddler-editor-border", "text": "Tiddler Editor Rahmen" }, "$:/language/Docs/PaletteColours/tiddler-editor-fields-even": { "title": "$:/language/Docs/PaletteColours/tiddler-editor-fields-even", "text": "Tiddler Editor Hintergrund geradzahlige Felder in Tabelle" }, "$:/language/Docs/PaletteColours/tiddler-editor-fields-odd": { "title": "$:/language/Docs/PaletteColours/tiddler-editor-fields-odd", "text": "Tiddler Editor Hintergrund un-geradzahlige Felder in Tabelle" }, "$:/language/Docs/PaletteColours/tiddler-info-background": { "title": "$:/language/Docs/PaletteColours/tiddler-info-background", "text": "Tiddler Info Bereich Hintergrund" }, "$:/language/Docs/PaletteColours/tiddler-info-border": { "title": "$:/language/Docs/PaletteColours/tiddler-info-border", "text": "Tiddler Info Bereich Rahmen" }, "$:/language/Docs/PaletteColours/tiddler-info-tab-background": { "title": "$:/language/Docs/PaletteColours/tiddler-info-tab-background", "text": "Tiddler Info Bereich Reiter Hintergrund" }, "$:/language/Docs/PaletteColours/tiddler-link-background": { "title": "$:/language/Docs/PaletteColours/tiddler-link-background", "text": "Tiddler Link Hintergrund" }, "$:/language/Docs/PaletteColours/tiddler-link-foreground": { "title": "$:/language/Docs/PaletteColours/tiddler-link-foreground", "text": "Tiddler Link Vordergrund" }, "$:/language/Docs/PaletteColours/tiddler-subtitle-foreground": { "title": "$:/language/Docs/PaletteColours/tiddler-subtitle-foreground", "text": "Tiddler Untertitel Vordergrund" }, "$:/language/Docs/PaletteColours/tiddler-title-foreground": { "title": "$:/language/Docs/PaletteColours/tiddler-title-foreground", "text": "Tiddler Titel Vordergrund" }, "$:/language/Docs/PaletteColours/toolbar-new-button": { "title": "$:/language/Docs/PaletteColours/toolbar-new-button", "text": "Werkzeugleiste 'Neuer Tiddler' Button Vordergrund" }, "$:/language/Docs/PaletteColours/toolbar-options-button": { "title": "$:/language/Docs/PaletteColours/toolbar-options-button", "text": "Werkzeugleiste 'Optionen' Button Vordergrund" }, "$:/language/Docs/PaletteColours/toolbar-save-button": { "title": "$:/language/Docs/PaletteColours/toolbar-save-button", "text": "Werkzeugleiste 'Speichern' Button Vordergrund" }, "$:/language/Docs/PaletteColours/toolbar-info-button": { "title": "$:/language/Docs/PaletteColours/toolbar-info-button", "text": "Werkzeugleiste 'Info' Button Vordergrund" }, "$:/language/Docs/PaletteColours/toolbar-edit-button": { "title": "$:/language/Docs/PaletteColours/toolbar-edit-button", "text": "Werkzeugleiste 'Bearbeiten' Button Vordergrund" }, "$:/language/Docs/PaletteColours/toolbar-close-button": { "title": "$:/language/Docs/PaletteColours/toolbar-close-button", "text": "Werkzeugleiste 'Schließen' Button Vordergrund" }, "$:/language/Docs/PaletteColours/toolbar-delete-button": { "title": "$:/language/Docs/PaletteColours/toolbar-delete-button", "text": "Werkzeugleiste 'Löschen' Button Vordergrund" }, "$:/language/Docs/PaletteColours/toolbar-cancel-button": { "title": "$:/language/Docs/PaletteColours/toolbar-cancel-button", "text": "Werkzeugleiste 'Abbruch' Button Vordergrund" }, "$:/language/Docs/PaletteColours/toolbar-done-button": { "title": "$:/language/Docs/PaletteColours/toolbar-done-button", "text": "Werkzeugleiste 'Fertig' Button Vordergrund" }, "$:/language/Docs/PaletteColours/untagged-background": { "title": "$:/language/Docs/PaletteColours/untagged-background", "text": "(untagged) Pille Hintergrund" }, "$:/language/Docs/PaletteColours/very-muted-foreground": { "title": "$:/language/Docs/PaletteColours/very-muted-foreground", "text": "Stark abgedunkelter Vordergrund" }, "$:/language/EditTemplate/Body/External/Hint": { "title": "$:/language/EditTemplate/Body/External/Hint", "text": "Dies ist ein externer Tiddler, der nicht im TW file gespeichert ist. Sie können die \"Tags\" und \"Feld\" Texte ändern, jedoch nicht den Inhalt des Tiddlers!" }, "$:/language/EditTemplate/Body/Placeholder": { "title": "$:/language/EditTemplate/Body/Placeholder", "text": "Geben Sie den Text für diesen Tiddler ein." }, "$:/language/EditTemplate/Body/Preview/Type/Output": { "title": "$:/language/EditTemplate/Body/Preview/Type/Output", "text": "Anzeige" }, "$:/language/EditTemplate/Field/Remove/Caption": { "title": "$:/language/EditTemplate/Field/Remove/Caption", "text": "Lösche Feld" }, "$:/language/EditTemplate/Field/Remove/Hint": { "title": "$:/language/EditTemplate/Field/Remove/Hint", "text": "Lösche Feld" }, "$:/language/EditTemplate/Fields/Add/Button": { "title": "$:/language/EditTemplate/Fields/Add/Button", "text": "ok" }, "$:/language/EditTemplate/Fields/Add/Name/Placeholder": { "title": "$:/language/EditTemplate/Fields/Add/Name/Placeholder", "text": "Feld Name" }, "$:/language/EditTemplate/Fields/Add/Prompt": { "title": "$:/language/EditTemplate/Fields/Add/Prompt", "text": "Feld einfügen:" }, "$:/language/EditTemplate/Fields/Add/Value/Placeholder": { "title": "$:/language/EditTemplate/Fields/Add/Value/Placeholder", "text": "Feld Text / Wert" }, "$:/language/EditTemplate/Fields/Add/Dropdown/System": { "title": "$:/language/EditTemplate/Fields/Add/Dropdown/System", "text": "System Felder" }, "$:/language/EditTemplate/Fields/Add/Dropdown/User": { "title": "$:/language/EditTemplate/Fields/Add/Dropdown/User", "text": "Anwender Felder" }, "$:/language/EditTemplate/Shadow/Warning": { "title": "$:/language/EditTemplate/Shadow/Warning", "text": "Dies ist ein Schatten-Tiddler. Jede Änderung, die Sie machen, überschreibt die Standardversion des Plugins: <<pluginLink>>" }, "$:/language/EditTemplate/Shadow/OverriddenWarning": { "title": "$:/language/EditTemplate/Shadow/OverriddenWarning", "text": "Dies ist ein veränderter Tiddler. Um zur Standardversion zurückzukehren, löschen Sie diesen Tiddler. Plugin: <<pluginLink>>" }, "$:/language/EditTemplate/Tags/Add/Button": { "title": "$:/language/EditTemplate/Tags/Add/Button", "text": "ok" }, "$:/language/EditTemplate/Tags/Add/Placeholder": { "title": "$:/language/EditTemplate/Tags/Add/Placeholder", "text": "neuer Tag" }, "$:/language/EditTemplate/Tags/Dropdown/Caption": { "title": "$:/language/EditTemplate/Tags/Dropdown/Caption", "text": "Tag Liste" }, "$:/language/EditTemplate/Tags/Dropdown/Hint": { "title": "$:/language/EditTemplate/Tags/Dropdown/Hint", "text": "Tag Liste anzeigen" }, "$:/language/EditTemplate/Title/BadCharacterWarning": { "title": "$:/language/EditTemplate/Title/BadCharacterWarning", "text": "Warnung: Folgende Zeichen im Titel können zu Problemen führen: <<bad-chars>>" }, "$:/language/EditTemplate/Type/Dropdown/Caption": { "title": "$:/language/EditTemplate/Type/Dropdown/Caption", "text": "Tiddler Typ Liste" }, "$:/language/EditTemplate/Type/Dropdown/Hint": { "title": "$:/language/EditTemplate/Type/Dropdown/Hint", "text": "Anzeigen der Tiddler Typ Liste" }, "$:/language/EditTemplate/Type/Delete/Caption": { "title": "$:/language/EditTemplate/Type/Delete/Caption", "text": "Lösche Inhalts Typ" }, "$:/language/EditTemplate/Type/Delete/Hint": { "title": "$:/language/EditTemplate/Type/Delete/Hint", "text": "Lösche Inhalts Typ" }, "$:/language/EditTemplate/Type/Placeholder": { "title": "$:/language/EditTemplate/Type/Placeholder", "text": "Tiddler Format" }, "$:/language/EditTemplate/Type/Prompt": { "title": "$:/language/EditTemplate/Type/Prompt", "text": "Typ:" }, "$:/language/Exporters/StaticRiver": { "title": "$:/language/Exporters/StaticRiver", "text": "HTML - Statisch" }, "$:/language/Exporters/JsonFile": { "title": "$:/language/Exporters/JsonFile", "text": "JSON - Format" }, "$:/language/Exporters/CsvFile": { "title": "$:/language/Exporters/CsvFile", "text": "CSV - Format" }, "$:/language/Exporters/TidFile": { "title": "$:/language/Exporters/TidFile", "text": ".tid - Format" }, "$:/language/Docs/Fields/_canonical_uri": { "title": "$:/language/Docs/Fields/_canonical_uri", "text": "Die komplette URI eines externen Foto Tiddlers. URI = Uniform Resource Identifier, Identifikator für Ressourcen im Internet." }, "$:/language/Docs/Fields/bag": { "title": "$:/language/Docs/Fields/bag", "text": "Der Name eines ~TiddlyWeb \"bags\" von dem der Tiddler kam." }, "$:/language/Docs/Fields/caption": { "title": "$:/language/Docs/Fields/caption", "text": "Der Text, der auf \"Tab-Buttons\" angezeigt wird." }, "$:/language/Docs/Fields/color": { "title": "$:/language/Docs/Fields/color", "text": "Der CSS Farbwert, der mit einem Tiddler assoziiert wird. " }, "$:/language/Docs/Fields/component": { "title": "$:/language/Docs/Fields/component", "text": "Der Name einer Komponente, die für eine [[Alarm Anzeige|AlertMechanism]] verantwortlich ist." }, "$:/language/Docs/Fields/current-tiddler": { "title": "$:/language/Docs/Fields/current-tiddler", "text": "Wird verwendet um den \"obersten\" Tiddler in der [[Tiddler Historie|HistoryMechanism]] zwischen zu speichern. " }, "$:/language/Docs/Fields/created": { "title": "$:/language/Docs/Fields/created", "text": "Datum an dem der Tiddler erstellt wurde." }, "$:/language/Docs/Fields/creator": { "title": "$:/language/Docs/Fields/creator", "text": "Name des Erstellers dieses Tiddlers." }, "$:/language/Docs/Fields/dependents": { "title": "$:/language/Docs/Fields/dependents", "text": "Listet die Abhängigkeiten bei \"plugins\" auf." }, "$:/language/Docs/Fields/description": { "title": "$:/language/Docs/Fields/description", "text": "Die Beschreibung für ein \"plugin\" oder einen \"modalen\" Dialog." }, "$:/language/Docs/Fields/draft.of": { "title": "$:/language/Docs/Fields/draft.of", "text": "Entwurf von - enthält den Titel des Tiddlers, zu dem dieser Entwurf-Tiddler gehört." }, "$:/language/Docs/Fields/draft.title": { "title": "$:/language/Docs/Fields/draft.title", "text": "Entwurf Titel - enthält den neuen Titel, wenn der Entwurf-Tiddler gespeichert wird. " }, "$:/language/Docs/Fields/footer": { "title": "$:/language/Docs/Fields/footer", "text": "Der Fußnoten Text bei einem \"~Wizard-Dialog\"" }, "$:/language/Docs/Fields/hack-to-give-us-something-to-compare-against": { "title": "$:/language/Docs/Fields/hack-to-give-us-something-to-compare-against", "text": "Ein temporäres Feld, verwendet in [[$:/core/templates/static.content]]" }, "$:/language/Docs/Fields/icon": { "title": "$:/language/Docs/Fields/icon", "text": "Der Titel eines ~Icon-Tiddlers, der mit diesem Tiddler verbunden ist." }, "$:/language/Docs/Fields/library": { "title": "$:/language/Docs/Fields/library", "text": "Wenn dieses Feld=\"yes\" ist, dann soll der Tiddler als JavaScript Bibliothek gespeichert werden." }, "$:/language/Docs/Fields/list": { "title": "$:/language/Docs/Fields/list", "text": "Eine geordnete Tiddler Liste, die mit diesem Tiddler verbunden ist." }, "$:/language/Docs/Fields/list-before": { "title": "$:/language/Docs/Fields/list-before", "text": "Dient zum Einfügen von Tiddler Titeln in das \"list\" Feld. Wenn gesetzt, wird der neue Tiddler ''vor'' dem hier definierten Tiddler in die Liste eingefügt. Wenn vorhanden, aber leer, dann wird der neue Tiddler an den Anfang der Liste gesetzt." }, "$:/language/Docs/Fields/list-after": { "title": "$:/language/Docs/Fields/list-after", "text": "Dient zum Einfügen von Tiddler Titeln in das \"list\" Feld. Wenn gesetzt, wird der neue Tiddler ''nach'' dem hier definierten Tiddler in die Liste eingefügt. " }, "$:/language/Docs/Fields/modified": { "title": "$:/language/Docs/Fields/modified", "text": "Datum, an dem der Tiddler zuletzt verändert wurde." }, "$:/language/Docs/Fields/modifier": { "title": "$:/language/Docs/Fields/modifier", "text": "Name der Person, die den Tiddler zuletzt verändert hat." }, "$:/language/Docs/Fields/name": { "title": "$:/language/Docs/Fields/name", "text": "Ein Menschen lesbarer Name für einen \"plugin\" Tiddler. " }, "$:/language/Docs/Fields/plugin-priority": { "title": "$:/language/Docs/Fields/plugin-priority", "text": "Ein numerischer Wert, der die Priorität eines \"plugins\" festlegt." }, "$:/language/Docs/Fields/plugin-type": { "title": "$:/language/Docs/Fields/plugin-type", "text": "Der Typ eines \"plugins\"." }, "$:/language/Docs/Fields/revision": { "title": "$:/language/Docs/Fields/revision", "text": "Die Revisionsnummer eines Tiddlers. Wird von einem Server vergeben." }, "$:/language/Docs/Fields/released": { "title": "$:/language/Docs/Fields/released", "text": "Datum der ~TiddlyWiki Ausgabe." }, "$:/language/Docs/Fields/source": { "title": "$:/language/Docs/Fields/source", "text": "Eine Quelltext URL, verbunden mit diesem Tiddler." }, "$:/language/Docs/Fields/subtitle": { "title": "$:/language/Docs/Fields/subtitle", "text": "Der Untertitel für einen \"~Wizard-Dialog\"." }, "$:/language/Docs/Fields/tags": { "title": "$:/language/Docs/Fields/tags", "text": "Eine Liste von \"Tags\" für diesen Tiddler." }, "$:/language/Docs/Fields/text": { "title": "$:/language/Docs/Fields/text", "text": "Der Haupttext eines Tiddlers." }, "$:/language/Docs/Fields/title": { "title": "$:/language/Docs/Fields/title", "text": "Ein individueller einmaliger Name eines Tiddlers." }, "$:/language/Docs/Fields/type": { "title": "$:/language/Docs/Fields/type", "text": "Legt den Typ eines Tiddlers fest (aka MIME-type)." }, "$:/language/Docs/Fields/version": { "title": "$:/language/Docs/Fields/version", "text": "Versions-Information eines \"plugins\"." }, "$:/language/Filters/AllTiddlers": { "title": "$:/language/Filters/AllTiddlers", "text": "Alle Tiddler außer System-Tiddler" }, "$:/language/Filters/RecentSystemTiddlers": { "title": "$:/language/Filters/RecentSystemTiddlers", "text": "Kürzlich veränderte Tiddler, inklusive System-Tiddler" }, "$:/language/Filters/RecentTiddlers": { "title": "$:/language/Filters/RecentTiddlers", "text": "Kürzlich veränderte Tiddler" }, "$:/language/Filters/AllTags": { "title": "$:/language/Filters/AllTags", "text": "Alle Tags außer System-Tags" }, "$:/language/Filters/Missing": { "title": "$:/language/Filters/Missing", "text": "Fehlende Tiddler" }, "$:/language/Filters/Drafts": { "title": "$:/language/Filters/Drafts", "text": "Entwurf Tiddler" }, "$:/language/Filters/Orphans": { "title": "$:/language/Filters/Orphans", "text": "Waisen Tiddler" }, "$:/language/Filters/SystemTiddlers": { "title": "$:/language/Filters/SystemTiddlers", "text": "System-Tiddler" }, "$:/language/Filters/ShadowTiddlers": { "title": "$:/language/Filters/ShadowTiddlers", "text": "Schatten-Tiddler" }, "$:/language/Filters/OverriddenShadowTiddlers": { "title": "$:/language/Filters/OverriddenShadowTiddlers", "text": "Überschriebene Schatten-Tiddler" }, "$:/language/Filters/SystemTags": { "title": "$:/language/Filters/SystemTags", "text": "System-Tags" }, "$:/language/Filters/TypedTiddlers": { "title": "$:/language/Filters/TypedTiddlers", "text": "Nicht \"wiki-text\" Tiddler" }, "GettingStarted": { "title": "GettingStarted", "text": "\\define lingo-base() $:/language/ControlPanel/Basics/\nWillkommen bei ~TiddlyWiki, einem persönlichen nicht-linearen Web-Notizbuch.\n\nVor dem Start, vergewissern Sie sich, dass Sie dieses Wiki auch wirklich speichern können. Weitere Informationen finden Sie für:\n\n* Österreich: http://tiddlywiki.com/languages/de-AT\n* Deutschland: http://tiddlywiki.com/languages/de-DE\n* Allgemein (englisch): http://tiddlywiki.com \n\nErste Schritte:\n\n* Erstellen Sie einen neuen Tiddler mit dem \"Plus-Button\" in der rechten Navigationsleiste.\n* Einstellungen können im [[Kontrollpanel|$:/ControlPanel]] vorgenommen werden. Siehe: \"Zahnrad-Button\" \n** Das Anzeigen dieses Tiddlers können Sie verhindern, indem Sie die \"~DefaultTiddlers\" im ''Basis-Tab'' verändern.\n* Speichern wird mit dem \"Speichern-Button\" in der Navigationsleiste ausgelöst. \n* Österreich: [[Weitere Informationen zu WikiText|http://tiddlywiki.com/languages/de-AT/index.html#WikiText]]\n* Deutschland: [[Weitere Informationen zu WikiText|http://tiddlywiki.com/languages/de-DE/index.html#WikiText]]\n\nHinweis: Die österreichische und deutsche Version unterscheiden sich momentan nur in der Flagge, die bei der Standard Sprachauswahl angezeigt wird. In Zukunft können Beschriftungen der Benutzeroberfläche geringfügig von einander abweichen. zB: Jänner - Januar.\n\n!! Einrichten dieser ~TiddlyWiki\n\n<div class=\"tc-control-panel\">\n\n|<$link to=\"$:/SiteTitle\"><<lingo Title/Prompt>></$link> |<$edit-text tiddler=\"$:/SiteTitle\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/SiteSubtitle\"><<lingo Subtitle/Prompt>></$link> |<$edit-text tiddler=\"$:/SiteSubtitle\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/DefaultTiddlers\"><<lingo DefaultTiddlers/Prompt>></$link> |<<lingo DefaultTiddlers/TopHint>><br> <$edit-text tag=\"textarea\" tiddler=\"$:/DefaultTiddlers\"/><br>//<<lingo DefaultTiddlers/BottomHint>>// |\n</div>\n\nSee the [[control panel|$:/ControlPanel]] for more options.\n" }, "$:/language/Help/build": { "title": "$:/language/Help/build", "description": "Ausführen, von vorkonfigurierten Befehlen.", "text": "Dieser Befehl erstellt die vorkonfigurierten Ziele, der aktuellen Wiki Edition. Sind keine Ziele spezifiziert, dann werden all konfigurierten Ziele erstellt.\n\n```\n--build <target> [<target> ...]\n```\n\nZiele werden in der `tiddlywiki.info` Datei, im Wiki Verzeichnis konfiguriert.\n" }, "$:/language/Help/clearpassword": { "title": "$:/language/Help/clearpassword", "description": "Lösche das Passwort, das für die vorhergehenen Verschlüsselungen verwendet wurde.", "text": "Lösche das Passwort, das für die vorhergehenen Verschlüsselungen verwendet wurde.\n\n```\n--clearpassword\n```\n" }, "$:/language/Help/default": { "title": "$:/language/Help/default", "text": "\\define commandTitle()\n$:/language/Help/$(command)$\n\\end\n```\nVerwendung: tiddlywiki [<wikifolder>] [--<command> [<args>...]...]\n```\n\nVerfügbare Befehle:\n\n<ul>\n<$list filter=\"[commands[]sort[title]]\" variable=\"command\">\n<li><$link to=<<commandTitle>>><$macrocall $name=\"command\" $type=\"text/plain\" $output=\"text/plain\"/></$link>: <$transclude tiddler=<<commandTitle>> field=\"description\"/></li>\n</$list>\n</ul>\n\nDetailierte Informationen zu den Befehlen:\n\n```\ntiddlywiki --help <command>\n```\n" }, "$:/language/Help/editions": { "title": "$:/language/Help/editions", "description": "Listet alle verfügbaren TiddlyWiki Editionen auf", "text": "Listet alle verfügbaren TiddlyWiki Editionen auf.\n\n```\n--editions\n```\n\nSie können ein neues Wiki mit dem `--init` Kommando erstellen. Dabei wird eine der angezeigten Editionen \"geklont\".\n" }, "$:/language/Help/help": { "title": "$:/language/Help/help", "description": "Anzeige der Hilfe für die TiddlyWiki Befehle.", "text": "Anzeige der Hilfe für die TiddlyWiki Befehle.\n\nBeispiel:\n\n```\n--help [<command>]\n```\n\nWird der Parameter <command> nicht angegeben, werden alle Befehle aufgelistet.\n" }, "$:/language/Help/init": { "title": "$:/language/Help/init", "description": "Initialisiere eine neues Wiki Verzeichnis.", "text": "Initialisiere eine neues [[Wiki Verzeichnis|WikiFolders]] mit der Kopie einer Edition.\n\n```\n--init <edition> [<edition> ...]\n```\n\nBeispiel:\n\n```\ntiddlywiki ./MyWikiFolder --init empty\n```\n\nAnmerkung:\n\n* Das Wiki Verzeichnis wird angelegt, wenn es nicht existiert.\n* Der <edition> Parameter ist standardmäßig: ''empty''.\n* Der --init Befehl bricht ab, wenn das angegebene Verzeichnis nicht leer ist.\n* Der --init Befehl löscht alle `includeWikis` Definitionen aus der neuen `tiddlywiki.info` Datei\n* Wenn mehrere Editionen importiert werden, wird die zuletzt importierte `tidlywiki.info` Datei aktiv sein. Alle anderen weden überschrieben.\n\n* `--editions` listet alle verfügbaren Editionen auf.\n" }, "$:/language/Help/load": { "title": "$:/language/Help/load", "description": "Lade Tiddler von einer Datei.", "text": "Lade Tiddler aus einer TiddlyWiki 2.x.x `.html`, `.tiddler`, .`tid`, `.json` oder anderen Datei.\n\n```\n--load <filepath>\n```\n\nUm Daten aus einer verschlüsselten TiddlyWiki Datei zu laden, muss zuerst mit dem \"password\" Parameter ein Passwort definiert werden. \n\nBeispiel:\n\n```\ntiddlywiki ./MyWiki --password pa55w0rd --load my_encrypted_wiki.html\n```\n\nHinweis: TiddlyWiki wird nur neuere Versionen eines bestehenden Plugins laden!\n" }, "$:/language/Help/makelibrary": { "title": "$:/language/Help/makelibrary", "description": "Erstellt die \"Upgrade Bibliothek\", die vom upgrade Prozess benötigt wird", "text": "Erstellt den tiddler: `$:/UpgradeLibrary`, der vom upgrade Prozess benötigt wird.\n\nDie \"Upgrade Bibliothek\" ist ein \"normales\" Plugin, vom Typ: `library`. Es enthält eine Kopie jedes Plugins, Themas und Sprachpacketes, das im TiddlyWiki Archiv enthalten ist.\n\nDieser Befehl ist ein \"interner\" Befehl! Er ist nur relevant für Benutzer, die einen spezifischen \"Upgrade Prezess\" erstellen müssen. zB: Umwandeln von einem Tiddler in mehrere Tiddler, um Inkompatibilitäten zu vermeiden.\n\n```\n--makelibrary <title>\n```\n\nDas \"title\" Argument ist standardmäßig: `$:/UpgradeLibrary`.\n" }, "$:/language/Help/notfound": { "title": "$:/language/Help/notfound", "text": "Keine Hilfe zu diesem Thema gefunden!" }, "$:/language/Help/output": { "title": "$:/language/Help/output", "description": "Setzt das Basis Ausgabeverzeichnis für die folgenden Befehle.", "text": "Setzt das Basis Ausgabeverzeichnis für die folgenden Befehle. Das Standard Verzeichnis heißt: `output` und ist ein Unterverzeichnis des `edition` Verzeichnisses.\n\n```\n--output <pathname>\n```\n\nIst das spezifizierte Verzeichnis \"relativ\", dann wird es relativ zum bestehenden Arbeitsverzeichnis angelegt.\nZum Beispiel: `--output .` setzt das Ausgabeverzeichnis auf das aktuelle Verzeichnis.\n" }, "$:/language/Help/password": { "title": "$:/language/Help/password", "description": "Setzen eines Passwortes für Verschlüsselungsoperationen.", "text": "Setzen eines Passwortes für Verschlüsselungsoperationen\n\n```\n--password <password>\n```\n\nHinweis: Diese Option kann nicht verwendet werden, um ein \"Server Passwort\" festzulegen! Informationen zum Server Passwort siehe \"--server\" Kommando.\n" }, "$:/language/Help/rendertiddler": { "title": "$:/language/Help/rendertiddler", "description": "Ausgabe eines individuellen Tiddlers, in einem spezifizierten Format.", "text": "Ausgabe eines individuellen Tiddlers, in einem spezifizierten Format (standard: `text/html`) und Dateinamen.\n\nOptional kann ein Template tiddler angegeben werden. Die \"currentTiddler\" Variable wird auf den Tiddler gesetzt, der zu rendern ist.\n\n```\n--rendertiddler <title> <filename> [<type>] [<template>]\n```\n\nStandardmäßig ist das `output` Verzeichnis ein Unterverzeichnis im `edition` Verzeichnis. Der `--output` Befehl kann verwendet werden, um ein anderes Verzeichnis auszuwählen.\n\nNicht vorhandene Verzeichnisse werden automatisch erstellt.\n" }, "$:/language/Help/rendertiddlers": { "title": "$:/language/Help/rendertiddlers", "description": "Gefilterte Ausgabe von Tiddlern, in einem spezifizierten Format.", "text": "Gefilterte Ausgabe mehrerer Tiddler, in ein angegebenes Dateiformat (standard: `text/html`) mit spezifischer Erweiterung (Standard: `.html`).\n\n```\n--rendertiddlers <filter> <template> <pathname> [<type>] [<extension>] [\"noclean\"]\n```\n\nBeispiel:\n\n```\n--rendertiddlers [!is[system]] $:/core/templates/static.tiddler.html ./static text/plain\n```\n\nStandardmäßig ist das `output` Verzeichnis ein Unterverzeichnis im `edition` Verzeichnis. Der `--output` Befehl kann verwendet werden, um ein anderes Verzeichnis auszuwählen.\n\nNicht vorhandene Verzeichnisse werden automatisch erstellt und enthaltene Dateien werden gelöscht. Mit dem \"noclean\" Parameter, kann das löschen vorhandener Dateien unterdrückt werden.\n" }, "$:/language/Help/savetiddler": { "title": "$:/language/Help/savetiddler", "description": "Speichert einen Tiddler als File.", "text": "Speichert einen individuellen Tiddler im Text- oder Binärformat mit dem angegebenen Dateinamen.\n\n```\n--savetiddler <title> <filename>\n```\n\nStandardmäßig ist das `output` Verzeichnis ein Unterverzeichnis im `edition` Verzeichnis. Der `--output` Befehl kann verwendet werden, um ein anderes Verzeichnis auszuwählen.\n\nNicht vorhandene Verzeichnisse werden automatisch erstellt.\n" }, "$:/language/Help/savetiddlers": { "title": "$:/language/Help/savetiddlers", "description": "Speichert eine Gruppe von Tiddler in ein Verzeichnis", "text": "Speichert eine Gruppe von Tiddler im Text- oder Binärformat in ein angegebenes Verzeichnis.\n\n```\n--savetiddlers <filter> <pathname> [\"noclean\"]\n```\n\nStandardmäßig ist das `output` Verzeichnis ein Unterverzeichnis im `edition` Verzeichnis. Der `--output` Befehl kann verwendet werden, um ein anderes Verzeichnis auszuwählen.\n\nWichtig: Alle Dateien im Ausgabeverzeichnis werden automatisch gelöscht, wenn dieser Befehl verwendet wird. Um dies zu verhindern kann der ''noclean'' Parameter verwendet werden.\n\nNicht vorhandene Verzeichnisse im Pfadnamen werden automatisch erstellt.\n" }, "$:/language/Help/server": { "title": "$:/language/Help/server", "description": "Stellt einen HTTP server für TiddlyWiki zur Verfügung.", "text": "TiddlyWiki bringt einen sehr einfachen Web-Server mit. Dieser ist zwar kompatibel mit dem TiddlyWeb Protokoll, ist jedoch nicht ausgereift genug, um im produktiven Einsatz im Netz eingesetzt zu werden. \n\nDer Server kann spezifische Tiddler im angegebenen Format anzeigen (rendern). Zudem können einzelne, oder mehrere Tiddler im JSON Format übertragen werden. Die unterstützten HTTP Funktionen sind: `GET`, `PUT` und `DELETE`\n\n```\n--server <port> <roottiddler> <rendertype> <servetype> <username> <password> <host>\n```\n\nDie Parameter sind: \n\n* ''port'' - Port Nummer mit der kommuniziert werden soll (Standard: \"8080\").\n* ''roottiddler'' - Der Tiddler, der als ~Basis-Tiddler verwendet werden soll ( Standard: \"$:/core/save/all\").\n* ''rendertype'' - MIME-Type, zu dem der ~Basis-Tiddler \"gerendert\" werden soll ( Standard: \"text/plain\").\n* ''servetype'' - MIME-Type, mit dem der Basis-Tiddler ausgeliefert werden soll ( Standard: \"text/html\").\n* ''username'' - Benutzer Name, mit dem veränderte Tiddler signiert werden.\n* ''password'' - Passwort mit dem eine sehr \"simple\" Zugangsbeschränkung aufgebaut werden kann.\n* ''host'' - ~Host-Name von dem ausgeliefert werden soll. Host ist optional ( Standard: \"127.0.0.1\" oder auch \"localhost\").\n* ''pathprefix'' - Optionales prefix für Pfade.\n\nWenn beim Serverstart ein Passwort angegeben wird, dann wird der Benutzer aufgefordert den Benutzernamen und das Passwort einzugeben, bevor ein Wiki angezeigt wird. ACHTUNG: Das Passwort wird im Klartext übertragen. Diese Vorgehensweise ist nicht für den Einsatz im Netz geeignet.\n\nBeispiel:\n\n```\n--server 8080 $:/core/save/all text/plain text/html MeinBenutzerName passw0rt\n```\n\nDer Name und das Passwort können als \"leere\" Zeichenketten definiert werden, wenn ein \"hostname\" oder \"pathprefix\" nötig ist, jedoch kein Passwort verwendet werden soll.\n\n```\n--server 8080 $:/core/save/all text/plain text/html \"\" \"\" 192.168.0.245\n```\n\nEs ist möglich mehrere TiddlyWiki Server gleichzeitig zu starten. Jeder Server muss jedoch mit einem eigenen Port gestartet werden.\n" }, "$:/language/Help/setfield": { "title": "$:/language/Help/setfield", "description": "Experimentell - Setzt ein Tiddler \"field\" auf einen bestimmten Wert", "text": "//Wichtig! Dieser Befehl is experimentell und kann während der Betaphase geändert oder ersetzt werden!//\n\nSetzt ein spezifiziertes Feld, für eine Gruppe von Tiddlern. Ein Template wird \"wikifiziert\" und das Ergebnis in das Feld geschrieben. Die `currentTiddler` Variable wird auf den jeweiligen Tiddler gesetzt. \n\n```\n--setfield <filter> <fieldname> <templatetitle> <rendertype>\n```\n\nThe parameters are:\n\n* ''filter'' - Filter, der die zu modifizierenden Tiddler auswählt.\n* ''fieldname'' - Das zu verändernde Feld (Standardwert: \"text\").\n* ''templatetitle'' - Der zu wikifizierende Vorlagen Tiddler, dessen Ergebnis in das Feld geschrieben wird. Wenn Leer, dann wird das Feld gelöscht.\n* ''rendertype'' - Der Text Typ für den \"rendering\" Vorgang (Standardwert: \"text/plain\"; \"text/html\" kann verwendet werden, um \"HTML tags\" zu erzeugen).\n" }, "$:/language/Help/unpackplugin": { "title": "$:/language/Help/unpackplugin", "description": "Extrahiere Tiddler aus einem Plugin", "text": "Extrahiert alle Tiddler aus einem plugin und schreibt diese als einzelne Tiddler Dateien:\n\n```\n--unpackplugin <title>\n```\n" }, "$:/language/Help/verbose": { "title": "$:/language/Help/verbose", "description": "Aktiviert die erweiterte Fehlerausgabe.", "text": "Aktiviert die erweiterte Fehlerausgabe. Nützlich um Fehler zu finden.\n\n```\n--verbose\n```\n" }, "$:/language/Help/version": { "title": "$:/language/Help/version", "description": "Gibt die Versionsnummer von TiddlyWiki aus.", "text": "Gibt die Versionsnummer von TiddlyWiki aus.\n\n```\n--version\n```\n" }, "$:/language/Import/Imported/Hint": { "title": "$:/language/Import/Imported/Hint", "text": " Folgende Tiddler wurden importiert: " }, "$:/language/Import/Listing/Cancel/Caption": { "title": "$:/language/Import/Listing/Cancel/Caption", "text": "Abbrechen" }, "$:/language/Import/Listing/Hint": { "title": "$:/language/Import/Listing/Hint", "text": "Diese Tiddler können importiert werden: " }, "$:/language/Import/Listing/Import/Caption": { "title": "$:/language/Import/Listing/Import/Caption", "text": "Importieren" }, "$:/language/Import/Listing/Select/Caption": { "title": "$:/language/Import/Listing/Select/Caption", "text": "Auswahl" }, "$:/language/Import/Listing/Status/Caption": { "title": "$:/language/Import/Listing/Status/Caption", "text": "Status" }, "$:/language/Import/Listing/Title/Caption": { "title": "$:/language/Import/Listing/Title/Caption", "text": "Titel" }, "$:/language/Import/Upgrader/Plugins/Suppressed/Incompatible": { "title": "$:/language/Import/Upgrader/Plugins/Suppressed/Incompatible", "text": "Unterdrückte, inkompatible oder veraltete \"plugins\"" }, "$:/language/Import/Upgrader/Plugins/Suppressed/Version": { "title": "$:/language/Import/Upgrader/Plugins/Suppressed/Version", "text": "Einige \"plugins\" weden unterdrückt! Importierte plugins: <<incoming>> sind älter als existierende: <<existing>>." }, "$:/language/Import/Upgrader/Plugins/Upgraded": { "title": "$:/language/Import/Upgrader/Plugins/Upgraded", "text": " Aktualisieren der plugins von: <<incoming>> nach: <<upgraded>>" }, "$:/language/Import/Upgrader/State/Suppressed": { "title": "$:/language/Import/Upgrader/State/Suppressed", "text": "Unterdrückte temporäre Status Tiddler" }, "$:/language/Import/Upgrader/System/Suppressed": { "title": "$:/language/Import/Upgrader/System/Suppressed", "text": "Unterdrückte \"System Tiddler\"" }, "$:/language/Import/Upgrader/ThemeTweaks/Created": { "title": "$:/language/Import/Upgrader/ThemeTweaks/Created", "text": "Migrieren der \"theme tweaks\" von: <$text text=<<from>>/>" }, "$:/language/AboveStory/ClassicPlugin/Warning": { "title": "$:/language/AboveStory/ClassicPlugin/Warning", "text": "Es scheint, Sie möchten ein Plugin verwenden, dass für [[TiddlyWiki Classic|http://tiddlywiki.com/#TiddlyWikiClassic]] entwickelt wurde. Diese Plugins können jedoch mit ~TiddlyWiki Version 5 nicht verwendet werden. ~TiddlyWiki Classic plugin erkannt:" }, "$:/language/BinaryWarning/Prompt": { "title": "$:/language/BinaryWarning/Prompt", "text": "Dieser Tiddler enthält binäre Daten." }, "$:/language/ClassicWarning/Hint": { "title": "$:/language/ClassicWarning/Hint", "text": "Dieser Tiddler wurde im TiddlyWiki Classic Format erstellt. Dieses Format ist nur teilweise kompatibel mit TiddlyWiki Version 5. Mehr Info finden Sie unter: http://tiddlywiki.com/static/Upgrading.html" }, "$:/language/ClassicWarning/Upgrade/Caption": { "title": "$:/language/ClassicWarning/Upgrade/Caption", "text": "upgrade" }, "$:/language/CloseAll/Button": { "title": "$:/language/CloseAll/Button", "text": "alle schließen" }, "$:/language/ColourPicker/Recent": { "title": "$:/language/ColourPicker/Recent", "text": "Kürzlich:" }, "$:/language/ConfirmCancelTiddler": { "title": "$:/language/ConfirmCancelTiddler", "text": "Wollen Sie die Änderungen im Tiddler: \"<$text text=<<title>>/>\" verwerfen?" }, "$:/language/ConfirmDeleteTiddler": { "title": "$:/language/ConfirmDeleteTiddler", "text": "Wollen Sie den Tiddler: \"<$text text=<<title>>/>\" löschen?" }, "$:/language/ConfirmOverwriteTiddler": { "title": "$:/language/ConfirmOverwriteTiddler", "text": "Tiddler: \"<$text text=<<title>>/>\" existiert! OK überschreibt den tiddler!" }, "$:/language/ConfirmEditShadowTiddler": { "title": "$:/language/ConfirmEditShadowTiddler", "text": "Sie sind dabei, einen Schatten-Tiddler zu verändern. Zukünftige, automatische Anpassungen werden dadurch unterdrückt. Sie können Ihre Änderungen rückgängig machen, indem Sie diesen Tiddler wieder löschen. Wollen Sie den Tiddler: \"<$text text=<<title>>/>\" ändern?" }, "$:/language/Count": { "title": "$:/language/Count", "text": "Anzahl" }, "$:/language/DefaultNewTiddlerTitle": { "title": "$:/language/DefaultNewTiddlerTitle", "text": "Neuer Tiddler" }, "$:/language/DropMessage": { "title": "$:/language/DropMessage", "text": "Hierher ziehen (oder Escape um abzubrechen)" }, "$:/language/Encryption/Cancel": { "title": "$:/language/Encryption/Cancel", "text": "Abbrechen" }, "$:/language/Encryption/ConfirmClearPassword": { "title": "$:/language/Encryption/ConfirmClearPassword", "text": "Wollen Sie das Passwort löschen? Damit wird die Verschlüsselung beim nächsten Speichervorgang abgeschalten!" }, "$:/language/Encryption/PromptSetPassword": { "title": "$:/language/Encryption/PromptSetPassword", "text": "Der TiddlyWiki Inhalt wird mit dem nächsten Speichern verschlüsselt!" }, "$:/language/Encryption/Username": { "title": "$:/language/Encryption/Username", "text": "Benutzername" }, "$:/language/Encryption/Password": { "title": "$:/language/Encryption/Password", "text": "Passwort" }, "$:/language/Encryption/RepeatPassword": { "title": "$:/language/Encryption/RepeatPassword", "text": "Passwort wiederholen" }, "$:/language/Encryption/PasswordNoMatch": { "title": "$:/language/Encryption/PasswordNoMatch", "text": "Passwörter stimmen nicht überein" }, "$:/language/Encryption/SetPassword": { "title": "$:/language/Encryption/SetPassword", "text": "Passwort setzen" }, "$:/language/Error/Caption": { "title": "$:/language/Error/Caption", "text": "Fehler" }, "$:/language/Error/Filter": { "title": "$:/language/Error/Filter", "text": "Filter Fehler" }, "$:/language/Error/FilterSyntax": { "title": "$:/language/Error/FilterSyntax", "text": "Syntax Fehler im Filter-Ausdruck" }, "$:/language/Error/IsFilterOperator": { "title": "$:/language/Error/IsFilterOperator", "text": "Filter Fehler: Unbekannter Operand für den 'is' Filter Operator" }, "$:/language/Error/LoadingPluginLibrary": { "title": "$:/language/Error/LoadingPluginLibrary", "text": "Fehler beim Laden der \"plugin library\"" }, "$:/language/Error/RecursiveTransclusion": { "title": "$:/language/Error/RecursiveTransclusion", "text": "Recursive Transclusion: Fehler im \"transclude widget\"" }, "$:/language/Error/RetrievingSkinny": { "title": "$:/language/Error/RetrievingSkinny", "text": "Fehler beim Empfangen einer \"skinny\" Tiddler Liste" }, "$:/language/Error/SavingToTWEdit": { "title": "$:/language/Error/SavingToTWEdit", "text": "Fehler beim Speichern mit \"TWEdit\"" }, "$:/language/Error/WhileSaving": { "title": "$:/language/Error/WhileSaving", "text": "Fehler beim Speichern" }, "$:/language/Error/XMLHttpRequest": { "title": "$:/language/Error/XMLHttpRequest", "text": "XMLHttpRequest Fehler-Code" }, "$:/language/InternalJavaScriptError/Title": { "title": "$:/language/InternalJavaScriptError/Title", "text": "Interner JavaScript Fehler" }, "$:/language/InternalJavaScriptError/Hint": { "title": "$:/language/InternalJavaScriptError/Hint", "text": "Es tut uns leid, aber bitte starten Sie Ihr TiddlyWiki neu, indem sie die Seite im Browser neu laden." }, "$:/language/InvalidFieldName": { "title": "$:/language/InvalidFieldName", "text": "Das Feld: \"<$text text=<<fieldName>>/>\" enthält illegale Zeichen. Felder müssen klein geschrieben werden. Erlaubte Sonderzeichen sind: Zahlen, Unterstrich (`_`), Minus (`-`) und Punkt (`.`)." }, "$:/language/LazyLoadingWarning": { "title": "$:/language/LazyLoadingWarning", "text": "<p>Lade externe Datei von ''<$text text={{!!_canonical_uri}}/>''</p><p>Wenn diese Meldung nicht automatisch gelöscht wird, dann verwenden Sie wahrscheinlich einen Browser der diese Funktion nicht unterstützt. Siehe http://tiddlywiki.com/#ExternalText</p>" }, "$:/language/LoginToTiddlySpace": { "title": "$:/language/LoginToTiddlySpace", "text": "Login bei TiddlySpace" }, "$:/language/MissingTiddler/Hint": { "title": "$:/language/MissingTiddler/Hint", "text": "Fehlender Tiddler \"<$text text=<<currentTiddler>>/>\" - klicken Sie {{$:/core/images/edit-button}} um ihn zu erzeugen." }, "$:/language/No": { "title": "$:/language/No", "text": "Nein" }, "$:/language/OfficialPluginLibrary": { "title": "$:/language/OfficialPluginLibrary", "text": "Offizielles ~TiddlyWiki Plugin-Verzeichnis" }, "$:/language/OfficialPluginLibrary/Hint": { "title": "$:/language/OfficialPluginLibrary/Hint", "text": "Offizielles ~TiddlyWiki Plugin-Verzeichnis auf tiddlywiki.com. Plugin, Themes und Sprach Dateien werden vom \"core team\" gewartet." }, "$:/language/PluginReloadWarning": { "title": "$:/language/PluginReloadWarning", "text": "Das Wiki muss gespeichert {{$:/core/ui/Buttons/save-wiki}} und neu gladen {{$:/core/ui/Buttons/refresh}} werden, damit die Plugins ausgeführt werden." }, "$:/language/RecentChanges/DateFormat": { "title": "$:/language/RecentChanges/DateFormat", "text": "YYYY MMM DD" }, "$:/language/SystemTiddler/Tooltip": { "title": "$:/language/SystemTiddler/Tooltip", "text": "Das ist ein System-Tiddler" }, "$:/language/TagManager/Colour/Heading": { "title": "$:/language/TagManager/Colour/Heading", "text": "Farbe" }, "$:/language/TagManager/Count/Heading": { "title": "$:/language/TagManager/Count/Heading", "text": "Anzahl" }, "$:/language/TagManager/Icon/Heading": { "title": "$:/language/TagManager/Icon/Heading", "text": "Symbol" }, "$:/language/TagManager/Info/Heading": { "title": "$:/language/TagManager/Info/Heading", "text": "Info" }, "$:/language/TagManager/Tag/Heading": { "title": "$:/language/TagManager/Tag/Heading", "text": "Tag" }, "$:/language/Tiddler/DateFormat": { "title": "$:/language/Tiddler/DateFormat", "text": "DDth MMM YYYY um 0hh:0mm" }, "$:/language/UnsavedChangesWarning": { "title": "$:/language/UnsavedChangesWarning", "text": "TiddlyWiki wurde geändert, aber noch nicht gespeichert!" }, "$:/language/Yes": { "title": "$:/language/Yes", "text": "Ja" }, "$:/language/Modals/Download": { "title": "$:/language/Modals/Download", "type": "text/vnd.tiddlywiki", "subtitle": "Änderungen Speichern", "footer": "<$button message=\"tm-close-tiddler\">Schließen</$button>", "help": "http://tiddlywiki.com/static/DownloadingChanges.html", "text": "Ihr Browser unterstützt nur manuelles Speichern. \n\nUm das geänderte Wiki zu speichern, machen Sie einen \"rechts klick\" auf den folgenden Link. Wählen Sie \"Datei herunterladen\" oder \"Datei speichern\" und wählen Sie Name und Verzeichnis.\n\n//Sie können den Vorgang etwas beschleunigen, indem Sie die \"Control-Taste\" (Windows) oder die \"Options/Alt-Taste\" (Max OS X) drücken. Es wird kein \"Speichern Dialog\" erscheinen. Jedoch wird bei einigen Browsern die Datei einen zufälligen Namen bekommen. Sie müssen die Datei eventuell umbenennen, um sie öffnen zu können.//\n\nBei \"Smartphones\", die das Speichern von Dateien nicht erlauben, können Sie ein Lesezeichen erstellen, dass mit Ihrem PC synchronisiert wird. Dort können Sie die Dateien dann wie gewohnt speichern.\n" }, "$:/language/Modals/SaveInstructions": { "title": "$:/language/Modals/SaveInstructions", "type": "text/vnd.tiddlywiki", "subtitle": "Aktuellen Stand speichern", "footer": "<$button message=\"tm-close-tiddler\">Schließen</$button>", "help": "http://tiddlywiki.com/static/SavingChanges.html", "text": "Ihre Änderungen sollen als ~TiddlyWiki HTML Datei gespeichert werden. \n\n!!! Desktop Browser\n\n# Verwenden Sie ''Speichern unter'' aus dem ''Datei'' Menü.\n# Wählen Sie den Dateinamen und das Verzeichnis. \n\n#* Bei einigen Browsern müssen Sie das Format explizit angeben. Zb: ''Webseite, nur HTML'' oder ähnliches.\n# Den Browser-Tab schließen.\n\n!!! Smartphone Browser\n\n# Erstellen Sie ein \"Lesezeichen\"\n#* Wenn Sie \"iCloud\" oder \"Google Sync\" verwenden, dann werden Ihre Daten automatisch mit dem Desktop PC synchronisiert. Dort können Sie wie oben beschrieben fortfahren. \n# Den Browser-Tab schließen.\n\n//Wenn Sie das Lesezeichen mit \"Mobile Safari\" öffnen, dann wird diese Meldung erneut angezeigt. Klicken Sie ''Schließen'' um fort zu fahren.//\n" }, "$:/config/NewJournal/Title": { "title": "$:/config/NewJournal/Title", "text": "YYYY MMM 0DD" }, "$:/config/NewJournal/Tags": { "title": "$:/config/NewJournal/Tags", "text": "Journal" }, "$:/language/Notifications/Save/Done": { "title": "$:/language/Notifications/Save/Done", "text": "Wiki gespeichert!" }, "$:/language/Notifications/Save/Starting": { "title": "$:/language/Notifications/Save/Starting", "text": "Wiki zum Speichern vorbereiten!" }, "$:/language/Search/DefaultResults/Caption": { "title": "$:/language/Search/DefaultResults/Caption", "text": "Liste" }, "$:/language/Search/Filter/Caption": { "title": "$:/language/Search/Filter/Caption", "text": "Filter" }, "$:/language/Search/Filter/Hint": { "title": "$:/language/Search/Filter/Hint", "text": "Suche mit [[\"filter expression\"|http://tiddlywiki.com/static/Filters.html]]." }, "$:/language/Search/Filter/Matches": { "title": "$:/language/Search/Filter/Matches", "text": "//<small><<resultCount>> Treffer</small>//" }, "$:/language/Search/Matches": { "title": "$:/language/Search/Matches", "text": "//<small><<resultCount>> Treffer</small>//" }, "$:/language/Search/Matches/All": { "title": "$:/language/Search/Matches/All", "text": "Alle Treffer:" }, "$:/language/Search/Matches/Title": { "title": "$:/language/Search/Matches/Title", "text": "Titel Treffer:" }, "$:/language/Search/Search": { "title": "$:/language/Search/Search", "text": "Suchen" }, "$:/language/Search/Shadows/Caption": { "title": "$:/language/Search/Shadows/Caption", "text": "Schatten" }, "$:/language/Search/Shadows/Hint": { "title": "$:/language/Search/Shadows/Hint", "text": "Suche in Schatten-Tiddlern." }, "$:/language/Search/Shadows/Matches": { "title": "$:/language/Search/Shadows/Matches", "text": "//<small><<resultCount>> Treffer</small>//" }, "$:/language/Search/Standard/Caption": { "title": "$:/language/Search/Standard/Caption", "text": "Standard" }, "$:/language/Search/Standard/Hint": { "title": "$:/language/Search/Standard/Hint", "text": "Suche in Standard-Tiddlern." }, "$:/language/Search/Standard/Matches": { "title": "$:/language/Search/Standard/Matches", "text": "//<small><<resultCount>> matches</small>//" }, "$:/language/Search/System/Caption": { "title": "$:/language/Search/System/Caption", "text": "System" }, "$:/language/Search/System/Hint": { "title": "$:/language/Search/System/Hint", "text": "Suche in System-Tiddlern." }, "$:/language/Search/System/Matches": { "title": "$:/language/Search/System/Matches", "text": "//<small><<resultCount>> matches</small>//" }, "$:/language/SideBar/All/Caption": { "title": "$:/language/SideBar/All/Caption", "text": "Alle" }, "$:/language/SideBar/Contents/Caption": { "title": "$:/language/SideBar/Contents/Caption", "text": "Inhalt" }, "$:/language/SideBar/Drafts/Caption": { "title": "$:/language/SideBar/Drafts/Caption", "text": "Entwurf" }, "$:/language/SideBar/Missing/Caption": { "title": "$:/language/SideBar/Missing/Caption", "text": "Fehlend" }, "$:/language/SideBar/More/Caption": { "title": "$:/language/SideBar/More/Caption", "text": "Mehr" }, "$:/language/SideBar/Open/Caption": { "title": "$:/language/SideBar/Open/Caption", "text": "Offen" }, "$:/language/SideBar/Orphans/Caption": { "title": "$:/language/SideBar/Orphans/Caption", "text": "Waisen" }, "$:/language/SideBar/Recent/Caption": { "title": "$:/language/SideBar/Recent/Caption", "text": "Zuletzt" }, "$:/language/SideBar/Shadows/Caption": { "title": "$:/language/SideBar/Shadows/Caption", "text": "Schatten" }, "$:/language/SideBar/System/Caption": { "title": "$:/language/SideBar/System/Caption", "text": "System" }, "$:/language/SideBar/Tags/Caption": { "title": "$:/language/SideBar/Tags/Caption", "text": "Tags" }, "$:/language/SideBar/Tags/Untagged/Caption": { "title": "$:/language/SideBar/Tags/Untagged/Caption", "text": "untagged" }, "$:/language/SideBar/Tools/Caption": { "title": "$:/language/SideBar/Tools/Caption", "text": "Tools" }, "$:/language/SideBar/Types/Caption": { "title": "$:/language/SideBar/Types/Caption", "text": "Typen" }, "$:/SiteSubtitle": { "title": "$:/SiteSubtitle", "text": "ein persönliches nicht-lineares Web-Notizbuch\n" }, "$:/SiteTitle": { "title": "$:/SiteTitle", "text": "Mein ~TiddlyWiki" }, "$:/language/Snippets/ListByTag": { "title": "$:/language/Snippets/ListByTag", "tags": "$:/tags/TextEditor/Snippet", "caption": "Tiddler-Liste mit tag: \"task\", sortiert nach \"titel\"", "text": "<<list-links \"[tag[task]sort[title]]\">>\n" }, "$:/language/Snippets/MacroDefinition": { "title": "$:/language/Snippets/MacroDefinition", "tags": "$:/tags/TextEditor/Snippet", "caption": "Makro Definition", "text": "\\define makroName(param1:\"standard parameter\", param2)\nText des Makros. Zugriff auf den $param1$.\n$param2$\n\\end\n" }, "$:/language/Snippets/Table4x3": { "title": "$:/language/Snippets/Table4x3", "tags": "$:/tags/TextEditor/Snippet", "caption": "Tabelle mit 5 Spalten, 4 Zeilen, Kopf- und Fußzeile", "text": "| |Alpha |Beta |Gamma |Delta |h\n|!Beta | | | | |\n|!Gamma | | | | |\n|!Delta | | | | |\n| |a|b|c|d|f\n| Beschriftung |c\n" }, "$:/language/Snippets/TableOfContents": { "title": "$:/language/Snippets/TableOfContents", "tags": "$:/tags/TextEditor/Snippet", "caption": "Inhaltsverzeichnis", "text": "<div class=\"tc-table-of-contents\">\n\n<<toc-selective-expandable 'InhaltsVerzeichnis'>>\n\n</div>" }, "$:/language/ThemeTweaks/ThemeTweaks": { "title": "$:/language/ThemeTweaks/ThemeTweaks", "text": "Theme Tweaks" }, "$:/language/ThemeTweaks/ThemeTweaks/Hint": { "title": "$:/language/ThemeTweaks/ThemeTweaks/Hint", "text": "Hier können sie verschiedene Elemente des ''Vanilla'' (Standard) Themas einstellen." }, "$:/language/ThemeTweaks/Options": { "title": "$:/language/ThemeTweaks/Options", "text": "Optionen" }, "$:/language/ThemeTweaks/Options/SidebarLayout": { "title": "$:/language/ThemeTweaks/Options/SidebarLayout", "text": "Seitenleiste Darstellung" }, "$:/language/ThemeTweaks/Options/SidebarLayout/Fixed-Fluid": { "title": "$:/language/ThemeTweaks/Options/SidebarLayout/Fixed-Fluid", "text": "Fixe Story, variable Seitenleiste" }, "$:/language/ThemeTweaks/Options/SidebarLayout/Fluid-Fixed": { "title": "$:/language/ThemeTweaks/Options/SidebarLayout/Fluid-Fixed", "text": "Variable Story, fixe Seitenleiste" }, "$:/language/ThemeTweaks/Options/StickyTitles": { "title": "$:/language/ThemeTweaks/Options/StickyTitles", "text": "\"Klebender Titel\"" }, "$:/language/ThemeTweaks/Options/StickyTitles/Hint": { "title": "$:/language/ThemeTweaks/Options/StickyTitles/Hint", "text": "Tiddler-Titel bleiben beim \"Scrollen\" am oberen Bildschirmrand \"kleben\". Funktioniert möglicherweise nicht mit jedem Browser." }, "$:/language/ThemeTweaks/Options/CodeWrapping": { "title": "$:/language/ThemeTweaks/Options/CodeWrapping", "text": "Lange Zeilen in \"Code-Blöcken\" umbrechen" }, "$:/language/ThemeTweaks/Settings": { "title": "$:/language/ThemeTweaks/Settings", "text": "Einstellungen" }, "$:/language/ThemeTweaks/Settings/FontFamily": { "title": "$:/language/ThemeTweaks/Settings/FontFamily", "text": "Schriftfamilie" }, "$:/language/ThemeTweaks/Settings/CodeFontFamily": { "title": "$:/language/ThemeTweaks/Settings/CodeFontFamily", "text": "\"Code\" Schriftfamilie" }, "$:/language/ThemeTweaks/Settings/BackgroundImage": { "title": "$:/language/ThemeTweaks/Settings/BackgroundImage", "text": "Hintergrundbild für die Seite" }, "$:/language/ThemeTweaks/Settings/BackgroundImageAttachment": { "title": "$:/language/ThemeTweaks/Settings/BackgroundImageAttachment", "text": "Hintergrundbild Anhang" }, "$:/language/ThemeTweaks/Settings/BackgroundImageAttachment/Scroll": { "title": "$:/language/ThemeTweaks/Settings/BackgroundImageAttachment/Scroll", "text": "Mit Inhalt \"scrollen\"" }, "$:/language/ThemeTweaks/Settings/BackgroundImageAttachment/Fixed": { "title": "$:/language/ThemeTweaks/Settings/BackgroundImageAttachment/Fixed", "text": "Fixe position im Fenster" }, "$:/language/ThemeTweaks/Settings/BackgroundImageSize": { "title": "$:/language/ThemeTweaks/Settings/BackgroundImageSize", "text": "Hintergrundbild Größe" }, "$:/language/ThemeTweaks/Settings/BackgroundImageSize/Auto": { "title": "$:/language/ThemeTweaks/Settings/BackgroundImageSize/Auto", "text": "Auto" }, "$:/language/ThemeTweaks/Settings/BackgroundImageSize/Cover": { "title": "$:/language/ThemeTweaks/Settings/BackgroundImageSize/Cover", "text": "Abdecken" }, "$:/language/ThemeTweaks/Settings/BackgroundImageSize/Contain": { "title": "$:/language/ThemeTweaks/Settings/BackgroundImageSize/Contain", "text": "Anpassen" }, "$:/language/ThemeTweaks/Metrics": { "title": "$:/language/ThemeTweaks/Metrics", "text": "Größen" }, "$:/language/ThemeTweaks/Metrics/FontSize": { "title": "$:/language/ThemeTweaks/Metrics/FontSize", "text": "Schriftgröße" }, "$:/language/ThemeTweaks/Metrics/LineHeight": { "title": "$:/language/ThemeTweaks/Metrics/LineHeight", "text": "Zeilenhöhe" }, "$:/language/ThemeTweaks/Metrics/BodyFontSize": { "title": "$:/language/ThemeTweaks/Metrics/BodyFontSize", "text": "Schriftgröße für Tiddler Inhalt" }, "$:/language/ThemeTweaks/Metrics/BodyLineHeight": { "title": "$:/language/ThemeTweaks/Metrics/BodyLineHeight", "text": "Zeilenhöhe für Tiddler Inhalt" }, "$:/language/ThemeTweaks/Metrics/StoryLeft": { "title": "$:/language/ThemeTweaks/Metrics/StoryLeft", "text": "\"Story\" - linke Position" }, "$:/language/ThemeTweaks/Metrics/StoryLeft/Hint": { "title": "$:/language/ThemeTweaks/Metrics/StoryLeft/Hint", "text": "Abstand des \"story rivers\" vom linken Fensterrand" }, "$:/language/ThemeTweaks/Metrics/StoryTop": { "title": "$:/language/ThemeTweaks/Metrics/StoryTop", "text": "\"Story\" - obere Position" }, "$:/language/ThemeTweaks/Metrics/StoryTop/Hint": { "title": "$:/language/ThemeTweaks/Metrics/StoryTop/Hint", "text": "Abstand des \"story rivers\" vom oberen Fensterrand" }, "$:/language/ThemeTweaks/Metrics/StoryRight": { "title": "$:/language/ThemeTweaks/Metrics/StoryRight", "text": "\"Story\" - rechte Position" }, "$:/language/ThemeTweaks/Metrics/StoryRight/Hint": { "title": "$:/language/ThemeTweaks/Metrics/StoryRight/Hint", "text": "Abstand der Seitenleiste from linken Fensterrand" }, "$:/language/ThemeTweaks/Metrics/StoryWidth": { "title": "$:/language/ThemeTweaks/Metrics/StoryWidth", "text": "\"Story\" - Breite" }, "$:/language/ThemeTweaks/Metrics/StoryWidth/Hint": { "title": "$:/language/ThemeTweaks/Metrics/StoryWidth/Hint", "text": "Breite des \"story rivers\" " }, "$:/language/ThemeTweaks/Metrics/TiddlerWidth": { "title": "$:/language/ThemeTweaks/Metrics/TiddlerWidth", "text": "Tiddlerbreite" }, "$:/language/ThemeTweaks/Metrics/TiddlerWidth/Hint": { "title": "$:/language/ThemeTweaks/Metrics/TiddlerWidth/Hint", "text": "im \"story river\"" }, "$:/language/ThemeTweaks/Metrics/SidebarBreakpoint": { "title": "$:/language/ThemeTweaks/Metrics/SidebarBreakpoint", "text": "Seitenleiste \"breakpoint\"" }, "$:/language/ThemeTweaks/Metrics/SidebarBreakpoint/Hint": { "title": "$:/language/ThemeTweaks/Metrics/SidebarBreakpoint/Hint", "text": "Minimum Fensterbreite, bei der die Seitenleiste an den Anfang der Seite verschoben wird." }, "$:/language/ThemeTweaks/Metrics/SidebarWidth": { "title": "$:/language/ThemeTweaks/Metrics/SidebarWidth", "text": "Seitenleiste Breite" }, "$:/language/ThemeTweaks/Metrics/SidebarWidth/Hint": { "title": "$:/language/ThemeTweaks/Metrics/SidebarWidth/Hint", "text": "Die Breite der Leiste bei variabler/fixer Darstellung" }, "$:/language/TiddlerInfo/Advanced/Caption": { "title": "$:/language/TiddlerInfo/Advanced/Caption", "text": "Erweitert" }, "$:/language/TiddlerInfo/Advanced/PluginInfo/Empty/Hint": { "title": "$:/language/TiddlerInfo/Advanced/PluginInfo/Empty/Hint", "text": "keine" }, "$:/language/TiddlerInfo/Advanced/PluginInfo/Heading": { "title": "$:/language/TiddlerInfo/Advanced/PluginInfo/Heading", "text": "Plugin Details" }, "$:/language/TiddlerInfo/Advanced/PluginInfo/Hint": { "title": "$:/language/TiddlerInfo/Advanced/PluginInfo/Hint", "text": "Dieses Plugin enthält folgende Schatten-Tiddler:" }, "$:/language/TiddlerInfo/Advanced/ShadowInfo/Heading": { "title": "$:/language/TiddlerInfo/Advanced/ShadowInfo/Heading", "text": "Shatten Status" }, "$:/language/TiddlerInfo/Advanced/ShadowInfo/NotShadow/Hint": { "title": "$:/language/TiddlerInfo/Advanced/ShadowInfo/NotShadow/Hint", "text": "Der Tiddler: <$link to=<<infoTiddler>>><$text text=<<infoTiddler>>/></$link> ist kein Schatten-Tiddler." }, "$:/language/TiddlerInfo/Advanced/ShadowInfo/Shadow/Hint": { "title": "$:/language/TiddlerInfo/Advanced/ShadowInfo/Shadow/Hint", "text": "Der Tiddler: <$link to=<<infoTiddler>>><$text text=<<infoTiddler>>/></$link> ist ein Schatten-Tiddler." }, "$:/language/TiddlerInfo/Advanced/ShadowInfo/Shadow/Source": { "title": "$:/language/TiddlerInfo/Advanced/ShadowInfo/Shadow/Source", "text": "Er ist definiert im Plugin: <$link to=<<pluginTiddler>>><$text text=<<pluginTiddler>>/></$link>." }, "$:/language/TiddlerInfo/Advanced/ShadowInfo/OverriddenShadow/Hint": { "title": "$:/language/TiddlerInfo/Advanced/ShadowInfo/OverriddenShadow/Hint", "text": "Der originale Schatten-Tiddler wurde durch diesen Tiddler überschrieben. Wenn Sie diesen Tiddler löschen, wird der originale Schatten-Tiddler wieder aktiv. Vorher eventuell eine Sicherungskopie erstellen!" }, "$:/language/TiddlerInfo/Fields/Caption": { "title": "$:/language/TiddlerInfo/Fields/Caption", "text": "Felder" }, "$:/language/TiddlerInfo/List/Caption": { "title": "$:/language/TiddlerInfo/List/Caption", "text": "Liste" }, "$:/language/TiddlerInfo/List/Empty": { "title": "$:/language/TiddlerInfo/List/Empty", "text": "Dieser Tiddler hat kein \"list\" Feld." }, "$:/language/TiddlerInfo/Listed/Caption": { "title": "$:/language/TiddlerInfo/Listed/Caption", "text": "Gelistet" }, "$:/language/TiddlerInfo/Listed/Empty": { "title": "$:/language/TiddlerInfo/Listed/Empty", "text": "Dieser Tiddler wird nicht von anderen Tiddlern gelistet." }, "$:/language/TiddlerInfo/References/Caption": { "title": "$:/language/TiddlerInfo/References/Caption", "text": "Referenzen" }, "$:/language/TiddlerInfo/References/Empty": { "title": "$:/language/TiddlerInfo/References/Empty", "text": "Kein Tiddler linkt zu Diesem." }, "$:/language/TiddlerInfo/Tagging/Caption": { "title": "$:/language/TiddlerInfo/Tagging/Caption", "text": "Tagging" }, "$:/language/TiddlerInfo/Tagging/Empty": { "title": "$:/language/TiddlerInfo/Tagging/Empty", "text": "Kein Tiddler ist mit diesem \"getaggt\"." }, "$:/language/TiddlerInfo/Tools/Caption": { "title": "$:/language/TiddlerInfo/Tools/Caption", "text": "Tools" }, "$:/language/Docs/Types/application/javascript": { "title": "$:/language/Docs/Types/application/javascript", "description": "JS - JavaScript Code", "name": "application/javascript", "group": "Entwickler" }, "$:/language/Docs/Types/application/json": { "title": "$:/language/Docs/Types/application/json", "description": "JSON - Daten", "name": "application/json", "group": "Entwickler" }, "$:/language/Docs/Types/application/x-tiddler-dictionary": { "title": "$:/language/Docs/Types/application/x-tiddler-dictionary", "description": "TiddlyWiki Datenkatalog", "name": "application/x-tiddler-dictionary", "group": "Entwickler" }, "$:/language/Docs/Types/image/gif": { "title": "$:/language/Docs/Types/image/gif", "description": "GIF - Bild", "name": "image/gif", "group": "Bilder" }, "$:/language/Docs/Types/image/jpeg": { "title": "$:/language/Docs/Types/image/jpeg", "description": "JPEG - Bild", "name": "image/jpeg", "group": "Bilder" }, "$:/language/Docs/Types/image/png": { "title": "$:/language/Docs/Types/image/png", "description": "PNG - Portable Netzwerkgrafik", "name": "image/png", "group": "Bilder" }, "$:/language/Docs/Types/image/svg+xml": { "title": "$:/language/Docs/Types/image/svg+xml", "description": "SVG - Strukturierte Vektor Graphik", "name": "image/svg+xml", "group": "Bilder" }, "$:/language/Docs/Types/image/x-icon": { "title": "$:/language/Docs/Types/image/x-icon", "description": "ICO - Piktogramm Format", "name": "image/x-icon", "group": "Bilder" }, "$:/language/Docs/Types/text/css": { "title": "$:/language/Docs/Types/text/css", "description": "CSS - Cascading Style Sheets", "name": "text/css", "group": "Entwickler" }, "$:/language/Docs/Types/text/html": { "title": "$:/language/Docs/Types/text/html", "description": "HTML - Auszeichnungssprache", "name": "text/html", "group": "Text" }, "$:/language/Docs/Types/text/plain": { "title": "$:/language/Docs/Types/text/plain", "description": "TXT - Unformatierter Text", "name": "text/plain", "group": "Text" }, "$:/language/Docs/Types/text/vnd.tiddlywiki": { "title": "$:/language/Docs/Types/text/vnd.tiddlywiki", "description": "TW5 - TiddlyWiki Version 5 Wikitext", "name": "text/vnd.tiddlywiki", "group": "Text" }, "$:/language/Docs/Types/text/x-tiddlywiki": { "title": "$:/language/Docs/Types/text/x-tiddlywiki", "description": "TWc - TiddlyWiki Classic Wikitext", "name": "text/x-tiddlywiki", "group": "Text" }, "$:/languages/de-DE/icon": { "title": "$:/languages/de-DE/icon", "type": "image/svg+xml", "text": "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n\t\"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"1000\" height=\"600\" viewBox=\"0 0 5 3\">\n\t<desc>Flag of Germany</desc>\n\t<rect id=\"black_stripe\" width=\"5\" height=\"3\" y=\"0\" x=\"0\" fill=\"#000\"/>\n\t<rect id=\"red_stripe\" width=\"5\" height=\"2\" y=\"1\" x=\"0\" fill=\"#D00\"/>\n\t<rect id=\"gold_stripe\" width=\"5\" height=\"1\" y=\"2\" x=\"0\" fill=\"#FFCE00\"/>\n</svg>\n" } } }
Das Vereins-Archiv
Karnevalverein Frohsinn 1890 e.V.
show
show
show
no
yes
$:/core/ui/AdvancedSearch/Standard
$:/themes/tiddlywiki/vanilla/themetweaks
$:/core/ui/ControlPanel/Saving
$:/core/ui/SideBar/Tools
archiv
{ "tiddlers": { "$:/info/browser": { "title": "$:/info/browser", "text": "yes" }, "$:/info/node": { "title": "$:/info/node", "text": "no" } } }
{ "tiddlers": { "$:/themes/tiddlywiki/snowwhite/base": { "title": "$:/themes/tiddlywiki/snowwhite/base", "tags": "[[$:/tags/Stylesheet]]", "text": "\\rules only filteredtranscludeinline transcludeinline macrodef macrocallinline\n\n.tc-sidebar-header {\n\ttext-shadow: 0 1px 0 <<colour sidebar-foreground-shadow>>;\n}\n\n.tc-tiddler-info {\n\t<<box-shadow \"inset 1px 2px 3px rgba(0,0,0,0.1)\">>\n}\n\n@media screen {\n\t.tc-tiddler-frame {\n\t\t<<box-shadow \"1px 1px 5px rgba(0, 0, 0, 0.3)\">>\n\t}\n}\n\n@media (max-width: {{$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint}}) {\n\t.tc-tiddler-frame {\n\t\t<<box-shadow none>>\n\t}\n}\n\n.tc-page-controls button svg, .tc-tiddler-controls button svg, .tc-topbar button svg {\n\t<<transition \"fill 150ms ease-in-out\">>\n}\n\n.tc-tiddler-controls button.tc-selected,\n.tc-page-controls button.tc-selected {\n\t<<filter \"drop-shadow(0px -1px 2px rgba(0,0,0,0.25))\">>\n}\n\n.tc-tiddler-frame input.tc-edit-texteditor {\n\t<<box-shadow \"inset 0 1px 8px rgba(0, 0, 0, 0.15)\">>\n}\n\n.tc-edit-tags {\n\t<<box-shadow \"inset 0 1px 8px rgba(0, 0, 0, 0.15)\">>\n}\n\n.tc-tiddler-frame .tc-edit-tags input.tc-edit-texteditor {\n\t<<box-shadow \"none\">>\n\tborder: none;\n\toutline: none;\n}\n\ncanvas.tc-edit-bitmapeditor {\n\t<<box-shadow \"2px 2px 5px rgba(0, 0, 0, 0.5)\">>\n}\n\n.tc-drop-down {\n\tborder-radius: 4px;\n\t<<box-shadow \"2px 2px 10px rgba(0, 0, 0, 0.5)\">>\n}\n\n.tc-block-dropdown {\n\tborder-radius: 4px;\n\t<<box-shadow \"2px 2px 10px rgba(0, 0, 0, 0.5)\">>\n}\n\n.tc-modal {\n\tborder-radius: 6px;\n\t<<box-shadow \"0 3px 7px rgba(0,0,0,0.3)\">>\n}\n\n.tc-modal-footer {\n\tborder-radius: 0 0 6px 6px;\n\t<<box-shadow \"inset 0 1px 0 #fff\">>;\n}\n\n\n.tc-alert {\n\tborder-radius: 6px;\n\t<<box-shadow \"0 3px 7px rgba(0,0,0,0.6)\">>\n}\n\n.tc-notification {\n\tborder-radius: 6px;\n\t<<box-shadow \"0 3px 7px rgba(0,0,0,0.3)\">>\n\ttext-shadow: 0 1px 0 rgba(255,255,255, 0.8);\n}\n\n.tc-sidebar-lists .tc-tab-set .tc-tab-divider {\n\tborder-top: none;\n\theight: 1px;\n\t<<background-linear-gradient \"left, rgba(0,0,0,0.15) 0%, rgba(0,0,0,0.0) 100%\">>\n}\n\n.tc-more-sidebar .tc-tab-buttons button {\n\t<<background-linear-gradient \"left, rgba(0,0,0,0.01) 0%, rgba(0,0,0,0.1) 100%\">>\n}\n\n.tc-more-sidebar .tc-tab-buttons button.tc-tab-selected {\n\t<<background-linear-gradient \"left, rgba(0,0,0,0.05) 0%, rgba(255,255,255,0.05) 100%\">>\n}\n\n.tc-message-box img {\n\t<<box-shadow \"1px 1px 3px rgba(0,0,0,0.5)\">>\n}\n\n.tc-plugin-info {\n\t<<box-shadow \"1px 1px 3px rgba(0,0,0,0.5)\">>\n}\n" } } }
{ "tiddlers": { "$:/themes/tiddlywiki/vanilla/themetweaks": { "title": "$:/themes/tiddlywiki/vanilla/themetweaks", "tags": "$:/tags/ControlPanel/Appearance", "caption": "{{$:/language/ThemeTweaks/ThemeTweaks}}", "text": "\\define lingo-base() $:/language/ThemeTweaks/\n\n\\define replacement-text()\n[img[$(imageTitle)$]]\n\\end\n\n\\define backgroundimage-dropdown()\n<div class=\"tc-drop-down-wrapper\">\n<$button popup=<<qualify \"$:/state/popup/themetweaks/backgroundimage\">> class=\"tc-btn-invisible tc-btn-dropdown\">{{$:/core/images/down-arrow}}</$button>\n<$reveal state=<<qualify \"$:/state/popup/themetweaks/backgroundimage\">> type=\"popup\" position=\"belowleft\" text=\"\" default=\"\">\n<div class=\"tc-drop-down\">\n<$macrocall $name=\"image-picker\" actions=\"\"\"\n\n<$action-setfield\n\t$tiddler=\"$:/themes/tiddlywiki/vanilla/settings/backgroundimage\"\n\t$value=<<imageTitle>>\n/>\n\n\"\"\"/>\n</div>\n</$reveal>\n</div>\n\\end\n\n\\define backgroundimageattachment-dropdown()\n<$select tiddler=\"$:/themes/tiddlywiki/vanilla/settings/backgroundimageattachment\" default=\"scroll\">\n<option value=\"scroll\"><<lingo Settings/BackgroundImageAttachment/Scroll>></option>\n<option value=\"fixed\"><<lingo Settings/BackgroundImageAttachment/Fixed>></option>\n</$select>\n\\end\n\n\\define backgroundimagesize-dropdown()\n<$select tiddler=\"$:/themes/tiddlywiki/vanilla/settings/backgroundimagesize\" default=\"scroll\">\n<option value=\"auto\"><<lingo Settings/BackgroundImageSize/Auto>></option>\n<option value=\"cover\"><<lingo Settings/BackgroundImageSize/Cover>></option>\n<option value=\"contain\"><<lingo Settings/BackgroundImageSize/Contain>></option>\n</$select>\n\\end\n\n<<lingo ThemeTweaks/Hint>>\n\n! <<lingo Options>>\n\n|<$link to=\"$:/themes/tiddlywiki/vanilla/options/sidebarlayout\"><<lingo Options/SidebarLayout>></$link> |<$select tiddler=\"$:/themes/tiddlywiki/vanilla/options/sidebarlayout\"><option value=\"fixed-fluid\"><<lingo Options/SidebarLayout/Fixed-Fluid>></option><option value=\"fluid-fixed\"><<lingo Options/SidebarLayout/Fluid-Fixed>></option></$select> |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/options/stickytitles\"><<lingo Options/StickyTitles>></$link><br>//<<lingo Options/StickyTitles/Hint>>// |<$select tiddler=\"$:/themes/tiddlywiki/vanilla/options/stickytitles\"><option value=\"no\">{{$:/language/No}}</option><option value=\"yes\">{{$:/language/Yes}}</option></$select> |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/options/codewrapping\"><<lingo Options/CodeWrapping>></$link> |<$select tiddler=\"$:/themes/tiddlywiki/vanilla/options/codewrapping\"><option value=\"pre\">{{$:/language/No}}</option><option value=\"pre-wrap\">{{$:/language/Yes}}</option></$select> |\n\n! <<lingo Settings>>\n\n|<$link to=\"$:/themes/tiddlywiki/vanilla/settings/fontfamily\"><<lingo Settings/FontFamily>></$link> |<$edit-text tiddler=\"$:/themes/tiddlywiki/vanilla/settings/fontfamily\" default=\"\" tag=\"input\"/> | |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/settings/codefontfamily\"><<lingo Settings/CodeFontFamily>></$link> |<$edit-text tiddler=\"$:/themes/tiddlywiki/vanilla/settings/codefontfamily\" default=\"\" tag=\"input\"/> | |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/settings/backgroundimage\"><<lingo Settings/BackgroundImage>></$link> |<$edit-text tiddler=\"$:/themes/tiddlywiki/vanilla/settings/backgroundimage\" default=\"\" tag=\"input\"/> |<<backgroundimage-dropdown>> |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/settings/backgroundimageattachment\"><<lingo Settings/BackgroundImageAttachment>></$link> |<<backgroundimageattachment-dropdown>> | |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/settings/backgroundimagesize\"><<lingo Settings/BackgroundImageSize>></$link> |<<backgroundimagesize-dropdown>> | |\n\n! <<lingo Metrics>>\n\n|<$link to=\"$:/themes/tiddlywiki/vanilla/metrics/fontsize\"><<lingo Metrics/FontSize>></$link> |<$edit-text tiddler=\"$:/themes/tiddlywiki/vanilla/metrics/fontsize\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/metrics/lineheight\"><<lingo Metrics/LineHeight>></$link> |<$edit-text tiddler=\"$:/themes/tiddlywiki/vanilla/metrics/lineheight\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/metrics/bodyfontsize\"><<lingo Metrics/BodyFontSize>></$link> |<$edit-text tiddler=\"$:/themes/tiddlywiki/vanilla/metrics/bodyfontsize\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/metrics/bodylineheight\"><<lingo Metrics/BodyLineHeight>></$link> |<$edit-text tiddler=\"$:/themes/tiddlywiki/vanilla/metrics/bodylineheight\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/metrics/storyleft\"><<lingo Metrics/StoryLeft>></$link><br>//<<lingo Metrics/StoryLeft/Hint>>// |^<$edit-text tiddler=\"$:/themes/tiddlywiki/vanilla/metrics/storyleft\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/metrics/storytop\"><<lingo Metrics/StoryTop>></$link><br>//<<lingo Metrics/StoryTop/Hint>>// |^<$edit-text tiddler=\"$:/themes/tiddlywiki/vanilla/metrics/storytop\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/metrics/storyright\"><<lingo Metrics/StoryRight>></$link><br>//<<lingo Metrics/StoryRight/Hint>>// |^<$edit-text tiddler=\"$:/themes/tiddlywiki/vanilla/metrics/storyright\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/metrics/storywidth\"><<lingo Metrics/StoryWidth>></$link><br>//<<lingo Metrics/StoryWidth/Hint>>// |^<$edit-text tiddler=\"$:/themes/tiddlywiki/vanilla/metrics/storywidth\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/metrics/tiddlerwidth\"><<lingo Metrics/TiddlerWidth>></$link><br>//<<lingo Metrics/TiddlerWidth/Hint>>//<br> |^<$edit-text tiddler=\"$:/themes/tiddlywiki/vanilla/metrics/tiddlerwidth\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint\"><<lingo Metrics/SidebarBreakpoint>></$link><br>//<<lingo Metrics/SidebarBreakpoint/Hint>>// |^<$edit-text tiddler=\"$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/metrics/sidebarwidth\"><<lingo Metrics/SidebarWidth>></$link><br>//<<lingo Metrics/SidebarWidth/Hint>>// |^<$edit-text tiddler=\"$:/themes/tiddlywiki/vanilla/metrics/sidebarwidth\" default=\"\" tag=\"input\"/> |\n" }, "$:/themes/tiddlywiki/vanilla/base": { "title": "$:/themes/tiddlywiki/vanilla/base", "tags": "[[$:/tags/Stylesheet]]", "text": "\\define custom-background-datauri()\n<$set name=\"background\" value={{$:/themes/tiddlywiki/vanilla/settings/backgroundimage}}>\n<$list filter=\"[<background>is[image]]\">\n`background: url(`\n<$list filter=\"[<background>!has[_canonical_uri]]\">\n<$macrocall $name=\"datauri\" title={{$:/themes/tiddlywiki/vanilla/settings/backgroundimage}}/>\n</$list>\n<$list filter=\"[<background>has[_canonical_uri]]\">\n<$view tiddler={{$:/themes/tiddlywiki/vanilla/settings/backgroundimage}} field=\"_canonical_uri\"/>\n</$list>\n`) center center;`\n`background-attachment: `{{$:/themes/tiddlywiki/vanilla/settings/backgroundimageattachment}}`;\n-webkit-background-size:` {{$:/themes/tiddlywiki/vanilla/settings/backgroundimagesize}}`;\n-moz-background-size:` {{$:/themes/tiddlywiki/vanilla/settings/backgroundimagesize}}`;\n-o-background-size:` {{$:/themes/tiddlywiki/vanilla/settings/backgroundimagesize}}`;\nbackground-size:` {{$:/themes/tiddlywiki/vanilla/settings/backgroundimagesize}}`;`\n</$list>\n</$set>\n\\end\n\n\\define if-fluid-fixed(text,hiddenSidebarText)\n<$reveal state=\"$:/themes/tiddlywiki/vanilla/options/sidebarlayout\" type=\"match\" text=\"fluid-fixed\">\n$text$\n<$reveal state=\"$:/state/sidebar\" type=\"nomatch\" text=\"yes\" default=\"yes\">\n$hiddenSidebarText$\n</$reveal>\n</$reveal>\n\\end\n\n\\rules only filteredtranscludeinline transcludeinline macrodef macrocallinline macrocallblock\n\n/*\n** Start with the normalize CSS reset, and then belay some of its effects\n*/\n\n{{$:/themes/tiddlywiki/vanilla/reset}}\n\n*, input[type=\"search\"] {\n\tbox-sizing: border-box;\n\t-moz-box-sizing: border-box;\n\t-webkit-box-sizing: border-box;\n}\n\nhtml button {\n\tline-height: 1.2;\n\tcolor: <<colour button-foreground>>;\n\tbackground: <<colour button-background>>;\n\tborder-color: <<colour button-border>>;\n}\n\n/*\n** Basic element styles\n*/\n\nhtml {\n\tfont-family: {{$:/themes/tiddlywiki/vanilla/settings/fontfamily}};\n\ttext-rendering: optimizeLegibility; /* Enables kerning and ligatures etc. */\n\t-webkit-font-smoothing: antialiased;\n\t-moz-osx-font-smoothing: grayscale;\n}\n\nhtml:-webkit-full-screen {\n\tbackground-color: <<colour page-background>>;\n}\n\nbody.tc-body {\n\tfont-size: {{$:/themes/tiddlywiki/vanilla/metrics/fontsize}};\n\tline-height: {{$:/themes/tiddlywiki/vanilla/metrics/lineheight}};\n\tcolor: <<colour foreground>>;\n\tbackground-color: <<colour page-background>>;\n\tfill: <<colour foreground>>;\n\tword-wrap: break-word;\n\t<<custom-background-datauri>>\n}\n\nh1, h2, h3, h4, h5, h6 {\n\tline-height: 1.2;\n\tfont-weight: 300;\n}\n\npre {\n\tdisplay: block;\n\tpadding: 14px;\n\tmargin-top: 1em;\n\tmargin-bottom: 1em;\n\tword-break: normal;\n\tword-wrap: break-word;\n\twhite-space: {{$:/themes/tiddlywiki/vanilla/options/codewrapping}};\n\tbackground-color: <<colour pre-background>>;\n\tborder: 1px solid <<colour pre-border>>;\n\tpadding: 0 3px 2px;\n\tborder-radius: 3px;\n\tfont-family: {{$:/themes/tiddlywiki/vanilla/settings/codefontfamily}};\n}\n\ncode {\n\tcolor: <<colour code-foreground>>;\n\tbackground-color: <<colour code-background>>;\n\tborder: 1px solid <<colour code-border>>;\n\twhite-space: {{$:/themes/tiddlywiki/vanilla/options/codewrapping}};\n\tpadding: 0 3px 2px;\n\tborder-radius: 3px;\n\tfont-family: {{$:/themes/tiddlywiki/vanilla/settings/codefontfamily}};\n}\n\nblockquote {\n\tborder-left: 5px solid <<colour blockquote-bar>>;\n\tmargin-left: 25px;\n\tpadding-left: 10px;\n}\n\ndl dt {\n\tfont-weight: bold;\n\tmargin-top: 6px;\n}\n\ntextarea,\ninput[type=text],\ninput[type=search],\ninput[type=\"\"],\ninput:not([type]) {\n\tcolor: <<colour foreground>>;\n\tbackground: <<colour background>>;\n}\n\n.tc-muted {\n\tcolor: <<colour muted-foreground>>;\n}\n\nsvg.tc-image-button {\n\tpadding: 0px 1px 1px 0px;\n}\n\nkbd {\n\tdisplay: inline-block;\n\tpadding: 3px 5px;\n\tfont-size: 0.8em;\n\tline-height: 1.2;\n\tcolor: <<colour foreground>>;\n\tvertical-align: middle;\n\tbackground-color: <<colour background>>;\n\tborder: solid 1px <<colour muted-foreground>>;\n\tborder-bottom-color: <<colour muted-foreground>>;\n\tborder-radius: 3px;\n\tbox-shadow: inset 0 -1px 0 <<colour muted-foreground>>;\n}\n\n/*\nMarkdown likes putting code elements inside pre elements\n*/\npre > code {\n\tpadding: 0;\n\tborder: none;\n\tbackground-color: inherit;\n\tcolor: inherit;\n}\n\ntable {\n\tborder: 1px solid <<colour table-border>>;\n\twidth: auto;\n\tmax-width: 100%;\n\tcaption-side: bottom;\n\tmargin-top: 1em;\n\tmargin-bottom: 1em;\n}\n\ntable th, table td {\n\tpadding: 0 7px 0 7px;\n\tborder-top: 1px solid <<colour table-border>>;\n\tborder-left: 1px solid <<colour table-border>>;\n}\n\ntable thead tr td, table th {\n\tbackground-color: <<colour table-header-background>>;\n\tfont-weight: bold;\n}\n\ntable tfoot tr td {\n\tbackground-color: <<colour table-footer-background>>;\n}\n\n.tc-csv-table {\n\twhite-space: nowrap;\n}\n\n.tc-tiddler-frame img,\n.tc-tiddler-frame svg,\n.tc-tiddler-frame canvas,\n.tc-tiddler-frame embed,\n.tc-tiddler-frame iframe {\n\tmax-width: 100%;\n}\n\n.tc-tiddler-body > embed,\n.tc-tiddler-body > iframe {\n\twidth: 100%;\n\theight: 600px;\n}\n\n/*\n** Links\n*/\n\nbutton.tc-tiddlylink,\na.tc-tiddlylink {\n\ttext-decoration: none;\n\tfont-weight: normal;\n\tcolor: <<colour tiddler-link-foreground>>;\n\t-webkit-user-select: inherit; /* Otherwise the draggable attribute makes links impossible to select */\n}\n\n.tc-sidebar-lists a.tc-tiddlylink {\n\tcolor: <<colour sidebar-tiddler-link-foreground>>;\n}\n\n.tc-sidebar-lists a.tc-tiddlylink:hover {\n\tcolor: <<colour sidebar-tiddler-link-foreground-hover>>;\n}\n\nbutton.tc-tiddlylink:hover,\na.tc-tiddlylink:hover {\n\ttext-decoration: underline;\n}\n\na.tc-tiddlylink-resolves {\n}\n\na.tc-tiddlylink-shadow {\n\tfont-weight: bold;\n}\n\na.tc-tiddlylink-shadow.tc-tiddlylink-resolves {\n\tfont-weight: normal;\n}\n\na.tc-tiddlylink-missing {\n\tfont-style: italic;\n}\n\na.tc-tiddlylink-external {\n\ttext-decoration: underline;\n\tcolor: <<colour external-link-foreground>>;\n\tbackground-color: <<colour external-link-background>>;\n}\n\na.tc-tiddlylink-external:visited {\n\tcolor: <<colour external-link-foreground-visited>>;\n\tbackground-color: <<colour external-link-background-visited>>;\n}\n\na.tc-tiddlylink-external:hover {\n\tcolor: <<colour external-link-foreground-hover>>;\n\tbackground-color: <<colour external-link-background-hover>>;\n}\n\n/*\n** Drag and drop styles\n*/\n\n.tc-tiddler-dragger {\n\tposition: relative;\n\tz-index: -10000;\n}\n\n.tc-tiddler-dragger-inner {\n\tposition: absolute;\n\tdisplay: inline-block;\n\tpadding: 8px 20px;\n\tfont-size: 16.9px;\n\tfont-weight: bold;\n\tline-height: 20px;\n\tcolor: <<colour dragger-foreground>>;\n\ttext-shadow: 0 1px 0 rgba(0, 0, 0, 1);\n\twhite-space: nowrap;\n\tvertical-align: baseline;\n\tbackground-color: <<colour dragger-background>>;\n\tborder-radius: 20px;\n}\n\n.tc-tiddler-dragger-cover {\n\tposition: absolute;\n\tbackground-color: <<colour page-background>>;\n}\n\n.tc-dropzone {\n\tposition: relative;\n}\n\n.tc-dropzone.tc-dragover:before {\n\tz-index: 10000;\n\tdisplay: block;\n\tposition: fixed;\n\ttop: 0;\n\tleft: 0;\n\tright: 0;\n\tbackground: <<colour dropzone-background>>;\n\ttext-align: center;\n\tcontent: \"<<lingo DropMessage>>\";\n}\n\n/*\n** Plugin reload warning\n*/\n\n.tc-plugin-reload-warning {\n\tz-index: 1000;\n\tdisplay: block;\n\tposition: fixed;\n\ttop: 0;\n\tleft: 0;\n\tright: 0;\n\tbackground: <<colour alert-background>>;\n\ttext-align: center;\n}\n\n/*\n** Buttons\n*/\n\nbutton svg, button img, label svg, label img {\n\tvertical-align: middle;\n}\n\n.tc-btn-invisible {\n\tpadding: 0;\n\tmargin: 0;\n\tbackground: none;\n\tborder: none;\n}\n\n.tc-btn-boxed {\n\tfont-size: 0.6em;\n\tpadding: 0.2em;\n\tmargin: 1px;\n\tbackground: none;\n\tborder: 1px solid <<colour tiddler-controls-foreground>>;\n\tborder-radius: 0.25em;\n}\n\nhtml body.tc-body .tc-btn-boxed svg {\n\tfont-size: 1.6666em;\n}\n\n.tc-btn-boxed:hover {\n\tbackground: <<colour muted-foreground>>;\n\tcolor: <<colour background>>;\n}\n\nhtml body.tc-body .tc-btn-boxed:hover svg {\n\tfill: <<colour background>>;\n}\n\n.tc-btn-rounded {\n\tfont-size: 0.5em;\n\tline-height: 2;\n\tpadding: 0em 0.3em 0.2em 0.4em;\n\tmargin: 1px;\n\tborder: 1px solid <<colour muted-foreground>>;\n\tbackground: <<colour muted-foreground>>;\n\tcolor: <<colour background>>;\n\tborder-radius: 2em;\n}\n\nhtml body.tc-body .tc-btn-rounded svg {\n\tfont-size: 1.6666em;\n\tfill: <<colour background>>;\n}\n\n.tc-btn-rounded:hover {\n\tborder: 1px solid <<colour muted-foreground>>;\n\tbackground: <<colour background>>;\n\tcolor: <<colour muted-foreground>>;\n}\n\nhtml body.tc-body .tc-btn-rounded:hover svg {\n\tfill: <<colour muted-foreground>>;\n}\n\n.tc-btn-icon svg {\n\theight: 1em;\n\twidth: 1em;\n\tfill: <<colour muted-foreground>>;\n}\n\n.tc-btn-text {\n\tpadding: 0;\n\tmargin: 0;\n}\n\n.tc-btn-big-green {\n\tdisplay: inline-block;\n\tpadding: 8px;\n\tmargin: 4px 8px 4px 8px;\n\tbackground: <<colour download-background>>;\n\tcolor: <<colour download-foreground>>;\n\tfill: <<colour download-foreground>>;\n\tborder: none;\n\tfont-size: 1.2em;\n\tline-height: 1.4em;\n\ttext-decoration: none;\n}\n\n.tc-btn-big-green svg,\n.tc-btn-big-green img {\n\theight: 2em;\n\twidth: 2em;\n\tvertical-align: middle;\n\tfill: <<colour download-foreground>>;\n}\n\n.tc-sidebar-lists input {\n\tcolor: <<colour foreground>>;\n}\n\n.tc-sidebar-lists button {\n\tcolor: <<colour sidebar-button-foreground>>;\n\tfill: <<colour sidebar-button-foreground>>;\n}\n\n.tc-sidebar-lists button.tc-btn-mini {\n\tcolor: <<colour sidebar-muted-foreground>>;\n}\n\n.tc-sidebar-lists button.tc-btn-mini:hover {\n\tcolor: <<colour sidebar-muted-foreground-hover>>;\n}\n\nbutton svg.tc-image-button, button .tc-image-button img {\n\theight: 1em;\n\twidth: 1em;\n}\n\n.tc-unfold-banner {\n\tposition: absolute;\n\tpadding: 0;\n\tmargin: 0;\n\tbackground: none;\n\tborder: none;\n\twidth: 100%;\n\twidth: calc(100% + 2px);\n\tmargin-left: -43px;\n\ttext-align: center;\n\tborder-top: 2px solid <<colour tiddler-info-background>>;\n\tmargin-top: 4px;\n}\n\n.tc-unfold-banner:hover {\n\tbackground: <<colour tiddler-info-background>>;\n\tborder-top: 2px solid <<colour tiddler-info-border>>;\n}\n\n.tc-unfold-banner svg, .tc-fold-banner svg {\n\theight: 0.75em;\n\tfill: <<colour tiddler-controls-foreground>>;\n}\n\n.tc-unfold-banner:hover svg, .tc-fold-banner:hover svg {\n\tfill: <<colour tiddler-controls-foreground-hover>>;\n}\n\n.tc-fold-banner {\n\tposition: absolute;\n\tpadding: 0;\n\tmargin: 0;\n\tbackground: none;\n\tborder: none;\n\twidth: 23px;\n\ttext-align: center;\n\tmargin-left: -35px;\n\ttop: 6px;\n\tbottom: 6px;\n}\n\n.tc-fold-banner:hover {\n\tbackground: <<colour tiddler-info-background>>;\n}\n\n@media (max-width: {{$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint}}) {\n\n\t.tc-unfold-banner {\n\t\tposition: static;\n\t\twidth: calc(100% + 59px);\n\t}\n\n\t.tc-fold-banner {\n\t\twidth: 16px;\n\t\tmargin-left: -16px;\n\t\tfont-size: 0.75em;\n\t}\n\n}\n\n/*\n** Tags and missing tiddlers\n*/\n\n.tc-tag-list-item {\n\tposition: relative;\n\tdisplay: inline-block;\n\tmargin-right: 7px;\n}\n\n.tc-tags-wrapper {\n\tmargin: 4px 0 14px 0;\n}\n\n.tc-missing-tiddler-label {\n\tfont-style: italic;\n\tfont-weight: normal;\n\tdisplay: inline-block;\n\tfont-size: 11.844px;\n\tline-height: 14px;\n\twhite-space: nowrap;\n\tvertical-align: baseline;\n}\n\nbutton.tc-tag-label, span.tc-tag-label {\n\tdisplay: inline-block;\n\tpadding: 0.16em 0.7em;\n\tfont-size: 0.9em;\n\tfont-weight: 300;\n\tline-height: 1.2em;\n\tcolor: <<colour tag-foreground>>;\n\twhite-space: nowrap;\n\tvertical-align: baseline;\n\tbackground-color: <<colour tag-background>>;\n\tborder-radius: 1em;\n}\n\n.tc-untagged-separator {\n\twidth: 10em;\n\tleft: 0;\n\tmargin-left: 0;\n\tborder: 0;\n\theight: 1px;\n\tbackground: <<colour tab-divider>>;\n}\n\nbutton.tc-untagged-label {\n\tbackground-color: <<colour untagged-background>>;\n}\n\n.tc-tag-label svg, .tc-tag-label img {\n\theight: 1em;\n\twidth: 1em;\n\tfill: <<colour tag-foreground>>;\n}\n\n.tc-tag-manager-table .tc-tag-label {\n\twhite-space: normal;\n}\n\n.tc-tag-manager-tag {\n\twidth: 100%;\n}\n\n/*\n** Page layout\n*/\n\n.tc-topbar {\n\tposition: fixed;\n\tz-index: 1200;\n}\n\n.tc-topbar-left {\n\tleft: 29px;\n\ttop: 5px;\n}\n\n.tc-topbar-right {\n\ttop: 5px;\n\tright: 29px;\n}\n\n.tc-topbar button {\n\tpadding: 8px;\n}\n\n.tc-topbar svg {\n\tfill: <<colour muted-foreground>>;\n}\n\n.tc-topbar button:hover svg {\n\tfill: <<colour foreground>>;\n}\n\n.tc-sidebar-header {\n\tcolor: <<colour sidebar-foreground>>;\n\tfill: <<colour sidebar-foreground>>;\n}\n\n.tc-sidebar-header .tc-title a.tc-tiddlylink-resolves {\n\tfont-weight: 300;\n}\n\n.tc-sidebar-header .tc-sidebar-lists p {\n\tmargin-top: 3px;\n\tmargin-bottom: 3px;\n}\n\n.tc-sidebar-header .tc-missing-tiddler-label {\n\tcolor: <<colour sidebar-foreground>>;\n}\n\n.tc-advanced-search input {\n\twidth: 60%;\n}\n\n.tc-search a svg {\n\twidth: 1.2em;\n\theight: 1.2em;\n\tvertical-align: middle;\n}\n\n.tc-page-controls {\n\tmargin-top: 14px;\n\tfont-size: 1.5em;\n}\n\n.tc-page-controls button {\n\tmargin-right: 0.5em;\n}\n\n.tc-page-controls a.tc-tiddlylink:hover {\n\ttext-decoration: none;\n}\n\n.tc-page-controls img {\n\twidth: 1em;\n}\n\n.tc-page-controls svg {\n\tfill: <<colour sidebar-controls-foreground>>;\n}\n\n.tc-page-controls button:hover svg, .tc-page-controls a:hover svg {\n\tfill: <<colour sidebar-controls-foreground-hover>>;\n}\n\n.tc-menu-list-item {\n\twhite-space: nowrap;\n}\n\n.tc-menu-list-count {\n\tfont-weight: bold;\n}\n\n.tc-menu-list-subitem {\n\tpadding-left: 7px;\n}\n\n.tc-story-river {\n\tposition: relative;\n}\n\n@media (max-width: {{$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint}}) {\n\n\t.tc-sidebar-header {\n\t\tpadding: 14px;\n\t\tmin-height: 32px;\n\t\tmargin-top: {{$:/themes/tiddlywiki/vanilla/metrics/storytop}};\n\t}\n\n\t.tc-story-river {\n\t\tposition: relative;\n\t\tpadding: 0;\n\t}\n}\n\n@media (min-width: {{$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint}}) {\n\n\t.tc-message-box {\n\t\tmargin: 21px -21px 21px -21px;\n\t}\n\n\t.tc-sidebar-scrollable {\n\t\tposition: fixed;\n\t\ttop: {{$:/themes/tiddlywiki/vanilla/metrics/storytop}};\n\t\tleft: {{$:/themes/tiddlywiki/vanilla/metrics/storyright}};\n\t\tbottom: 0;\n\t\tright: 0;\n\t\toverflow-y: auto;\n\t\toverflow-x: auto;\n\t\t-webkit-overflow-scrolling: touch;\n\t\tmargin: 0 0 0 -42px;\n\t\tpadding: 71px 0 28px 42px;\n\t}\n\n\t.tc-story-river {\n\t\tposition: relative;\n\t\tleft: {{$:/themes/tiddlywiki/vanilla/metrics/storyleft}};\n\t\ttop: {{$:/themes/tiddlywiki/vanilla/metrics/storytop}};\n\t\twidth: {{$:/themes/tiddlywiki/vanilla/metrics/storywidth}};\n\t\tpadding: 42px 42px 42px 42px;\n\t}\n\n<<if-no-sidebar \"\n\n\t.tc-story-river {\n\t\twidth: calc(100% - {{$:/themes/tiddlywiki/vanilla/metrics/storyleft}});\n\t}\n\n\">>\n\n}\n\n@media print {\n\n\tbody.tc-body {\n\t\tbackground-color: transparent;\n\t}\n\n\t.tc-sidebar-header, .tc-topbar {\n\t\tdisplay: none;\n\t}\n\n\t.tc-story-river {\n\t\tmargin: 0;\n\t\tpadding: 0;\n\t}\n\n\t.tc-story-river .tc-tiddler-frame {\n\t\tmargin: 0;\n\t\tborder: none;\n\t\tpadding: 28px;\n\t}\n}\n\n/*\n** Tiddler styles\n*/\n\n.tc-tiddler-frame {\n\tposition: relative;\n\tmargin-bottom: 28px;\n\tbackground-color: <<colour tiddler-background>>;\n\tborder: 1px solid <<colour tiddler-border>>;\n}\n\n{{$:/themes/tiddlywiki/vanilla/sticky}}\n\n.tc-tiddler-info {\n\tpadding: 14px 42px 14px 42px;\n\tbackground-color: <<colour tiddler-info-background>>;\n\tborder-top: 1px solid <<colour tiddler-info-border>>;\n\tborder-bottom: 1px solid <<colour tiddler-info-border>>;\n}\n\n.tc-tiddler-info p {\n\tmargin-top: 3px;\n\tmargin-bottom: 3px;\n}\n\n.tc-tiddler-info .tc-tab-buttons button.tc-tab-selected {\n\tbackground-color: <<colour tiddler-info-tab-background>>;\n\tborder-bottom: 1px solid <<colour tiddler-info-tab-background>>;\n}\n\n.tc-view-field-table {\n\twidth: 100%;\n}\n\n.tc-view-field-name {\n\twidth: 1%; /* Makes this column be as narrow as possible */\n\ttext-align: right;\n\tfont-style: italic;\n\tfont-weight: 200;\n}\n\n.tc-view-field-value {\n}\n\n@media (max-width: {{$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint}}) {\n\t.tc-tiddler-frame {\n\t\tpadding: 14px 14px 14px 14px;\n\t}\n\n\t.tc-tiddler-info {\n\t\tmargin: 0 -14px 0 -14px;\n\t}\n}\n\n@media (min-width: {{$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint}}) {\n\t.tc-tiddler-frame {\n\t\tpadding: 28px 42px 42px 42px;\n\t\twidth: {{$:/themes/tiddlywiki/vanilla/metrics/tiddlerwidth}};\n\t\tborder-radius: 2px;\n\t}\n\n<<if-no-sidebar \"\n\n\t.tc-tiddler-frame {\n\t\twidth: 100%;\n\t}\n\n\">>\n\n\t.tc-tiddler-info {\n\t\tmargin: 0 -42px 0 -42px;\n\t}\n}\n\n.tc-site-title,\n.tc-titlebar {\n\tfont-weight: 300;\n\tfont-size: 2.35em;\n\tline-height: 1.2em;\n\tcolor: <<colour tiddler-title-foreground>>;\n\tmargin: 0;\n}\n\n.tc-site-title {\n\tcolor: <<colour site-title-foreground>>;\n}\n\n.tc-tiddler-title-icon {\n\tvertical-align: middle;\n}\n\n.tc-system-title-prefix {\n\tcolor: <<colour muted-foreground>>;\n}\n\n.tc-titlebar h2 {\n\tfont-size: 1em;\n\tdisplay: inline;\n}\n\n.tc-titlebar img {\n\theight: 1em;\n}\n\n.tc-subtitle {\n\tfont-size: 0.9em;\n\tcolor: <<colour tiddler-subtitle-foreground>>;\n\tfont-weight: 300;\n}\n\n.tc-tiddler-missing .tc-title {\n font-style: italic;\n font-weight: normal;\n}\n\n.tc-tiddler-frame .tc-tiddler-controls {\n\tfloat: right;\n}\n\n.tc-tiddler-controls .tc-drop-down {\n\tfont-size: 0.6em;\n}\n\n.tc-tiddler-controls .tc-drop-down .tc-drop-down {\n\tfont-size: 1em;\n}\n\n.tc-tiddler-controls > span > button {\n\tvertical-align: baseline;\n\tmargin-left:5px;\n}\n\n.tc-tiddler-controls button svg, .tc-tiddler-controls button img,\n.tc-search button svg, .tc-search a svg {\n\theight: 0.75em;\n\tfill: <<colour tiddler-controls-foreground>>;\n}\n\n.tc-tiddler-controls button.tc-selected svg,\n.tc-page-controls button.tc-selected svg {\n\tfill: <<colour tiddler-controls-foreground-selected>>;\n}\n\n.tc-tiddler-controls button.tc-btn-invisible:hover svg,\n.tc-search button:hover svg, .tc-search a:hover svg {\n\tfill: <<colour tiddler-controls-foreground-hover>>;\n}\n\n@media print {\n\t.tc-tiddler-controls {\n\t\tdisplay: none;\n\t}\n}\n\n.tc-tiddler-help { /* Help prompts within tiddler template */\n\tcolor: <<colour muted-foreground>>;\n\tmargin-top: 14px;\n}\n\n.tc-tiddler-help a.tc-tiddlylink {\n\tcolor: <<colour very-muted-foreground>>;\n}\n\n.tc-tiddler-frame .tc-edit-texteditor {\n\twidth: 100%;\n\tmargin: 4px 0 4px 0;\n}\n\n.tc-tiddler-frame input.tc-edit-texteditor,\n.tc-tiddler-frame textarea.tc-edit-texteditor,\n.tc-tiddler-frame iframe.tc-edit-texteditor {\n\tpadding: 3px 3px 3px 3px;\n\tborder: 1px solid <<colour tiddler-editor-border>>;\n\tline-height: 1.3em;\n\t-webkit-appearance: none;\n}\n\n.tc-tiddler-frame .tc-binary-warning {\n\twidth: 100%;\n\theight: 5em;\n\ttext-align: center;\n\tpadding: 3em 3em 6em 3em;\n\tbackground: <<colour alert-background>>;\n\tborder: 1px solid <<colour alert-border>>;\n}\n\n.tc-tiddler-frame input.tc-edit-texteditor {\n\tbackground-color: <<colour tiddler-editor-background>>;\n}\n\ncanvas.tc-edit-bitmapeditor {\n\tborder: 6px solid <<colour tiddler-editor-border-image>>;\n\tcursor: crosshair;\n\t-moz-user-select: none;\n\t-webkit-user-select: none;\n\t-ms-user-select: none;\n\tmargin-top: 6px;\n\tmargin-bottom: 6px;\n}\n\n.tc-edit-bitmapeditor-width {\n\tdisplay: block;\n}\n\n.tc-edit-bitmapeditor-height {\n\tdisplay: block;\n}\n\n.tc-tiddler-body {\n\tclear: both;\n}\n\n.tc-tiddler-frame .tc-tiddler-body {\n\tfont-size: {{$:/themes/tiddlywiki/vanilla/metrics/bodyfontsize}};\n\tline-height: {{$:/themes/tiddlywiki/vanilla/metrics/bodylineheight}};\n}\n\n.tc-titlebar, .tc-tiddler-edit-title {\n\toverflow: hidden; /* https://github.com/Jermolene/TiddlyWiki5/issues/282 */\n}\n\nhtml body.tc-body.tc-single-tiddler-window {\n\tmargin: 1em;\n\tbackground: <<colour tiddler-background>>;\n}\n\n.tc-single-tiddler-window img,\n.tc-single-tiddler-window svg,\n.tc-single-tiddler-window canvas,\n.tc-single-tiddler-window embed,\n.tc-single-tiddler-window iframe {\n\tmax-width: 100%;\n}\n\n/*\n** Editor\n*/\n\n.tc-editor-toolbar {\n\tmargin-top: 8px;\n}\n\n.tc-editor-toolbar button {\n\tvertical-align: middle;\n\tbackground-color: <<colour tiddler-controls-foreground>>;\n\tfill: <<colour tiddler-controls-foreground-selected>>;\n\tborder-radius: 4px;\n\tpadding: 3px;\n\tmargin: 2px 0 2px 4px;\n}\n\n.tc-editor-toolbar button.tc-text-editor-toolbar-item-adjunct {\n\tmargin-left: 1px;\n\twidth: 1em;\n\tborder-radius: 8px;\n}\n\n.tc-editor-toolbar button.tc-text-editor-toolbar-item-start-group {\n\tmargin-left: 11px;\n}\n\n.tc-editor-toolbar button.tc-selected {\n\tbackground-color: <<colour primary>>;\n}\n\n.tc-editor-toolbar button svg {\n\twidth: 1.6em;\n\theight: 1.2em;\n}\n\n.tc-editor-toolbar button:hover {\n\tbackground-color: <<colour tiddler-controls-foreground-selected>>;\n\tfill: <<colour background>>;\n}\n\n.tc-editor-toolbar .tc-text-editor-toolbar-more {\n\twhite-space: normal;\n}\n\n.tc-editor-toolbar .tc-text-editor-toolbar-more button {\n\tdisplay: inline-block;\n\tpadding: 3px;\n\twidth: auto;\n}\n\n.tc-editor-toolbar .tc-search-results {\n\tpadding: 0;\n}\n\n/*\n** Adjustments for fluid-fixed mode\n*/\n\n@media (min-width: {{$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint}}) {\n\n<<if-fluid-fixed text:\"\"\"\n\n\t.tc-story-river {\n\t\tpadding-right: 0;\n\t\tposition: relative;\n\t\twidth: auto;\n\t\tleft: 0;\n\t\tmargin-left: {{$:/themes/tiddlywiki/vanilla/metrics/storyleft}};\n\t\tmargin-right: {{$:/themes/tiddlywiki/vanilla/metrics/sidebarwidth}};\n\t}\n\n\t.tc-tiddler-frame {\n\t\twidth: 100%;\n\t}\n\n\t.tc-sidebar-scrollable {\n\t\tleft: auto;\n\t\tbottom: 0;\n\t\tright: 0;\n\t\twidth: {{$:/themes/tiddlywiki/vanilla/metrics/sidebarwidth}};\n\t}\n\n\tbody.tc-body .tc-storyview-zoomin-tiddler {\n\t\twidth: 100%;\n\t\twidth: calc(100% - 42px);\n\t}\n\n\"\"\" hiddenSidebarText:\"\"\"\n\n\t.tc-story-river {\n\t\tpadding-right: 3em;\n\t\tmargin-right: 0;\n\t}\n\n\tbody.tc-body .tc-storyview-zoomin-tiddler {\n\t\twidth: 100%;\n\t\twidth: calc(100% - 84px);\n\t}\n\n\"\"\">>\n\n}\n\n/*\n** Toolbar buttons\n*/\n\n.tc-page-controls svg.tc-image-new-button {\n fill: <<colour toolbar-new-button>>;\n}\n\n.tc-page-controls svg.tc-image-options-button {\n fill: <<colour toolbar-options-button>>;\n}\n\n.tc-page-controls svg.tc-image-save-button {\n fill: <<colour toolbar-save-button>>;\n}\n\n.tc-tiddler-controls button svg.tc-image-info-button {\n fill: <<colour toolbar-info-button>>;\n}\n\n.tc-tiddler-controls button svg.tc-image-edit-button {\n fill: <<colour toolbar-edit-button>>;\n}\n\n.tc-tiddler-controls button svg.tc-image-close-button {\n fill: <<colour toolbar-close-button>>;\n}\n\n.tc-tiddler-controls button svg.tc-image-delete-button {\n fill: <<colour toolbar-delete-button>>;\n}\n\n.tc-tiddler-controls button svg.tc-image-cancel-button {\n fill: <<colour toolbar-cancel-button>>;\n}\n\n.tc-tiddler-controls button svg.tc-image-done-button {\n fill: <<colour toolbar-done-button>>;\n}\n\n/*\n** Tiddler edit mode\n*/\n\n.tc-tiddler-edit-frame em.tc-edit {\n\tcolor: <<colour muted-foreground>>;\n\tfont-style: normal;\n}\n\n.tc-edit-type-dropdown a.tc-tiddlylink-missing {\n\tfont-style: normal;\n}\n\n.tc-edit-tags {\n\tborder: 1px solid <<colour tiddler-editor-border>>;\n\tpadding: 4px 8px 4px 8px;\n}\n\n.tc-edit-add-tag {\n\tdisplay: inline-block;\n}\n\n.tc-edit-add-tag .tc-add-tag-name input {\n\twidth: 50%;\n}\n\n.tc-edit-tags .tc-tag-label {\n\tdisplay: inline-block;\n}\n\n.tc-edit-tags-list {\n\tmargin: 14px 0 14px 0;\n}\n\n.tc-remove-tag-button {\n\tpadding-left: 4px;\n}\n\n.tc-tiddler-preview {\n\toverflow: auto;\n}\n\n.tc-tiddler-preview-preview {\n\tfloat: right;\n\twidth: 49%;\n\tborder: 1px solid <<colour tiddler-editor-border>>;\n\tmargin: 4px 3px 3px 3px;\n\tpadding: 3px 3px 3px 3px;\n}\n\n.tc-tiddler-frame .tc-tiddler-preview .tc-edit-texteditor {\n\twidth: 49%;\n}\n\n.tc-tiddler-frame .tc-tiddler-preview canvas.tc-edit-bitmapeditor {\n\tmax-width: 49%;\n}\n\n.tc-edit-fields {\n\twidth: 100%;\n}\n\n\n.tc-edit-fields table, .tc-edit-fields tr, .tc-edit-fields td {\n\tborder: none;\n\tpadding: 4px;\n}\n\n.tc-edit-fields > tbody > .tc-edit-field:nth-child(odd) {\n\tbackground-color: <<colour tiddler-editor-fields-odd>>;\n}\n\n.tc-edit-fields > tbody > .tc-edit-field:nth-child(even) {\n\tbackground-color: <<colour tiddler-editor-fields-even>>;\n}\n\n.tc-edit-field-name {\n\ttext-align: right;\n}\n\n.tc-edit-field-value input {\n\twidth: 100%;\n}\n\n.tc-edit-field-remove {\n}\n\n.tc-edit-field-remove svg {\n\theight: 1em;\n\twidth: 1em;\n\tfill: <<colour muted-foreground>>;\n\tvertical-align: middle;\n}\n\n.tc-edit-field-add-name {\n\tdisplay: inline-block;\n\twidth: 15%;\n}\n\n.tc-edit-field-add-value {\n\tdisplay: inline-block;\n\twidth: 40%;\n}\n\n.tc-edit-field-add-button {\n\tdisplay: inline-block;\n\twidth: 10%;\n}\n\n/*\n** Storyview Classes\n*/\n\n.tc-storyview-zoomin-tiddler {\n\tposition: absolute;\n\tdisplay: block;\n\twidth: 100%;\n}\n\n@media (min-width: {{$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint}}) {\n\n\t.tc-storyview-zoomin-tiddler {\n\t\twidth: calc(100% - 84px);\n\t}\n\n}\n\n/*\n** Dropdowns\n*/\n\n.tc-btn-dropdown {\n\ttext-align: left;\n}\n\n.tc-btn-dropdown svg, .tc-btn-dropdown img {\n\theight: 1em;\n\twidth: 1em;\n\tfill: <<colour muted-foreground>>;\n}\n\n.tc-drop-down-wrapper {\n\tposition: relative;\n}\n\n.tc-drop-down {\n\tmin-width: 380px;\n\tborder: 1px solid <<colour dropdown-border>>;\n\tbackground-color: <<colour dropdown-background>>;\n\tpadding: 7px 0 7px 0;\n\tmargin: 4px 0 0 0;\n\twhite-space: nowrap;\n\ttext-shadow: none;\n\tline-height: 1.4;\n}\n\n.tc-drop-down .tc-drop-down {\n\tmargin-left: 14px;\n}\n\n.tc-drop-down button svg, .tc-drop-down a svg {\n\tfill: <<colour foreground>>;\n}\n\n.tc-drop-down button.tc-btn-invisible:hover svg {\n\tfill: <<colour foreground>>;\n}\n\n.tc-drop-down p {\n\tpadding: 0 14px 0 14px;\n}\n\n.tc-drop-down svg {\n\twidth: 1em;\n\theight: 1em;\n}\n\n.tc-drop-down img {\n\twidth: 1em;\n}\n\n.tc-drop-down-language-chooser img {\n\twidth: 2em;\n\tvertical-align: baseline;\n}\n\n.tc-drop-down a, .tc-drop-down button {\n\tdisplay: block;\n\tpadding: 0 14px 0 14px;\n\twidth: 100%;\n\ttext-align: left;\n\tcolor: <<colour foreground>>;\n\tline-height: 1.4;\n}\n\n.tc-drop-down .tc-tab-set .tc-tab-buttons button {\n\tdisplay: inline-block;\n width: auto;\n margin-bottom: 0px;\n border-bottom-left-radius: 0;\n border-bottom-right-radius: 0;\n}\n\n.tc-drop-down .tc-prompt {\n\tpadding: 0 14px;\n}\n\n.tc-drop-down .tc-chooser {\n\tborder: none;\n}\n\n.tc-drop-down .tc-chooser .tc-swatches-horiz {\n\tfont-size: 0.4em;\n\tpadding-left: 1.2em;\n}\n\n.tc-drop-down .tc-file-input-wrapper {\n\twidth: 100%;\n}\n\n.tc-drop-down .tc-file-input-wrapper button {\n\tcolor: <<colour foreground>>;\n}\n\n.tc-drop-down a:hover, .tc-drop-down button:hover, .tc-drop-down .tc-file-input-wrapper:hover button {\n\tcolor: <<colour tiddler-link-background>>;\n\tbackground-color: <<colour tiddler-link-foreground>>;\n\ttext-decoration: none;\n}\n\n.tc-drop-down .tc-tab-buttons button {\n\tbackground-color: <<colour dropdown-tab-background>>;\n}\n\n.tc-drop-down .tc-tab-buttons button.tc-tab-selected {\n\tbackground-color: <<colour dropdown-tab-background-selected>>;\n\tborder-bottom: 1px solid <<colour dropdown-tab-background-selected>>;\n}\n\n.tc-drop-down-bullet {\n\tdisplay: inline-block;\n\twidth: 0.5em;\n}\n\n.tc-drop-down .tc-tab-contents a {\n\tpadding: 0 0.5em 0 0.5em;\n}\n\n.tc-block-dropdown-wrapper {\n\tposition: relative;\n}\n\n.tc-block-dropdown {\n\tposition: absolute;\n\tmin-width: 220px;\n\tborder: 1px solid <<colour dropdown-border>>;\n\tbackground-color: <<colour dropdown-background>>;\n\tpadding: 7px 0;\n\tmargin: 4px 0 0 0;\n\twhite-space: nowrap;\n\tz-index: 1000;\n\ttext-shadow: none;\n}\n\n.tc-block-dropdown.tc-search-drop-down {\n\tmargin-left: -12px;\n}\n\n.tc-block-dropdown a {\n\tdisplay: block;\n\tpadding: 4px 14px 4px 14px;\n}\n\n.tc-block-dropdown.tc-search-drop-down a {\n\tdisplay: block;\n\tpadding: 0px 10px 0px 10px;\n}\n\n.tc-drop-down .tc-dropdown-item-plain,\n.tc-block-dropdown .tc-dropdown-item-plain {\n\tpadding: 4px 14px 4px 7px;\n}\n\n.tc-drop-down .tc-dropdown-item,\n.tc-block-dropdown .tc-dropdown-item {\n\tpadding: 4px 14px 4px 7px;\n\tcolor: <<colour muted-foreground>>;\n}\n\n.tc-block-dropdown a:hover {\n\tcolor: <<colour tiddler-link-background>>;\n\tbackground-color: <<colour tiddler-link-foreground>>;\n\ttext-decoration: none;\n}\n\n.tc-search-results {\n\tpadding: 0 7px 0 7px;\n}\n\n.tc-image-chooser, .tc-colour-chooser {\n\twhite-space: normal;\n}\n\n.tc-image-chooser a,\n.tc-colour-chooser a {\n\tdisplay: inline-block;\n\tvertical-align: top;\n\ttext-align: center;\n\tposition: relative;\n}\n\n.tc-image-chooser a {\n\tborder: 1px solid <<colour muted-foreground>>;\n\tpadding: 2px;\n\tmargin: 2px;\n\twidth: 4em;\n\theight: 4em;\n}\n\n.tc-colour-chooser a {\n\tpadding: 3px;\n\twidth: 2em;\n\theight: 2em;\n\tvertical-align: middle;\n}\n\n.tc-image-chooser a:hover,\n.tc-colour-chooser a:hover {\n\tbackground: <<colour primary>>;\n\tpadding: 0px;\n\tborder: 3px solid <<colour primary>>;\n}\n\n.tc-image-chooser a svg,\n.tc-image-chooser a img {\n\tdisplay: inline-block;\n\twidth: auto;\n\theight: auto;\n\tmax-width: 3.5em;\n\tmax-height: 3.5em;\n\tposition: absolute;\n\ttop: 0;\n\tbottom: 0;\n\tleft: 0;\n\tright: 0;\n\tmargin: auto;\n}\n\n/*\n** Modals\n*/\n\n.tc-modal-wrapper {\n\tposition: fixed;\n\toverflow: auto;\n\toverflow-y: scroll;\n\ttop: 0;\n\tright: 0;\n\tbottom: 0;\n\tleft: 0;\n\tz-index: 900;\n}\n\n.tc-modal-backdrop {\n\tposition: fixed;\n\ttop: 0;\n\tright: 0;\n\tbottom: 0;\n\tleft: 0;\n\tz-index: 1000;\n\tbackground-color: <<colour modal-backdrop>>;\n}\n\n.tc-modal {\n\tz-index: 1100;\n\tbackground-color: <<colour modal-background>>;\n\tborder: 1px solid <<colour modal-border>>;\n}\n\n@media (max-width: 55em) {\n\t.tc-modal {\n\t\tposition: fixed;\n\t\ttop: 1em;\n\t\tleft: 1em;\n\t\tright: 1em;\n\t}\n\n\t.tc-modal-body {\n\t\toverflow-y: auto;\n\t\tmax-height: 400px;\n\t\tmax-height: 60vh;\n\t}\n}\n\n@media (min-width: 55em) {\n\t.tc-modal {\n\t\tposition: fixed;\n\t\ttop: 2em;\n\t\tleft: 25%;\n\t\twidth: 50%;\n\t}\n\n\t.tc-modal-body {\n\t\toverflow-y: auto;\n\t\tmax-height: 400px;\n\t\tmax-height: 60vh;\n\t}\n}\n\n.tc-modal-header {\n\tpadding: 9px 15px;\n\tborder-bottom: 1px solid <<colour modal-header-border>>;\n}\n\n.tc-modal-header h3 {\n\tmargin: 0;\n\tline-height: 30px;\n}\n\n.tc-modal-header img, .tc-modal-header svg {\n\twidth: 1em;\n\theight: 1em;\n}\n\n.tc-modal-body {\n\tpadding: 15px;\n}\n\n.tc-modal-footer {\n\tpadding: 14px 15px 15px;\n\tmargin-bottom: 0;\n\ttext-align: right;\n\tbackground-color: <<colour modal-footer-background>>;\n\tborder-top: 1px solid <<colour modal-footer-border>>;\n}\n\n/*\n** Notifications\n*/\n\n.tc-notification {\n\tposition: fixed;\n\ttop: 14px;\n\tright: 42px;\n\tz-index: 1300;\n\tmax-width: 280px;\n\tpadding: 0 14px 0 14px;\n\tbackground-color: <<colour notification-background>>;\n\tborder: 1px solid <<colour notification-border>>;\n}\n\n/*\n** Tabs\n*/\n\n.tc-tab-set.tc-vertical {\n\tdisplay: -webkit-flex;\n\tdisplay: flex;\n}\n\n.tc-tab-buttons {\n\tfont-size: 0.85em;\n\tpadding-top: 1em;\n\tmargin-bottom: -2px;\n}\n\n.tc-tab-buttons.tc-vertical {\n\tz-index: 100;\n\tdisplay: block;\n\tpadding-top: 14px;\n\tvertical-align: top;\n\ttext-align: right;\n\tmargin-bottom: inherit;\n\tmargin-right: -1px;\n\tmax-width: 33%;\n\t-webkit-flex: 0 0 auto;\n\tflex: 0 0 auto;\n}\n\n.tc-tab-buttons button.tc-tab-selected {\n\tcolor: <<colour tab-foreground-selected>>;\n\tbackground-color: <<colour tab-background-selected>>;\n\tborder-left: 1px solid <<colour tab-border-selected>>;\n\tborder-top: 1px solid <<colour tab-border-selected>>;\n\tborder-right: 1px solid <<colour tab-border-selected>>;\n}\n\n.tc-tab-buttons button {\n\tcolor: <<colour tab-foreground>>;\n\tpadding: 3px 5px 3px 5px;\n\tmargin-right: 0.3em;\n\tfont-weight: 300;\n\tborder: none;\n\tbackground: inherit;\n\tbackground-color: <<colour tab-background>>;\n\tborder-left: 1px solid <<colour tab-border>>;\n\tborder-top: 1px solid <<colour tab-border>>;\n\tborder-right: 1px solid <<colour tab-border>>;\n\tborder-top-left-radius: 2px;\n\tborder-top-right-radius: 2px;\n}\n\n.tc-tab-buttons.tc-vertical button {\n\tdisplay: block;\n\twidth: 100%;\n\tmargin-top: 3px;\n\tmargin-right: 0;\n\ttext-align: right;\n\tbackground-color: <<colour tab-background>>;\n\tborder-left: 1px solid <<colour tab-border>>;\n\tborder-bottom: 1px solid <<colour tab-border>>;\n\tborder-right: none;\n\tborder-top-left-radius: 2px;\n\tborder-bottom-left-radius: 2px;\n}\n\n.tc-tab-buttons.tc-vertical button.tc-tab-selected {\n\tbackground-color: <<colour tab-background-selected>>;\n\tborder-right: 1px solid <<colour tab-background-selected>>;\n}\n\n.tc-tab-divider {\n\tborder-top: 1px solid <<colour tab-divider>>;\n}\n\n.tc-tab-divider.tc-vertical {\n\tdisplay: none;\n}\n\n.tc-tab-content {\n\tmargin-top: 14px;\n}\n\n.tc-tab-content.tc-vertical {\n\tdisplay: inline-block;\n\tvertical-align: top;\n\tpadding-top: 0;\n\tpadding-left: 14px;\n\tborder-left: 1px solid <<colour tab-border>>;\n\t-webkit-flex: 1 0 70%;\n\tflex: 1 0 70%;\n}\n\n.tc-sidebar-lists .tc-tab-buttons {\n\tmargin-bottom: -1px;\n}\n\n.tc-sidebar-lists .tc-tab-buttons button.tc-tab-selected {\n\tbackground-color: <<colour sidebar-tab-background-selected>>;\n\tcolor: <<colour sidebar-tab-foreground-selected>>;\n\tborder-left: 1px solid <<colour sidebar-tab-border-selected>>;\n\tborder-top: 1px solid <<colour sidebar-tab-border-selected>>;\n\tborder-right: 1px solid <<colour sidebar-tab-border-selected>>;\n}\n\n.tc-sidebar-lists .tc-tab-buttons button {\n\tbackground-color: <<colour sidebar-tab-background>>;\n\tcolor: <<colour sidebar-tab-foreground>>;\n\tborder-left: 1px solid <<colour sidebar-tab-border>>;\n\tborder-top: 1px solid <<colour sidebar-tab-border>>;\n\tborder-right: 1px solid <<colour sidebar-tab-border>>;\n}\n\n.tc-sidebar-lists .tc-tab-divider {\n\tborder-top: 1px solid <<colour sidebar-tab-divider>>;\n}\n\n.tc-more-sidebar .tc-tab-buttons button {\n\tdisplay: block;\n\twidth: 100%;\n\tbackground-color: <<colour sidebar-tab-background>>;\n\tborder-top: none;\n\tborder-left: none;\n\tborder-bottom: none;\n\tborder-right: 1px solid #ccc;\n\tmargin-bottom: inherit;\n}\n\n.tc-more-sidebar .tc-tab-buttons button.tc-tab-selected {\n\tbackground-color: <<colour sidebar-tab-background-selected>>;\n\tborder: none;\n}\n\n/*\n** Alerts\n*/\n\n.tc-alerts {\n\tposition: fixed;\n\ttop: 0;\n\tleft: 0;\n\tmax-width: 500px;\n\tz-index: 20000;\n}\n\n.tc-alert {\n\tposition: relative;\n\tmargin: 28px;\n\tpadding: 14px 14px 14px 14px;\n\tborder: 2px solid <<colour alert-border>>;\n\tbackground-color: <<colour alert-background>>;\n}\n\n.tc-alert-toolbar {\n\tposition: absolute;\n\ttop: 14px;\n\tright: 14px;\n}\n\n.tc-alert-toolbar svg {\n\tfill: <<colour alert-muted-foreground>>;\n}\n\n.tc-alert-subtitle {\n\tcolor: <<colour alert-muted-foreground>>;\n\tfont-weight: bold;\n}\n\n.tc-alert-highlight {\n\tcolor: <<colour alert-highlight>>;\n}\n\n@media (min-width: {{$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint}}) {\n\n\t.tc-static-alert {\n\t\tposition: relative;\n\t}\n\n\t.tc-static-alert-inner {\n\t\tposition: absolute;\n\t\tz-index: 100;\n\t}\n\n}\n\n.tc-static-alert-inner {\n\tpadding: 0 2px 2px 42px;\n\tcolor: <<colour static-alert-foreground>>;\n}\n\n/*\n** Control panel\n*/\n\n.tc-control-panel td {\n\tpadding: 4px;\n}\n\n.tc-control-panel table, .tc-control-panel table input, .tc-control-panel table textarea {\n\twidth: 100%;\n}\n\n.tc-plugin-info {\n\tdisplay: block;\n\tborder: 1px solid <<colour muted-foreground>>;\n\tbackground-colour: <<colour background>>;\n\tmargin: 0.5em 0 0.5em 0;\n\tpadding: 4px;\n}\n\n.tc-plugin-info-disabled {\n\tbackground: -webkit-repeating-linear-gradient(45deg, #ff0, #ff0 10px, #eee 10px, #eee 20px);\n\tbackground: repeating-linear-gradient(45deg, #ff0, #ff0 10px, #eee 10px, #eee 20px);\n}\n\n.tc-plugin-info-disabled:hover {\n\tbackground: -webkit-repeating-linear-gradient(45deg, #aa0, #aa0 10px, #888 10px, #888 20px);\n\tbackground: repeating-linear-gradient(45deg, #aa0, #aa0 10px, #888 10px, #888 20px);\n}\n\na.tc-tiddlylink.tc-plugin-info:hover {\n\ttext-decoration: none;\n\tbackground-color: <<colour primary>>;\n\tcolor: <<colour background>>;\n\tfill: <<colour foreground>>;\n}\n\na.tc-tiddlylink.tc-plugin-info:hover .tc-plugin-info > .tc-plugin-info-chunk > svg {\n\tfill: <<colour foreground>>;\n}\n\n.tc-plugin-info-chunk {\n\tdisplay: inline-block;\n\tvertical-align: middle;\n}\n\n.tc-plugin-info-chunk h1 {\n\tfont-size: 1em;\n\tmargin: 2px 0 2px 0;\n}\n\n.tc-plugin-info-chunk h2 {\n\tfont-size: 0.8em;\n\tmargin: 2px 0 2px 0;\n}\n\n.tc-plugin-info-chunk div {\n\tfont-size: 0.7em;\n\tmargin: 2px 0 2px 0;\n}\n\n.tc-plugin-info:hover > .tc-plugin-info-chunk > img, .tc-plugin-info:hover > .tc-plugin-info-chunk > svg {\n\twidth: 2em;\n\theight: 2em;\n\tfill: <<colour foreground>>;\n}\n\n.tc-plugin-info > .tc-plugin-info-chunk > img, .tc-plugin-info > .tc-plugin-info-chunk > svg {\n\twidth: 2em;\n\theight: 2em;\n\tfill: <<colour muted-foreground>>;\n}\n\n.tc-plugin-info.tc-small-icon > .tc-plugin-info-chunk > img, .tc-plugin-info.tc-small-icon > .tc-plugin-info-chunk > svg {\n\twidth: 1em;\n\theight: 1em;\n}\n\n.tc-plugin-info-dropdown {\n\tborder: 1px solid <<colour muted-foreground>>;\n\tmargin-top: -8px;\n}\n\n.tc-plugin-info-dropdown-message {\n\tbackground: <<colour message-background>>;\n\tpadding: 0.5em 1em 0.5em 1em;\n\tfont-weight: bold;\n\tfont-size: 0.8em;\n}\n\n.tc-plugin-info-dropdown-body {\n\tpadding: 1em 1em 1em 1em;\n}\n\n/*\n** Message boxes\n*/\n\n.tc-message-box {\n\tborder: 1px solid <<colour message-border>>;\n\tbackground: <<colour message-background>>;\n\tpadding: 0px 21px 0px 21px;\n\tfont-size: 12px;\n\tline-height: 18px;\n\tcolor: <<colour message-foreground>>;\n}\n\n/*\n** Pictures\n*/\n\n.tc-bordered-image {\n\tborder: 1px solid <<colour muted-foreground>>;\n\tpadding: 5px;\n\tmargin: 5px;\n}\n\n/*\n** Floats\n*/\n\n.tc-float-right {\n\tfloat: right;\n}\n\n/*\n** Chooser\n*/\n\n.tc-chooser {\n\tborder: 1px solid <<colour table-border>>;\n}\n\n.tc-chooser-item {\n\tborder: 8px;\n\tpadding: 2px 4px;\n}\n\n.tc-chooser-item a.tc-tiddlylink {\n\tdisplay: block;\n\ttext-decoration: none;\n\tcolor: <<colour tiddler-link-foreground>>;\n\tbackground-color: <<colour tiddler-link-background>>;\n}\n\n.tc-chooser-item a.tc-tiddlylink:hover {\n\ttext-decoration: none;\n\tcolor: <<colour tiddler-link-background>>;\n\tbackground-color: <<colour tiddler-link-foreground>>;\n}\n\n/*\n** Palette swatches\n*/\n\n.tc-swatches-horiz {\n}\n\n.tc-swatches-horiz .tc-swatch {\n\tdisplay: inline-block;\n}\n\n.tc-swatch {\n\twidth: 2em;\n\theight: 2em;\n\tmargin: 0.4em;\n\tborder: 1px solid #888;\n}\n\n/*\n** Table of contents\n*/\n\n.tc-sidebar-lists .tc-table-of-contents {\n\twhite-space: nowrap;\n}\n\n.tc-table-of-contents button {\n\tcolor: <<colour sidebar-foreground>>;\n}\n\n.tc-table-of-contents svg {\n\twidth: 0.7em;\n\theight: 0.7em;\n\tvertical-align: middle;\n\tfill: <<colour sidebar-foreground>>;\n}\n\n.tc-table-of-contents ol {\n\tlist-style-type: none;\n\tpadding-left: 0;\n}\n\n.tc-table-of-contents ol ol {\n\tpadding-left: 1em;\n}\n\n.tc-table-of-contents li {\n\tfont-size: 1.0em;\n\tfont-weight: bold;\n}\n\n.tc-table-of-contents li a {\n\tfont-weight: bold;\n}\n\n.tc-table-of-contents li li {\n\tfont-size: 0.95em;\n\tfont-weight: normal;\n\tline-height: 1.4;\n}\n\n.tc-table-of-contents li li a {\n\tfont-weight: normal;\n}\n\n.tc-table-of-contents li li li {\n\tfont-size: 0.95em;\n\tfont-weight: 200;\n\tline-height: 1.5;\n}\n\n.tc-table-of-contents li li li a {\n\tfont-weight: bold;\n}\n\n.tc-table-of-contents li li li li {\n\tfont-size: 0.95em;\n\tfont-weight: 200;\n}\n\n.tc-tabbed-table-of-contents {\n\tdisplay: -webkit-flex;\n\tdisplay: flex;\n}\n\n.tc-tabbed-table-of-contents .tc-table-of-contents {\n\tz-index: 100;\n\tdisplay: inline-block;\n\tpadding-left: 1em;\n\tmax-width: 50%;\n\t-webkit-flex: 0 0 auto;\n\tflex: 0 0 auto;\n\tbackground: <<colour tab-background>>;\n\tborder-left: 1px solid <<colour tab-border>>;\n\tborder-top: 1px solid <<colour tab-border>>;\n\tborder-bottom: 1px solid <<colour tab-border>>;\n}\n\n.tc-tabbed-table-of-contents .tc-table-of-contents .toc-item > a,\n.tc-tabbed-table-of-contents .tc-table-of-contents .toc-item-selected > a {\n\tdisplay: block;\n\tpadding: 0.12em 1em 0.12em 0.25em;\n}\n\n.tc-tabbed-table-of-contents .tc-table-of-contents .toc-item > a {\n\tborder-top: 1px solid <<colour tab-background>>;\n\tborder-left: 1px solid <<colour tab-background>>;\n\tborder-bottom: 1px solid <<colour tab-background>>;\n}\n\n.tc-tabbed-table-of-contents .tc-table-of-contents .toc-item > a:hover {\n\ttext-decoration: none;\n\tborder-top: 1px solid <<colour tab-border>>;\n\tborder-left: 1px solid <<colour tab-border>>;\n\tborder-bottom: 1px solid <<colour tab-border>>;\n\tbackground: <<colour tab-border>>;\n}\n\n.tc-tabbed-table-of-contents .tc-table-of-contents .toc-item-selected > a {\n\tborder-top: 1px solid <<colour tab-border>>;\n\tborder-left: 1px solid <<colour tab-border>>;\n\tborder-bottom: 1px solid <<colour tab-border>>;\n\tbackground: <<colour background>>;\n\tmargin-right: -1px;\n}\n\n.tc-tabbed-table-of-contents .tc-table-of-contents .toc-item-selected > a:hover {\n\ttext-decoration: none;\n}\n\n.tc-tabbed-table-of-contents .tc-tabbed-table-of-contents-content {\n\tdisplay: inline-block;\n\tvertical-align: top;\n\tpadding-left: 1.5em;\n\tpadding-right: 1.5em;\n\tborder: 1px solid <<colour tab-border>>;\n\t-webkit-flex: 1 0 50%;\n\tflex: 1 0 50%;\n}\n\n/*\n** Dirty indicator\n*/\n\nbody.tc-dirty span.tc-dirty-indicator, body.tc-dirty span.tc-dirty-indicator svg {\n\tfill: <<colour dirty-indicator>>;\n\tcolor: <<colour dirty-indicator>>;\n}\n\n/*\n** File inputs\n*/\n\n.tc-file-input-wrapper {\n\tposition: relative;\n\toverflow: hidden;\n\tdisplay: inline-block;\n\tvertical-align: middle;\n}\n\n.tc-file-input-wrapper input[type=file] {\n\tposition: absolute;\n\ttop: 0;\n\tleft: 0;\n\tright: 0;\n\tbottom: 0;\n\tfont-size: 999px;\n\tmax-width: 100%;\n\tmax-height: 100%;\n\tfilter: alpha(opacity=0);\n\topacity: 0;\n\toutline: none;\n\tbackground: white;\n\tcursor: pointer;\n\tdisplay: inline-block;\n}\n\n/*\n** Thumbnail macros\n*/\n\n.tc-thumbnail-wrapper {\n\tposition: relative;\n\tdisplay: inline-block;\n\tmargin: 6px;\n\tvertical-align: top;\n}\n\n.tc-thumbnail-right-wrapper {\n\tfloat:right;\n\tmargin: 0.5em 0 0.5em 0.5em;\n}\n\n.tc-thumbnail-image {\n\ttext-align: center;\n\toverflow: hidden;\n\tborder-radius: 3px;\n}\n\n.tc-thumbnail-image svg,\n.tc-thumbnail-image img {\n\tfilter: alpha(opacity=1);\n\topacity: 1;\n\tmin-width: 100%;\n\tmin-height: 100%;\n\tmax-width: 100%;\n}\n\n.tc-thumbnail-wrapper:hover .tc-thumbnail-image svg,\n.tc-thumbnail-wrapper:hover .tc-thumbnail-image img {\n\tfilter: alpha(opacity=0.8);\n\topacity: 0.8;\n}\n\n.tc-thumbnail-background {\n\tposition: absolute;\n\tborder-radius: 3px;\n}\n\n.tc-thumbnail-icon svg,\n.tc-thumbnail-icon img {\n\twidth: 3em;\n\theight: 3em;\n\t<<filter \"drop-shadow(2px 2px 4px rgba(0,0,0,0.3))\">>\n}\n\n.tc-thumbnail-wrapper:hover .tc-thumbnail-icon svg,\n.tc-thumbnail-wrapper:hover .tc-thumbnail-icon img {\n\tfill: #fff;\n\t<<filter \"drop-shadow(3px 3px 4px rgba(0,0,0,0.6))\">>\n}\n\n.tc-thumbnail-icon {\n\tposition: absolute;\n\ttop: 0;\n\tleft: 0;\n\tright: 0;\n\tbottom: 0;\n\tdisplay: -webkit-flex;\n\t-webkit-align-items: center;\n\t-webkit-justify-content: center;\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n}\n\n.tc-thumbnail-caption {\n\tposition: absolute;\n\tbackground-color: #777;\n\tcolor: #fff;\n\ttext-align: center;\n\tbottom: 0;\n\twidth: 100%;\n\tfilter: alpha(opacity=0.9);\n\topacity: 0.9;\n\tline-height: 1.4;\n\tborder-bottom-left-radius: 3px;\n\tborder-bottom-right-radius: 3px;\n}\n\n.tc-thumbnail-wrapper:hover .tc-thumbnail-caption {\n\tfilter: alpha(opacity=1);\n\topacity: 1;\n}\n\n/*\n** Errors\n*/\n\n.tc-error {\n\tbackground: #f00;\n\tcolor: #fff;\n}\n" }, "$:/themes/tiddlywiki/vanilla/metrics/bodyfontsize": { "title": "$:/themes/tiddlywiki/vanilla/metrics/bodyfontsize", "text": "15px" }, "$:/themes/tiddlywiki/vanilla/metrics/bodylineheight": { "title": "$:/themes/tiddlywiki/vanilla/metrics/bodylineheight", "text": "22px" }, "$:/themes/tiddlywiki/vanilla/metrics/fontsize": { "title": "$:/themes/tiddlywiki/vanilla/metrics/fontsize", "text": "14px" }, "$:/themes/tiddlywiki/vanilla/metrics/lineheight": { "title": "$:/themes/tiddlywiki/vanilla/metrics/lineheight", "text": "20px" }, "$:/themes/tiddlywiki/vanilla/metrics/storyleft": { "title": "$:/themes/tiddlywiki/vanilla/metrics/storyleft", "text": "0px" }, "$:/themes/tiddlywiki/vanilla/metrics/storytop": { "title": "$:/themes/tiddlywiki/vanilla/metrics/storytop", "text": "0px" }, "$:/themes/tiddlywiki/vanilla/metrics/storyright": { "title": "$:/themes/tiddlywiki/vanilla/metrics/storyright", "text": "770px" }, "$:/themes/tiddlywiki/vanilla/metrics/storywidth": { "title": "$:/themes/tiddlywiki/vanilla/metrics/storywidth", "text": "770px" }, "$:/themes/tiddlywiki/vanilla/metrics/tiddlerwidth": { "title": "$:/themes/tiddlywiki/vanilla/metrics/tiddlerwidth", "text": "686px" }, "$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint": { "title": "$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint", "text": "960px" }, "$:/themes/tiddlywiki/vanilla/metrics/sidebarwidth": { "title": "$:/themes/tiddlywiki/vanilla/metrics/sidebarwidth", "text": "350px" }, "$:/themes/tiddlywiki/vanilla/options/stickytitles": { "title": "$:/themes/tiddlywiki/vanilla/options/stickytitles", "text": "no" }, "$:/themes/tiddlywiki/vanilla/options/sidebarlayout": { "title": "$:/themes/tiddlywiki/vanilla/options/sidebarlayout", "text": "fixed-fluid" }, "$:/themes/tiddlywiki/vanilla/options/codewrapping": { "title": "$:/themes/tiddlywiki/vanilla/options/codewrapping", "text": "pre-wrap" }, "$:/themes/tiddlywiki/vanilla/reset": { "title": "$:/themes/tiddlywiki/vanilla/reset", "type": "text/plain", "text": "/*! normalize.css v3.0.0 | MIT License | git.io/normalize */\n\n/**\n * 1. Set default font family to sans-serif.\n * 2. Prevent iOS text size adjust after orientation change, without disabling\n * user zoom.\n */\n\nhtml {\n font-family: sans-serif; /* 1 */\n -ms-text-size-adjust: 100%; /* 2 */\n -webkit-text-size-adjust: 100%; /* 2 */\n}\n\n/**\n * Remove default margin.\n */\n\nbody {\n margin: 0;\n}\n\n/* HTML5 display definitions\n ========================================================================== */\n\n/**\n * Correct `block` display not defined in IE 8/9.\n */\n\narticle,\naside,\ndetails,\nfigcaption,\nfigure,\nfooter,\nheader,\nhgroup,\nmain,\nnav,\nsection,\nsummary {\n display: block;\n}\n\n/**\n * 1. Correct `inline-block` display not defined in IE 8/9.\n * 2. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera.\n */\n\naudio,\ncanvas,\nprogress,\nvideo {\n display: inline-block; /* 1 */\n vertical-align: baseline; /* 2 */\n}\n\n/**\n * Prevent modern browsers from displaying `audio` without controls.\n * Remove excess height in iOS 5 devices.\n */\n\naudio:not([controls]) {\n display: none;\n height: 0;\n}\n\n/**\n * Address `[hidden]` styling not present in IE 8/9.\n * Hide the `template` element in IE, Safari, and Firefox < 22.\n */\n\n[hidden],\ntemplate {\n display: none;\n}\n\n/* Links\n ========================================================================== */\n\n/**\n * Remove the gray background color from active links in IE 10.\n */\n\na {\n background: transparent;\n}\n\n/**\n * Improve readability when focused and also mouse hovered in all browsers.\n */\n\na:active,\na:hover {\n outline: 0;\n}\n\n/* Text-level semantics\n ========================================================================== */\n\n/**\n * Address styling not present in IE 8/9, Safari 5, and Chrome.\n */\n\nabbr[title] {\n border-bottom: 1px dotted;\n}\n\n/**\n * Address style set to `bolder` in Firefox 4+, Safari 5, and Chrome.\n */\n\nb,\nstrong {\n font-weight: bold;\n}\n\n/**\n * Address styling not present in Safari 5 and Chrome.\n */\n\ndfn {\n font-style: italic;\n}\n\n/**\n * Address variable `h1` font-size and margin within `section` and `article`\n * contexts in Firefox 4+, Safari 5, and Chrome.\n */\n\nh1 {\n font-size: 2em;\n margin: 0.67em 0;\n}\n\n/**\n * Address styling not present in IE 8/9.\n */\n\nmark {\n background: #ff0;\n color: #000;\n}\n\n/**\n * Address inconsistent and variable font size in all browsers.\n */\n\nsmall {\n font-size: 80%;\n}\n\n/**\n * Prevent `sub` and `sup` affecting `line-height` in all browsers.\n */\n\nsub,\nsup {\n font-size: 75%;\n line-height: 0;\n position: relative;\n vertical-align: baseline;\n}\n\nsup {\n top: -0.5em;\n}\n\nsub {\n bottom: -0.25em;\n}\n\n/* Embedded content\n ========================================================================== */\n\n/**\n * Remove border when inside `a` element in IE 8/9.\n */\n\nimg {\n border: 0;\n}\n\n/**\n * Correct overflow displayed oddly in IE 9.\n */\n\nsvg:not(:root) {\n overflow: hidden;\n}\n\n/* Grouping content\n ========================================================================== */\n\n/**\n * Address margin not present in IE 8/9 and Safari 5.\n */\n\nfigure {\n margin: 1em 40px;\n}\n\n/**\n * Address differences between Firefox and other browsers.\n */\n\nhr {\n -moz-box-sizing: content-box;\n box-sizing: content-box;\n height: 0;\n}\n\n/**\n * Contain overflow in all browsers.\n */\n\npre {\n overflow: auto;\n}\n\n/**\n * Address odd `em`-unit font size rendering in all browsers.\n */\n\ncode,\nkbd,\npre,\nsamp {\n font-family: monospace, monospace;\n font-size: 1em;\n}\n\n/* Forms\n ========================================================================== */\n\n/**\n * Known limitation: by default, Chrome and Safari on OS X allow very limited\n * styling of `select`, unless a `border` property is set.\n */\n\n/**\n * 1. Correct color not being inherited.\n * Known issue: affects color of disabled elements.\n * 2. Correct font properties not being inherited.\n * 3. Address margins set differently in Firefox 4+, Safari 5, and Chrome.\n */\n\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n color: inherit; /* 1 */\n font: inherit; /* 2 */\n margin: 0; /* 3 */\n}\n\n/**\n * Address `overflow` set to `hidden` in IE 8/9/10.\n */\n\nbutton {\n overflow: visible;\n}\n\n/**\n * Address inconsistent `text-transform` inheritance for `button` and `select`.\n * All other form control elements do not inherit `text-transform` values.\n * Correct `button` style inheritance in Firefox, IE 8+, and Opera\n * Correct `select` style inheritance in Firefox.\n */\n\nbutton,\nselect {\n text-transform: none;\n}\n\n/**\n * 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio`\n * and `video` controls.\n * 2. Correct inability to style clickable `input` types in iOS.\n * 3. Improve usability and consistency of cursor style between image-type\n * `input` and others.\n */\n\nbutton,\nhtml input[type=\"button\"], /* 1 */\ninput[type=\"reset\"],\ninput[type=\"submit\"] {\n -webkit-appearance: button; /* 2 */\n cursor: pointer; /* 3 */\n}\n\n/**\n * Re-set default cursor for disabled elements.\n */\n\nbutton[disabled],\nhtml input[disabled] {\n cursor: default;\n}\n\n/**\n * Remove inner padding and border in Firefox 4+.\n */\n\nbutton::-moz-focus-inner,\ninput::-moz-focus-inner {\n border: 0;\n padding: 0;\n}\n\n/**\n * Address Firefox 4+ setting `line-height` on `input` using `!important` in\n * the UA stylesheet.\n */\n\ninput {\n line-height: normal;\n}\n\n/**\n * It's recommended that you don't attempt to style these elements.\n * Firefox's implementation doesn't respect box-sizing, padding, or width.\n *\n * 1. Address box sizing set to `content-box` in IE 8/9/10.\n * 2. Remove excess padding in IE 8/9/10.\n */\n\ninput[type=\"checkbox\"],\ninput[type=\"radio\"] {\n box-sizing: border-box; /* 1 */\n padding: 0; /* 2 */\n}\n\n/**\n * Fix the cursor style for Chrome's increment/decrement buttons. For certain\n * `font-size` values of the `input`, it causes the cursor style of the\n * decrement button to change from `default` to `text`.\n */\n\ninput[type=\"number\"]::-webkit-inner-spin-button,\ninput[type=\"number\"]::-webkit-outer-spin-button {\n height: auto;\n}\n\n/**\n * 1. Address `appearance` set to `searchfield` in Safari 5 and Chrome.\n * 2. Address `box-sizing` set to `border-box` in Safari 5 and Chrome\n * (include `-moz` to future-proof).\n */\n\ninput[type=\"search\"] {\n -webkit-appearance: textfield; /* 1 */\n -moz-box-sizing: content-box;\n -webkit-box-sizing: content-box; /* 2 */\n box-sizing: content-box;\n}\n\n/**\n * Remove inner padding and search cancel button in Safari and Chrome on OS X.\n * Safari (but not Chrome) clips the cancel button when the search input has\n * padding (and `textfield` appearance).\n */\n\ninput[type=\"search\"]::-webkit-search-cancel-button,\ninput[type=\"search\"]::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n/**\n * Define consistent border, margin, and padding.\n */\n\nfieldset {\n border: 1px solid #c0c0c0;\n margin: 0 2px;\n padding: 0.35em 0.625em 0.75em;\n}\n\n/**\n * 1. Correct `color` not being inherited in IE 8/9.\n * 2. Remove padding so people aren't caught out if they zero out fieldsets.\n */\n\nlegend {\n border: 0; /* 1 */\n padding: 0; /* 2 */\n}\n\n/**\n * Remove default vertical scrollbar in IE 8/9.\n */\n\ntextarea {\n overflow: auto;\n}\n\n/**\n * Don't inherit the `font-weight` (applied by a rule above).\n * NOTE: the default cannot safely be changed in Chrome and Safari on OS X.\n */\n\noptgroup {\n font-weight: bold;\n}\n\n/* Tables\n ========================================================================== */\n\n/**\n * Remove most spacing between table cells.\n */\n\ntable {\n border-collapse: collapse;\n border-spacing: 0;\n}\n\ntd,\nth {\n padding: 0;\n}\n" }, "$:/themes/tiddlywiki/vanilla/settings/fontfamily": { "title": "$:/themes/tiddlywiki/vanilla/settings/fontfamily", "text": "\"Helvetica Neue\", Helvetica, Arial, \"Lucida Grande\", \"DejaVu Sans\", sans-serif" }, "$:/themes/tiddlywiki/vanilla/settings/codefontfamily": { "title": "$:/themes/tiddlywiki/vanilla/settings/codefontfamily", "text": "Monaco, Consolas, \"Lucida Console\", \"DejaVu Sans Mono\", monospace" }, "$:/themes/tiddlywiki/vanilla/settings/backgroundimageattachment": { "title": "$:/themes/tiddlywiki/vanilla/settings/backgroundimageattachment", "text": "fixed" }, "$:/themes/tiddlywiki/vanilla/settings/backgroundimagesize": { "title": "$:/themes/tiddlywiki/vanilla/settings/backgroundimagesize", "text": "auto" }, "$:/themes/tiddlywiki/vanilla/sticky": { "title": "$:/themes/tiddlywiki/vanilla/sticky", "text": "<$reveal state=\"$:/themes/tiddlywiki/vanilla/options/stickytitles\" type=\"match\" text=\"yes\">\n``\n.tc-tiddler-title {\n\tposition: -webkit-sticky;\n\tposition: -moz-sticky;\n\tposition: -o-sticky;\n\tposition: -ms-sticky;\n\tposition: sticky;\n\ttop: 0px;\n\tbackground: ``<<colour tiddler-background>>``;\n\tz-index: 500;\n}\n``\n</$reveal>\n" } } }
yes
|![[Archiv]]|[[Archiv-Struktur]]|[[Digitales Archiv]]|[[Qellensammlung]]|[[Neues 1]]|[[Chronik-Übersicht]]| |[[Startseite|Start]]| --- --- ! ARCHIV des Karnevalverein Frohsinn 1890 e.V. --- ''__Online-Version (Homepage) :__'' https://www.karnevalverein-frohsinn.de/html/kvf-archiv.html <p><iframe src="https://www.karnevalverein-frohsinn.de/html/kvf-archiv.html" frameborder="0" width="1040" height="200"></iframe></p> --- |!''ARCHIV'' |!''CHRONIK'' |!''KORPORATIVES'' |!''INFORMATIVES'' |!''MULTIMEDIALES'' |!''SONSTIGES'' | | News | [[Zeitleiste]] | Ballett | [[Pressearchiv]] | [[Foto|Multimedia-Fotogalerien]] | [[Schlager|Orscheler Karnevalsschlager]] | | | Bühnenfastnacht | Tanzgarde | [[Vereinsfahne]] | [[Video|Multimedia-Videos]] | [[Brunnen]] | | | Strassenfastnacht | Minis | [[Prinzen|Tollitäten]] | Sound | [[Karneval Info's|Fastnacht von A-Z]]| | | Kinderfastnacht | Männerballett | [[Orden]] | | [[Links]] | | | Feste & Party's | Brassband |[[Vorstand]] | | | | | Sonstiges | Ehrengarde |[[Satzung]] | | | | | [[Chronik]] | 11'er Rat |[[Publikationen]] | | | | | | Kleiner Rat | | | | | | | Konfetti | [[Der Frohsinn]] | | | | | | Sänger |[[Facebook]]| | | | | | | Vortragende |Instagram | | | | | | Ehemalige Korp. |[[Berichte]] | | | |!Archiv | |!Chronik | |!Korporatives | |!Informatives |[[Pressearchiv]]|[[Vereinsfahne]]|[[Prinzen|Tollitäten]]|[[Orden]]|[[Vorstand]]|[[Satzung]]|[[Publikationen]]| | [[Der Frohsinn]] | |!Multimediales | |!Sonstiges |[[Schlager|Orscheler Karnevalsschlager]]|[[Brunnen]]|[[Karneval Info's|Fastnacht von A-Z]]|[[Links]]| --- --- |[[Start]]|[[Multimedia-Online]]|[[Multimedia-Fotogalerien]]|[[Multimedia-Videos]]|[[Multimedia-Sounds]]| |[[Online-Seiten bei HP Frohsinn]]|[[Chronik]]| --- --- [[Nach oben...|Archiv]]
!Struktur des ''Frohsinn-Archiv'' (Online) <p><iframe src="https://www.karnevalverein-frohsinn.de/html/kvf-archiv.html" frameborder="0" width="1040" height="250"></iframe></p><br> Link: https://www.karnevalverein-frohsinn.de/html/kvf-archiv.html |!Local:|file:///c:/DATA/Projekte/FROHSINN/Planung/2021-Relaunch/HOMEPAGE-PLANUNG_2021.ods| <br> |!''ARCHIV'' |!''CHRONIK'' |!''KORPORATIVES'' |!''INFORMATIVES'' |!''MULTIMEDIALES'' |!''SONSTIGES'' | | News | Zeitleiste | Ballett | Vereinsfahne | Fotogalerien | Karnevalsschlager | | | 1890 bis 1944 | Minis | Vereinsorden | Videos | Fastnachtsbrunnen | | | ab 1946 | Tanzgarde | Vereinshaus | Sounds | Über Karneval (A-Z) | | | Chronik 2007/08 | Männerballett | Vorstände | Dokumente | Links | | | Chronik 2013/14 | 11'er Rat | Prinzen | | | | | Chronik 2014/15 | Brassband | Sitzungspräsidenten | | | | | Chronik 2015/16 | Ehrengarde | Personen | | | | | Chronik 2016/17 | Kleiner Rat | | | | | | Chronik 2017/18 | Konfetti | Berichte | | | | | Chronik 2018/19 | Sänger | Publikationen | | | | | Chronik 2019/20 | Vortragende | Pressestelle | | | | | Chronik 2020/21 | EX-Korporationen | Pressearchiv | | | | | Chronik 2021/22 | Damenrat | Facebook | | | | | Bühnenfastnacht | Prinzengarde | Instagram | | | | | Straßenfastnacht | | | | | | | Kinderfastnacht | | | | | | | Feste & Party's | | | | | | | Sonstiges | | | | | <br> --- <br> !Struktur alt |!''Der Frohsinn'' | ''Veranstaltungen'' | ''Bühnenaktive'' | ''Chronik'' | | | | | | | Vorstand | Bühnenfastnacht | Sitzungen | Geschichte des Frohsinn | | | | | | | Senatoren | Strassenfastnacht | Balletts | Präsidenten | | | | | | | Ausschüsse | Kinder-Michtmach-Sitzung | Brassband | Sitzungspräsidenten | | | | | | | Downloads | Oase Party' & Feste | Ehrengarde | Prinzen | | | | | | | Satzung | Heringsessen | 11'er Rat | Personen | | | | | | | Sponsoren | Ordensfest | Frohsinnsänger | Aktiven-Orden | | | | | | | Partner | | Kleiner Rat | Geschichte der Fastnachtszüge | | | | | | | Kontakt | | Konfetti | Publikationen | | | | | | | Akuelles | | | Vereinshaus | | | | | | | | | | Orscheler Karnevalsschlager | | | | | | | | | | Fastnachtsbrunnen | |!Vorstand |!Bühnenfastnacht | |!Geschichte des Frohsinn | | Der Vorstand | Termine | | Chronologie 1 | | Ehrenpräsidenten | Bildergalerie | | Chronologie 2 | | Archiv → | Archiv → | | Kampagne..... | | | | | bis heute | | Downloads | Strassenfastnacht | | | | Newsletter | Termine | | | | Publikationen | Ausrufung der Fastnacht | | | | Aufnahmeantrag | Taunus-Karnevals-Zug | | | | Einwilligung-Internet | Zug Oberhöchstadt | | | | | Bildergalerie | | | | Ausschüsse | Archiv → | | | | Archiv-Ausschuss | | | | | Bühnen- & Backstage-Team | Kinder-Michtmach-Sitzung | | | | Bühnenaktive | Bildergalerie | | | | Kindermaskenfest | Archiv → | | | | Newsletter-Redaktion | | | | | Web- und Marketing-Team | Oase Party' & Feste | | | | | Bildergalerie | | | | | Archiv → | | | | | | | | | | Ordensfest | | | | | Bildergalerie | | | | | Archiv → | | | --- [[Nach oben...|Archiv-Struktur]] --- --- |[[Start]]|
!Interview der Oberurseler Woche Der Autor und Regisseur Peter Bohländer, Co-Regisseurin und musikalische Leiterin Julia Oeffinger sowie der Vorsitzende des Karnevalvereins „Frohsinn“, Ulfert Hahn, haben mit der Oberurseler Woche über dieses höchst ambitionierte Projekt geplaudert. Das Gespräch führte Beppo Bachfischer. [img[https://www.karnevalverein-frohsinn.de/assets/galerie/2022-orschelrette/20220-Orschelrette-Team-1.jpg]] [img[https://www.karnevalverein-frohsinn.de/assets/galerie/2022-orschelrette/20220-Orschelrette-Team-2.jpg]] [img[https://www.karnevalverein-frohsinn.de/assets/galerie/2022-orschelrette/20220-Orschelrette-Team-3.jpg]] //Nach zwei Jahren pandemiebedingtem „Verdienstausfall“ des Vereins ein solcher Paukenschlag. Wie und wann seid ihr draufgekommen und auf wen geht die Initiative zu diesem Mammutprojekt zurück?// ''Peter Bohländer:'' Etwa im August 2020 stand auf dem Vereinsgelände des KV Frohsinn der wunderbare Kulissenbau der Oberurseler Altstadt, und ich war wieder so begeistert darüber und dachte, dass man da doch was draus machen muss. Da ich nach über 30 Jahren immer noch restlos von dem Zusammenhalt und dem Potential des Vereins begeistert bin, war ich überzeugt davon, dass wir alle zusammen doch an einem großen Projekt arbeiten könnten. Außerdem bin ich ein großer Rössel-Fan. Nachdem ich mir das Theaterstück von 1898 durchgelesen hatte, kam mir die Idee, dass sich das Stück sehr gut dafür eignen würde, es in die heutige Zeit nach Oberursel zu versetzen – zwar extrem verändert, aber dennoch zu erkennen. Außerdem durfte die Musik aus der Operette nicht fehlen. Ich fand aber, dass ein Mix mit tollen Stücken aus aktuellen Musicals das Stück für ein breiteres Publikum zugänglich machen würde und dass man die Brassband vom Frohsinn auch mit Stücken einbauen müsste, die nicht unbedingt aus der Operette stammen. Nachdem ich das Skript soweit beendet hatte, stellte ich es dem Vorstand und dem Verein vor und der war sofort begeistert und dabei. //Und wie kam „Voice:ten“ dazu?// ''Bohländer:'' Da das Ballett des „Frohsinn“ schon seit vielen Jahren mit „Voice:ten“ zusammen Shows auf die Bühne stellt, war es naheliegend die Mitglieder von „Voice:ten“ zu fragen, ob sie die Hauptrollen übernehmen – sie waren auch sofort an Bord. Ein richtig großes Glück war es für das Projekt, Julia Oeffinger gewinnen zu können. Sie ist eine tolle Sopranistin mit Theater- und Regieerfahrung. Zusammen machen wir die Regie, coachen die Darsteller im Schauspiel und haben das Skript überarbeitet. Außerdem hat Julia die musikalische Leitung und ich kümmere mich um die Choreografien. Wir sind echt ein Hammer-Team! Ulfert Hahn: Während der Pandemie war es also alleine Peter Bohländer, der die Idee und die Initiative zu dem Musical hatte und sie den Mitgliedern schmackhaft gemacht hat. Er ist ein unglaublich kreativer Kopf, hat unwahrscheinliche Überzeugungskraft und ist ein resoluter Antreiber. Kein anderer hätte so ein Projekt angefasst und auf den Weg gebracht. Der Frohsinn ist ja immer für Überraschungen gut, und jeder weiß, dass die gute Kooperation beim Frohsinn über alle Korporationen und unterschiedlichsten Fähigkeiten hinweg einiges möglich macht. Aber habt ihr bei diesem Projekt nicht wenigstens hin und wieder Mal Angst vor der eigenen Courage? Julia Oeffinger: Auf jeden Fall hat man auch mal Angst vor der eigenen Courage! Man bekommt von so vielen Menschen unglaubliches Vertrauen entgegengebracht, dass wir unsere Arbeit so gut wie möglich machen und am Ende ein tolles Stück auf die Bühne bringen. Da wäre es auch schlimm und vielleicht sogar ein bisschen arrogant, wenn es nicht so wäre. //Aber wenn man von einem Projekt überzeugt ist, so viele tolle Menschen dabei hat, die daür brennen, und wenn man vor allem so unterstützt wird, entwickelt man das Vertrauen, dass es gar nicht schiefgehen kann.// ''Bohländer:'' Für uns alle ist es Neuland! Wir haben seit Jahrzehnten bei den „Frohsinn“- Sitzungen ein tolles Programm auf die Bühne gestellt, doch da hatte jede Kooperation ihren eigenen Block und Auftritt. Jetzt sind wir alle in einem Stück vereint und alle arbeiten zusammen Hand in Hand. Ein wirklich großartiges Gefühl. ''Hahn:'' Das halten wir aktuell wie die Eintracht Frankfurt. Du kannst auch gegen Barcelona gewinnen, du musst nur an dich glauben. //Wann habt ihr angefangen, konkret zu planen und die Pläne umzusetzen? Vor welchen Herausforderungen stehen die Tänzer, die Sänger, die Musiker, die Techniker, die Produzenten?// ''Bohländer:'' Die Planung hat im August 2020 begonnen, und nachdem das „Go“ vom Verein „Frohsinn“ und „Voice:ten“ gekommen war, haben wir coronabedingt mit Online-Proben angefangen. Das heißt, die ersten Lesungen, Rollenentwicklung und Besprechung von szenische Ideen fanden dank Zoom per Videokonferenz statt. ''Oeffinger:'' Ja, Corona war und ist leider immer noch eine echte Herausforderung für unser Projekt! Online-Proben und danach streng nach Vorgaben – Proben nur von einzelnen Szenen zu zweit oder zu dritt. Später, als es wieder erlaubt war, gab es dann endlich Proben mit dem gesamten Ensemble. Aber natürlich kommt es im Winter außer Corona-Ansteckung auch viel zu Erkältungen, sodass es immer wieder auch Krankheitsausfälle gab. Das machte die Probenplanung ziemlich schwierig und erforderte von allen ein hohes Maß an Flexibilität und Konzentration. ''Hahn:'' Die größten Herausforderung besteht darin, alle Aktiven nach zweieinhalb Pandemiejahren wieder auf „Betriebstemperatur“ zu bekommen und grundsätzlich alles miteinander zu koordinieren. Stadthallensitzungen haben wir gelernt und organisieren wir im Schlaf. Ein Musical mit mehr als 120 Aktiven, unglaublich vielen Helfern drumherum, als Freiluftaufführung auf unserem Parkplatz, das ist definitiv eine andere Herausforderung. //Warum der Bezug zum „Weißen Rössl“?// ''Bohländer:'' Ich liebe das „Weiße Rössel“ und hatte die Möglichkeit, eine Spielzeit lang in Bad Vilbel im Chor mitwirken zu dürfen. Da wuchs es mir nur noch mehr ans Herz. //Ist die Orschelrette das „Weiße Rössl“ auf Orschelerisch?// ''Bohländer:'' Bei der „Orschelrette“ gibt das „Weiße Rössel“ nur die Rahmenhandlung vor. Das heißt, die Zuschauer sollen es zwar noch erkennen, aber wir haben es in die heutige Zeit und vor allem von Österreich nach Oberursel versetzt und mit dem neuen Namen: „Im weißen Bembel am Maasgrundsee“ versehen. //Seid ihr näher an der Operette oder am Musikfilm?// ''Bohländer:'' Wir haben von allem das Beste adaptiert: die Gags und den Slapstick aus dem Theaterstück von 1898, einige „Gassenhauer“ aus der Operette und etwas von den Figuren und dem Flair des Films. Aber schon allein durch die Einbindung aller Kooperationen des „Frohsinn“ mussten wir einige Änderungen an der Handlung vornehmen. Außerdem haben wir, wie schon gesagt, einige moderne Musicalmelodien eingebaut, die wir extra für unsere „Orschelrette“ umgetextet haben. Wir haben viele Tage zusammengesessen und am Skript gearbeitet und viel Spaß gehabt. Und wir sind immer noch dabei, an der einen oder anderen Stelle zu feilen und sogar weitere Rollen einzubauen. //Wie habt ihr die Rollenbesetzung vorgenommen? Gibt es im „weißen Bembel“ einen Orscheler Leopold und eine Josepha?// ''Oeffinger:'' Da das Stück ja in Oberursel spielt, ist unsere Wirtin – sie heißt auch in der „Orschelrette“ Josepha – eine echte Hessin und babbelt wie ihr der Schnabel gewachsen ist. Die Rolle wird von Ella Oeffinger von „Voice:ten“ gespielt, die passenderweise auch Orschlerin ist. Unseren Leopold spielt der gebürtige Bayer Stefan Schummer von „Voice:ten“. Er darf dem hessischen Gebabbel von Josepha ein bisschen bayerisches Paroli bieten. Sehr schön! ''Oeffinger:'' Aber auch alle anderen Rollen, sind passend zu den Darstellern von „Voice:ten“ besetzt worden, und wir finden, dass diese Auswahl gut gelungen ist. //Ihr seid es von euren Fremdensitzungen gewohnt, dass eine Korporation nach der anderen ihren Auftritt präsentiert, aber – ihr habt es ja selbst schon angesprochen – nun ist Zusammenspiel angesagt. Probt ihr getrennt und fügt die verschiedenen Parts am Schluss zusammen? Wie meistert ihr diese Herausforderung?// ''Bohländer:'' Ja, genau wie von Anfang an so geplant, proben die Kooperationen nach Absprache mit uns autark. Hin und wieder kommen wir dann dazu. Es gab aber auch schon erste Begegnungen zum Beispiel zwischen Ballett und Hauptdarstellern und mit der Garde. Anders ist es leider wegen Corona auch gar nicht möglich. An den zwei geplanten Hauptprobenwochenenden fügen wir alles zusammen. Da steht uns noch eine echte Herausforderung bevor. Nebenbei müssen wir auch Fragen des großartigen Bühnen- und Kulissenbauteams beantworten, aber auch die Technik hat berechtigterweise Fragen. Aber das muss man auch mal erwähnen: Dank einer wirklich hervorragenden Kommunikation zwischen Vorstand, Korperationen, Ausbildern, Übungsleitern, Bau- und Technikteams sind wir sehr gut bei unserem Abenteuer „Orschelrette“ vorangekommen. //Als traditionsreicher Karnevalverein habt ihr ein festes treues Stammpublikum. Wird es euch bei diesem Ausflug auf die große ~OpenAir-Showbühne folgen? // ''Oeffinger:'' Wir hoffen sehr, dass das Publikum Gefallen an unserem Projekt findet und uns kräftig unterstützt. Ich selbst bin Teil einer Mundarttheatergruppe und habe schon oft die Erfahrung gemacht, dass Stücke mit Lokalkolorit sehr gut bei den Menschen ankommen, die darin ihre Heimatstadt und vielleicht sogar die ein oder andere lokale Anekdote wiederfinden. Auch musikalisch glauben wir, dass für jeden etwas dabei ist. Die bekannten Operetten-Melodien neben den moderneren und schwungvollen Musicalsongs sowie die Kombination aus Tanz und Schauspiel werden hoffentlich alle mitreißen. ''Bohländer:'' Ich denke, dass unser „Frohsinn“- Publikum, das zu den Sitzungen kommt – was ja leider in den vergangenen zwei Jahren nicht möglich war – viel Spaß an unserer „Orschelrette“ haben wird. ''Hahn:'' Grundsätzlich ist unser Publikum aufgrund der Stadthallensitzungen von uns nicht nur die echte und typische Fastnacht gewöhnt, sondern Jahr für Jahr auch einen ordentlichen Schuss an Showeinlagen. Beste Beispiele sind die Auftritte des Balletts, die immer wieder sehr erfolgreich Choreografien zu Musicalthemen präsentiert haben, oder auch die „Frohsinn-Sänger“, die seit Jahren mit viel Unterhaltung, Spielwitz und Rollenspielen ihre Shows aufführen. Und selbst unsere Minis haben in ihren Auftritten schon sehr viele Showelemente eingebaut. Prinzipiell können wir aber auch festhalten, dass ein echter Fastnachter, der einige Jahre auf der Bühne zu Hause ist, auch irgendwie Schauspieler, Showtalent und Allroundkünstler in Personalunion ist. //Bleibt die „Orschelrette“ ein einmaliges Ereignis oder kann sich das Publikum in Zukunft öfter auf eine Frohsinn-Show-Sommernacht einstellen?// ''Hahn:'' Das wird sich zeigen. Es ist für alle natürlich sehr viel Arbeit und Zeitaufwand – besonders außerhalb der eigentlichen Karnevalszeit. Im Ganzen haben wir dann doch fast zwei Jahre von der Idee bis zur Fertigstellung gebraucht. Ein langer Weg für alle – auch wenn für uns die Zeit fast zu schnell vergangen ist. Aber erst einmal wollen wir die „Orschelrette“ auf die Bühne bringen und damit den Zusammenhalt, die Freude am Zusammensein und Oberursel feiern. Und wir wollen damit demonstrieren, dass wir auch in schweren Zeiten zusammenhalten – schließlich sind wir eine große „Frohsinnfamilie“. Wenn es unserem Publikum gefällt – haben wir am Ende alles richtiggemacht. //Davon sind wir von der Oberurseler Woche überzeugt. Vielen Dank für diesen Zwischenbericht vor eurem Eintritt in die heiße Probenphase. // --- --- [[Nach oben...|Bericht 2022-05-01 Orschelrette]]
|[[Der Frohsinn]]|[[Veranstaltungen]]|[[Bühnenaktive]]|[[Chronik]]| --- |[[Kampagne 2011/12]]| --- !Bericht: JHV 2011 Die diesjährige JHV stellte einen Einschnitt in der Vereinsgeschichte dar, da unser seit 1998 amtierender Erster Vorsitzender Karl-Heinz Barth angekündigt hatte sich nicht mehr zur Wahl zu stellen. Desweiteren standen unsere 1.Kassiererin Elke Dietz und unser Zeugwart Max Kuntsche für eine weitere Amszeit nicht mehr zur Verfügung. Deshalb galt es einen neuen Vorstand zu wählen, der von nun an die Geschicke des Vereins lenken wird. *Antrittsrede des neuen 1.Vorsitzenden Stephan Remes *Danksagung des Vereins zum Abschied von Elke Dietz, Max Kuntsche und Karl-Heinz Barth *Antrag zur JHV am 14.09.2011 - Ehrenvorsitzender <br> ''Antrittsrede des neuen 1.Vorsitzenden Stephan Remes''<br> Am Fassenacht-Sonntag diesen Jahres bat mich Karl-Heinz Barth in einem Vier-Augen-Gespräch ganz offiziell an dieser JHV als sein Nachfolger zu kandidieren. Meine direkte Antwort war ein ganz klares JA. Diese schnelle Antwort kam nicht, weil ich damit gerechnet hatte oder weil dies der persönliche Wunsch von Karl-Heinz war. Meine prompte Zusage hatte mehrere Gründe: Zum einen wusste ich sehr genau was auf mich zukommen würde. Zum anderen wusste ich und weiß es auch heute, was unser Verein zu leisten im Stande ist. In unserem Frohsinn steckt eine Power, die mich persönlich immer wieder überrascht, unglaublich froh stimmt und sehr, sehr stolz macht. Stolz macht mich z. B. die Anerkennung unserer aller Leistung in der Öffentlichkeit. Sei es am Brunnenfest, bei unseren Sitzungen oder, als sehr gutes Beispiel, bei unserem Frohsinn-Brunnenfest. Bitte versteht es nicht als Überheblichkeit, aber was der gesamte Verein im Vorfeld, während und auch noch danach für dieses Fest auf die Beine gestellt hat, ist in Oberursel ganz klar einmalig gewesen. Das schönste Kompliment, dass uns gemacht wurde, kam von unserem ehemaligen Stadtverordnetenvorsteher Herrn Dr. Heubel. Er sagte mir, der Verein Frohsinn hätte mit diesem Fest, mit der Idee, der Umsetzung und der freundschaftlichen Einbindung der Partnervereine, für Oberursel Geschichte geschrieben. Wenn man so etwas hört, macht es einen stolz zum Frohsinn dazu zugehören. Wir alle wissen, dass unsere Erfolge nicht von selbst kommen. Ein jedes Fest, jede einzelne Veranstaltung, alle unsere Auftritte, leben von den Menschen, die dafür ihre private Zeit zur Verfügung stellen, sich dafür viele Gedanken machen, viel Verantwortung übernehmen und teilweise damit auch großes Risiko eingehen. Aber der entscheidende Punkt dabei ist, diese Menschen, also Ihr alle, füllt das alles mit Eurer Persönlichkeit und lebt den frohsinnlichen Gedanken. Dieses Engagement eines jeden Einzelnen, egal wann, wo und wie, ist weder mit Geld zu erreichen, noch bekommt man dies durch Überredungskunst. Nur das gemeinschaftliche Gefühl und der Wille für den Erfolg seines eigenen Vereins, treibt uns alle an. Die Besonderheiten und die jeweiligen Eigenschaften aller, sind die Dinge, auf die ich so stolz bin. Die Kreativität und Leichtigkeit eines Frohsinn Balletts. Die einzelnen Persönlichkeiten und die gemeinsamen Fähigkeiten eines 11er Rates Die nach außen gezeigte Tradition einer Ehrengarde. Die Flexibilität einer Korporation wie Konfetti. Ein Aushängeschild dieser Stadt, wie es die Brassband ist. Eine Charakter- und Persönlichkeitsvielfalt wie die Frohsinn-Sänger es zeigen. Eine Einmaligkeit wie es sie nur bei den Ex-Prinzen gibt. Eine Tanzgarde die wie Phönix aus der Asche vom Sorgenkind zum Vorzeigeprodukt geworden ist. Einen Kleinen Rat, der alles vorher schon gesagte alleine in sich vereint. Oder last but not least unsere Kindergruppen, Minis, Drum-Kids und Jugendbrassband, die schon in jungen Jahren mit unermüdlichem Einsatz uns Großen nacheifern. Ihr alle seid der Verein Frohsinn und es erfüllt mich mit großer Freude, dass ich dazu gehöre und ein Teil davon sein darf. Am Ende meiner Rede ist es mir persönlich wichtig noch etwas aufzugreifen. In den letzten Tagen und Wochen wurde von freundschaftlicher Seite an mich herangetragen, dass ich in der Vergangenheit hie und da einen herrscherischen ja sogar arroganten Eindruck hinterlassen habe. Mir ist dies leider niemals aufgefallen. Falls dies so empfunden wurde, bitte ich heute aufrichtig um Entschuldigung. Dies war niemals meine Absicht und es tut mir sehr leid, dass ich diesen Eindruck hinterlassen hatte. Falls dies wieder einmal vorkommen sollte, bitte ich mich direkt darauf aufmerksam zu machen, damit ich es sofort abstellen kann. Für und mit Euch den Verein zu führen, wird mir eine Herzensangelegenheit sein und eine große Ehre dazu. Oberursel, 14. September 2011 Stephan Remes <br> <br> <br> ''Danksagung des Vereins<br> zum Abschied von Elke Dietz, Max Kuntsche und Karl-Heinz Barth'' Es ist wahrhaftig nicht einfach am heutigen Tage Personen für Ihr Engagement zu danken, die einen über viele Jahre hinweg begleitet haben und mit denen man in all diesen Jahren an vorderster Stelle die Geschicke des Vereines gelenkt und verantwortet hat. Wenn ich es wollte, könnte ich mir diese Aufgabe leicht machen und durch eine reine Aufzählung der Vereinsentwicklung die gemeinsamen Jahre profan und stillos Revue passieren lassen. Doch wer mich kennt, weiß, dass dies grundsätzlich nicht meine Art ist und wer mein Verhältnis zu diesen drei Personen kennt, weiß ebenfalls, dass eine solche Laudatio niemals und in keiner Weise unserem Miteinander gerecht werden würde. Aber trotz allem fällt es mir nicht leicht die geeigneten Worte zu finden und hier vorzutragen. Zu Vieles ist im Laufe der Jahre geschehen zu Vieles verbindet mich mit Elke, Max und vor allem mit Karl-Heinz. Über die Jahre hinweg steht der Einsatz dieser drei Menschen für den Karnevalverein Frohsinn außer Frage. Alle drei haben auf vorbildlichste Art und Weise den Verein verantwortungsvoll geführt und waren stets korrekte und verlässliche Partner im Innen- wie auch im Außenverhältnis. Alle drei haben ihre Rollen verantwortungsvoll angenommen, mit Persönlichkeit versehen und zu jeder Zeit ihre Aufgaben mehr als nur erledigt. Sie haben dem Verein nicht nur intern sondern auch in der Öffentlichkeit ein Gesicht gegeben. Sie haben den Verein zum Einen mit höchstem Ansehen repräsentiert aber auch gleichzeitig überaus wichtige und zukunftsorientierte Verbindungen geschaffen, die auf Jahre hinaus den Stellenwert unseres Vereins in der Öffentlichkeit sichern. Trotz all diesem Engagement möchte ich aber bei allen drei einen Aspekt hervorheben und aus meiner ganz persönlichen Sicht betrachten. Es ist bei allen der Faktor Mensch! Und an dieser Stelle werde ich nun persönlich: <br> <br> ''Liebe Elke'', in unserer gemeinsamen Zeit, ganz gleich wann, warst Du stets ein gesuchter Gesprächspartner und „Seelensorger“. Ganz besonders bei Dir spürt man Deine Vereinsseele. Im Laufe dieser Jahre hattest Du Dir eine unglaublich wichtige Vernetzung innerhalb des Vereins geschaffen, von der selbstverständlich Du selbst aber auch der geschäftsführende Vorstand und letztlich, nicht unwesentlich, der gesamte Verein profitiert hat. Deine persönliche Art, Dein Charakter und die damit verbundene Art, Themen, ganz gleich ob angenehm oder schwierig, anzugehen haben Dich und die Arbeit des Vorstands geprägt und viel wichtiger noch menschlich gemacht. Für viele Vereinsmitglieder warst Du „der“ Zugang zum Vorstand. Viele suchten Dich und wussten gleichzeitig „ihre eigenen Themen“ sind genau an dieser Stelle, nämlich bei Dir, richtig platziert. Zu Gute kam Dir hierbei immer Deine eigene Vereinsvergangenheit. Von klein auf hattest Du Deinen Frohsinn im Blut und das Wohle des Vereins ging Dir über fast alles. Obwohl Du immer, verantwortungsvoll wie Du nun mal bist, Deine Funktion, die damit verbundenen Aufgaben und die Sichtweise des Vereins vertreten hast, bist Du in Deinem Herzen bis heute das normale und einfachen Vereinsmitglied geblieben. Das ehrt Dich, zeichnet Dich ganz besonders aus und war für die Arbeit des geschäftsführenden Vorstand nicht nur hilfreich sondern an vielen Stellen ein wichtiger und letztlich entscheidend Punkt. Für Dein Leben im Frohsinn, danken wir Dir von Herzen und stehen für immer in Deiner Schuld. <br> <br> ''Lieber Max'', wenn man ehrlich ist, und dass sollte man an dieser Stelle ja sein, betrübt Dein Wunsch auf „nicht-wieder-Wahl“ nicht nur das operative Vereinsleben an sich, sondern viel mehr noch das Gleichgewicht zwischen oberster Führung und Basis. Insbesondere die Kinder- und Jugendgruppen hatten mit Dir einen Führsprecher, der seines Gleichen suchen wird. In vielen Sitzungen, persönlichen Gesprächen und sonstigen Anlässen, hattest Du Dich sehr schnell, und auch dankeswerter Weise, für, na nennen wir es mal, den „Anwalt der kleinen Vereinsmitglieder“ positioniert. Bei all Deinen vielen und zeitaufwändigen Aufgaben war es Dir immer ein hehres Ziel die Belange der Jüngsten und die damit verbundene Wichtigkeit für die Zukunft des Vereins in den Vordergrund zu stellen. Als Führungsgremium verliert man manchmal leider zu schnell und auch zu oft die Nöte und Entwicklungen einer ganzen Riege von Nachwuchskräften aus dem Blick. Insbesondere wenn Proben und Übungsstunden zu sonst unüblichen Tageszeiten ablaufen. Doch aufgrund Deiner häufigen Präsenz im Vereinshaus, warst Du stets auf dem Laufenden und konntest über Schieflagen rechtzeitig berichten und dafür Sorge tragen, dass agiert oder reagiert werden konnte. Diese Eigenschaft ist zwar für ein Mitglied des geschäftsführenden Vorstands löblich und man könnte auch behaupten, es sei eine originäre Aufgabe dieses Gremiums, doch das wäre zu einfach. Genau daran spiegelt sich ein wesentlicher Charakterzug Deiner Persönlichkeit wider. Die Kinder des Vereins, die kleinsten der Aktiven, diejenigen, an deren Wohlergehen uns zu jederzeit gelegen sein sollte, die die Zukunft unseres Vereins darstellen und deren, um es leider zu sagen, eigene Belange am wenigstens vermittelt werden, hatten in Dir von Anfang an einen ehrlichen und wirkungsvollen Vertreter direkt in der Führungsriege des Vereins. Entscheidend dabei war Deine grundsätzliche Geradlinigkeit und Deine Eigenschaft Entwicklungen einschätzen und voraussehen zu können. Das Letztgenannte zeichnete Dich in besonderen Maße aus. Wenn man in früheren Jahren, und alle vorherige Zeugwarte mögen mir diese Formulierung verzeihen, von Kammerbullen statt Zeugwarten sprach, so würde ich Dich nicht nur als professionellsten Facillity-Manager des Frohsinns bezeichnen. Aufgrund Deiner persönlichen Betrachtungsweise, mit der Du über diese Funktion hinaus agiert hattest, würde ich Dich uneingeschränkt als Professor für Familie, Bildung und Soziales aber viel besser noch, als den perfekten Streetworker des Vereins charakterisieren. Lieber Max, der Karnevalverein Frohsinn kann Dir für all Dein Wirken gar nicht genug danken. Und bitte sei versichert, Du hast für immer einen festen Platz in unser aller Herzen eingenommen. <br> <br> ''Lieber Karl-Heinz'', die schwierigste, weil persönlichste, Ansprache zum Schluss. Nicht wenige Menschen haben immer wieder gesagt der Frohsinn ist der Karl-Heinz Barth und Karl-Heinz Barth ist der Frohsinn. Und alle hatten damit recht! Kein 1. Vorsitzender, vielleicht mal abgesehen von einem Friedel Fischer zu seiner Zeit, hat unserem Verein so stark beeinflusst wie Du. Dies liegt nicht unbedingt an den vielen Jahren Deines Amtes, es liegt viel mehr an der Art und Weise, wie Du Dich mit Deinem Verein identifiziert hast. Und es liegt auch daran, wie Dein Verein Dich, als seinen 1. Vorsitzenden, in dieser Zeit angenommen, kennen und schätzen gelernt und schließlich zu 100 Prozent akzeptiert hat. Von Anfang an war Dir kein Thema unangenehm, alle Belange eines jeden Einzelnen wichtig und kein Weg zu weit bzw. keine Auseinandersetzung mit Dritten zu problematisch. Immer im Sinne und Wohle des Vereins und seinen Mitgliedern. In Deiner Zeit als 1. Vorsitzender hast Du Maßstäbe gesetzt, die so einfach nicht wieder zu erreichen sind. Mir selbst, allen meinen Mitstreiter und jedem Vereinsmitglied sollte klar sein, dass ein Karl-Heinz Barth nicht einfach 1:1 zu ersetzen sein wird. Wenn es so wäre, wärest Du nicht der, dem alle über anderthalb Jahrzehnte gefolgt sind, stets mit dem Gefühl, der Verein ist in den richtigen Händen und wird umsichtig und verantwortungsvoll geführt. Mein Ziel wird, kann und soll es nicht sein Dich zu kopieren. Deine Persönlichkeit und Deine Präsenz sind Dinge, die alleine Dich auszeichnen und Dich für diesen, Deinen Verein Frohsinn, unsterblich machen. Ein hehres Ziel wird sein, sich daran zu orientieren und auszurichten. Ganz privat betrachtet sind wir beide in den gemeinsamen Jahren in vielen Lebenslangen freundschaftlich zusammen gewachsen und haben viel Freud und viel Leid erlebt und miteinander durchgestanden. Zu Anfang hatte ich in Dir einen väterlichen Freund gefunden, der mich und meine Entwicklung in diesem Verein deutlich beeinflusste. Aus dieser Verbindung heraus entwickelte sich eine Beziehung auf Augenhöhe, auf die ich sehr stolz bin. Diese Freundschaft werde ich von meiner Seite ganz sicher beibehalten und pflegen. Aus gemeinsamen Gesprächen weiß ich, dass Du dies ebenso beabsichtigst. Lieber Karl-Heinz, für all das was Du Deinem Verein Frohsinn gegeben hast und für Deine Freundschaft bedanke ich mich zutiefst und versichere Dir, wir werden uns stets verbunden bleiben und der Frohsinn bleibt Dein Verein. Oberursel, 14. September 2011<br> Stephan Remes <br> <br> <br> ''Antrag zur JHV am 14.09.2011 - Ehrenvorsitzender''<br> A n t r a g an die Jahreshauptversammlung des Karnevalverein Frohsinn 1890 e.V. am 14.09.2011 Wir beantragen den langjährigen 1. Vorsitzenden des Karnevalverein Frohsinn, Karl-Heinz Barth, nach seinem Ausscheiden aus diiesem Amt gem. § 4, I.d. der Satzung zum Ehrenvorsitzenden zu wählen. Begründung: Karl-Heinz Barth hat sich in über 50 Jahren aktiver Mitgliedschaft außerordentliche Verdienste um unseren Verein erworben. Er kennt "seinen" und unseren Frohsinn aus der persönlichen aktiven Mitarbeit in mehreren Korporationen. Seit XXXX gehört er dem geschäftsführenden Vorstand an, von XXXX bis 1999 als 2. Vorsitzender, seither als 1. Vorsitzender. In all diesen Jahren war er immer für die Vereinsmitglieder und die Korporationen ansprechbar, offen für neue Ideen und gleichzeitig darauf bedacht, wertvolle Traditionen des närrischen Brauchtums zu erhalten und weiter zu entwickeln. Sein Augenmerk galt gleichermaßen der Jugendarbeit, dem wirtschaftlichen Erfolg des Vereins und dem Erhalt des Vermögens. Von Anfang an trat er dafür ein, unseren Verein in Oberursel erfolgreich zu vernetzen - gegenüber der Stadt und ihren Gremien, gegenüber anderen Vereinen, der Wirtschaft und vielen weiteren. So gehörte er mit zu den Gründern des Narrenrates und vertritt dort erfolgreich unsere Interessen im Vorstand. Bei all diesen Aufgaben hat Karl-Heinz auch die Arbeit im Detail nie vernachlässigt und war und ist sich nicht zu schade, bei Veranstaltungen und Aktivitäten des Vereins tatkräftig mit anzupacken, um damit selbst Vorbild zu sein. Durch die Wahl zum Ehrenvorsitzenden dankt der Frohsinn Karl-Heinz und seiner Familie für diese phantastische, jahrzehntelange Arbeit und die erfolgreiche Entwicklung, die der Frohsinn unter seiner Führung genommen hat. Gleichzeitig bringen wir zum Ausdruck, dass wir auch künftig nicht auf seinen Rat, seine Erfahrung und sein Engagement verzichten wollen, da der Ehrenvorsitzenden nach den Bestimmungen unserer Satzung Mitglied des Vorstands ist. Oberursel, d. 14.09.2011 Die Korporationsführer (Brassband,Ehrengarde,Elferrat,Exprinzen,Frohsinn-Ballett,Frohsinn-Sänger,Kleiner Rat,Konfetti,Minis,Tanzgarde,Vortragende) <br><br> [[Nach oben...|Bericht: 2011 - JHV 2011]] --- |[[Kampagne 2011/12]]| --- |[[Der Frohsinn]]|[[Veranstaltungen]]|[[Bühnenaktive]]|[[Chronik]]| |(c) 2021 by R.G.|Status dieser Seite:| fertig |
|![[Archiv]]| --- !''Berichte'' !!2022 [[05.05.2022 - Interview Orschelrette|Bericht 2022-05-01 Orschelrette]] --- --- [[Nach oben...|Berichte]]
|[[Der Frohsinn]]|[[Veranstaltungen]]|[[Bühnenaktive]]|[[Chronik]]| |[[Chronik-Übersicht]]| --- [img[ |https://www.karnevalverein-frohsinn.de/assets/images/brunnen_skitze.jpg]] !Der Oberurseler Fastnachtsbrunnen Und so steht die von dem Oberurseler Künstler Georg Hieronymi<br> entworfene Skulptur auf dem Trogbrunnen in der Wiederholtstraße,<br> der somit zum Fastnachtsbrunnen umfunktioniert wurde. [img[ |https://www.karnevalverein-frohsinn.de/assets/images/brunnen-web01s.jpg]] [img[ |https://www.karnevalverein-frohsinn.de/assets/images/brunnen-web02s.jpg]] [img[ |https://www.karnevalverein-frohsinn.de/assets/images/brunnen-web03s.jpg]] [img[ |https://www.karnevalverein-frohsinn.de/assets/images/eselereiterin.jpg]] __''Weitere Informationen zum Thema:''__ |!Ursella.info|http://www.ursella.info/obu_stadtges/Kopp_Web/Kopp_web/brunnen.htm| __''Bilder vom Brunnen im Netz:''__ |!Flickr|https://www.flickr.com/photos/sirinisunshine/4935328665| <br><br><br> --- !H i s t o r i s c h e s <> L y r i s c h e s <> K r i t i s c h e s --- !!H i s t o r i s c h e s Einen neuen Brunnen braucht die Stadt * Der Lange Weg von der Idee bis zur Verwirklichung * Pläne entstanden bereits in den 80er Jahren * Welches Motiv soll den neuen Brunnen zieren ? * Historischer Hintergrund der “Eselsreiterin” * Die Eselsreiterin ist da * Das Attentat ''Pläne entstanden bereits in den 80er Jahren'' <br> Neu ist die Idee für eine Skulptur der Eselsreiterin keinesfalls. Bereits in den achtziger Jahren entstand der Plan, einen Fastnachtsbrunnen zu errichten. Auch einen Standort hatte die “Altstadtkommision” schnell ausgemacht: In der Oberern Hainstraße sollte der Wasserspender stehen. Eine Ideenauswahl wurde im ehemaligen Oberurseler Kurier veröffentlicht, drei kamen davon in die engere Wahl. Die aus der Bühnenfastnacht bekannten Figuren “Lang und Kurz”, der legendäre “Molli” mit seinem Pferd Zitronenfalter und eben die Eselsreiterin. <br> Molli bekam schließlich die meisten Stimmen, allerdings fanden sich noch Nachfahren, die eine solche Skulptur ihres Ahnen ablehneten.Also entschied man sich für den zweitplazierten Vorschlag der Eselsreiterin von Georg Hieronymi. <br> Brunnensockel und -technik wurden errichtet, nur der Auftrag für die Skulptur war noch nicht erteilt. Dann wurde die Eselsreiterin Opfer der deutschen Wiedervereinigung. Als die Stadt Oberursel nach der Wende auch kräftig in den Solidaritätsfond einzahlen musste, wurde die Errichtung des Brunnens aufgeschoben - nicht aufgehoben. Auf den Sockel in der Obereren Hainstraße kam später der Ebbelwoi-Brunnen. Quelle: Taunuszeitung ''Welches Motiv soll den neuen Brunnen zieren ?''<br> Die Entwürfe des Oberursler Bildhauer Georg Hieronymi [img[ |https://www.karnevalverein-frohsinn.de/assets/images/brunnen-skitze-eselsreiterin_s.gif]] [img[ |https://www.karnevalverein-frohsinn.de/assets/images/brunnen-skitze-lang-kurz_s.gif]] [img[ |https://www.karnevalverein-frohsinn.de/assets/images/brunnen-skitze-molli_s.gif]] |“Die Eselsreiterin” eine Erinnerung an einen Oberursler Fastnachtsscherz aus dem 16/17. Jahundert.|“Lang und Kurz” - vergleichbar mit Pat und Patachon|Der Herr mit dem Pferd und dem Bembel ist “Molli” mit seinem “Zitronenfalter”, ein Orginal aus Alt-Oberursel.| ''Historischer Hintergrund der “Eselsreiterin”''<br> Die Firgur der verkehrt herum auf einem Esel sitzenden Frau hat ihren Ursprung im Mittelalter. Es handelt sich dabei um einen Orscheler Fastnachtsscherz aus dem 16./17. Jahundert. Wenn die Ehefrau ihren mann im Laufe des Jahres verprügelt oder ihn im Faustkampf geschlagen hatte, so mußte der besiegte am nächsten Fastnachtsdienstag oder Aschermittwoch einen aufgezäumten Esel, auf dem seine Frau saß, durch die Stadt führen. Zur Verdeutlichung nachfolgende Beschreibung des Brauches (i.d.Falle aus Darmstadt) Quelle:<br> “Aus Darmstadts Vergangenheit” von Dr. phil. Adolf Müller<br> Unsere Väter sahen in dem Manne den unbedingten Herren über Haus und Familie. Trotzdem gab es auch früher tatkräftige, streitbare Weiber, die Herrenstellung des Ehegatten nicht anerkannten, ja sogar die Hand gegen den Gemahl erhoben. Kam ein solcher Fall in unserer Stadt vor, mußte die Schlagfertige den Esel reiten, d.h. sie wurde rücklings auf einen Esel gesetzt, bekam als Zügel den Schwanz des Tieres in die Hand und wurde gezwungen, in dieser jämmerlichen Haltung durch die Straßen der Stadt zu ziehen. Hatte die Frau den Mann hinterlistig, ohne daß er sich wehren konnte, geschlagen, so führte der Frankensteiner Bote – die Herren von Frankenstein mußten den Esel stellen – das Grautier; war der Ehemann jedoch in offener Fehde von seinem Weibe besiegt worden, mußte er unter dem Hohngelächter der Menge die Zügel selbst führen. <br> Quelle:<br> “Eberstädter Geschichtenbuch aus 12 Jahunderten” von Wolfgang Weißgerber “Das Frankensteiner Eselslehen”<br> Die Herren von Frankenstein bezogen noch bis 1571 eine Korngülte von 12 Maltern, das sogenannte Eselskorn, aus Darmstadt, früher Bessungen. Dafür hatten sie je nach Bedarf einen ihrer Esel herzuleihen, auf dem die “übermütigen, stolzen, giftigen und bösen Weiber, die ihre Männer geschlagen” zu Spott und Schanden durch die Stadt reiten mußten. Diese Strafe wurde zuletzt vom “Bösen Hundert”, einem Fastnachtsgericht, auf offenem Markt verhängt und am Aschermittwoch vollzogen. Zu diesen Behufe schreiben 1538 Schultheiß und Schöffe des “Bösen Hundert” an den Junker Hans zu Frankenstein: “Unsern willigen Dienst mit Fleiß zuvor, ehrbare und gestrenge liebe Junkern! Es hat sich zu Darmstadt Zwietracht. Zank, Uneinigkeit erhoben zwischen etlichen gigftigen und bösen Weibern, die sich haben aufgeworfen gegen ihre Männer und haben sich unterstanden, sie zu schlagen. Solche Gewalt, Frevel und Übermut ist gegenüber der ganzen Gemeinde, sunderlich aber gegen das Burglehen (das Rselslehen). So ist es unser Bitt und Ansinnen, uns Hilf zu kommen nach altem Herkommen und den Esel zu schicken. Wir wollen auf nächsten Dienstag morgens früh unsern Stadtboten zu Euch schicken, der soll den Esel nach Darmstadt geleiten, da wird er Futter haben. Und wenn wir ihn gebraucht in unsern Nöten, so wollen wir ihn ohne Eure Kosten und Schaden wieder heigeleiten in Eure Veste.”<br> <br> ''Die Eselsreiterin ist da''<br> Juli 2001 Relativ unbermerkt ist der Aufbau des Brunnen vonstatten gegangen. Die Skultur wurde von dem Bildhauer Walter Meffert hergestellt. “So ist nicht nur die Frau (sicherlich unvorteilhaft) rücklings auf dem Esel zu sehen. Nein auch der Mann ist nach damaligen Gesichtspunkten nicht gut dabei weggekommen. Er outete sich nämlich als Hausherr, der keiner war. Nicht umsonst trägt er bei dem Umzug die Narrenkappe.” Zitat: A.Henrich www.oberurseler-brunnen.de ''Das Attentat im September 2001''<br> Der Narr, der zur Skulptur der Eselsreiterin gehört, ist von oben bis unten mit Farbe bekleckert. Dünne Rinnsale laufen ihm über die Brust, tropfen ihm auf die Schuhe und bilden eine orangefarbene Lache zu seinen Füßen. Aber auch der Esel wurde nicht verschont. Ihm tropft gelbe Farbe von der Mähne. Die Skulptur von Georg Hieronymi ist Opfer eines Anschlags geworden. <br> --- !!L y r i s c h e s ''Das ist Fastnacht im 21. Jahrhundert. Auseinandersetzung per Reim Im Internet auf dem “Schwarzen Brett” der Stadt Oberursel konnte mann folgendes lesen:'' Und Kaum sitzt sie auf dem Esel drauf schreit laut der Blaustrumpf schnatternd auf der Fastnachtsmuffel hilfreich meckert: des mit dem Esel iss bescheckert! Gebt bloss kaa Geld für Brunne aus Lasst kaan zum Fastnachtszug enaus Und schalt die ganze brunne ab! Ei WER trägt hier die Narre-Kapp? Orschel ist die Brunnestadt des habbe Orscheler gar net satt Unn wenn im Sommer Brünnlein fließe tuns alle Berjer sehr genieße. Drum die, die laut Attacke blies am End der echte Esel is! <br> Autor : Till Datum : 05.01.2001 09:45:09 <br><br><br> Mein lieber Till, ich find es richtisch! Ein jeder tut sich hier recht wichtisch. Was dürft mer überhaupt noch mache? worüber dürft mer dann noch lache? Wo täglich hier auf dieser Erde, andre Menschen hungern werde. Kein neue Mantel dürft mer kaufe, und nie mehr ins Theater laufe, braucht keine Bilder an der Wand weil irgendwo in unserm Land noch Geld fehlt, das mir Spende könnten, wenn's sein muß, sogar von den Renten. Was wollt Ihr alle unterlassen, was wollt ihr alles besser mache, um eines Tags dann zu verkünde: Jetz ist das Brunnenbauen kei Sünde. Ein Brunnen der Efrischung bringt, der bald schon ist fidel umringt, von Buben, Mädchen, leicht geschürzt (ich geb es wieder leicht gekürzt) erfrischt durchs Wasser - eine Pracht, und drum herum dann alles lacht. <br> Autor : pit Datum : 05.01.2001 13:10:24 Tut uns die Fastnacht net vermiese und laßt den Eselsbrunne fliesse sag ich -und hört es ganz genau als selbstbewußte Fastnachtsfrau. Was einst in längst vergangener Zeit das Volk an Fastnacht hat erfreut, was damals war ein derber Scherz bringt keiner Frau von heute Schmerz An Fastnacht sollt man lieber lachen über neue und vergangene Sachen und wer den Brunnen nicht will sehn kann doch andere Wege gehn! Autor : Tilly Datum : 13.03.2001 13:41:50 <br> <br> <br> Das ist Fastnacht im 21. Jahrhundert. Auseinandersetzung per Reim Im Internet auf dem “Schwarzen Brett” der Stadt Oberursel konnte mann folgendes lesen: Und Kaum sitzt sie auf dem Esel drauf schreit laut der Blaustrumpf schnatternd auf der Fastnachtsmuffel hilfreich meckert: des mit dem Esel iss bescheckert! Gebt bloss kaa Geld für Brunne aus Lasst kaan zum Fastnachtszug enaus Und schalt die ganze brunne ab! Ei WER trägt hier die Narre-Kapp? Orschel ist die Brunnestadt des habbe Orscheler gar net satt Unn wenn im Sommer Brünnlein fließe tuns alle Berjer sehr genieße. Drum die, die laut Attacke blies am End der echte Esel is! <br> Autor : Till Datum : 05.01.2001 09:45:09 Mein lieber Till, ich find es richtisch! Ein jeder tut sich hier recht wichtisch. Was dürft mer überhaupt noch mache? worüber dürft mer dann noch lache? Wo täglich hier auf dieser Erde, andre Menschen hungern werde. Kein neue Mantel dürft mer kaufe, und nie mehr ins Theater laufe, braucht keine Bilder an der Wand weil irgendwo in unserm Land noch Geld fehlt, das mir Spende könnten, wenn's sein muß, sogar von den Renten. Was wollt Ihr alle unterlassen, was wollt ihr alles besser mache, um eines Tags dann zu verkünde: Jetz ist das Brunnenbauen kei Sünde. Ein Brunnen der Efrischung bringt, der bald schon ist fidel umringt, von Buben, Mädchen, leicht geschürzt (ich geb es wieder leicht gekürzt) erfrischt durchs Wasser - eine Pracht, und drum herum dann alles lacht. <br> Autor : pit Datum : 05.01.2001 13:10:24 Tut uns die Fastnacht net vermiese und laßt den Eselsbrunne fliesse sag ich -und hört es ganz genau als selbstbewußte Fastnachtsfrau. Was einst in längst vergangener Zeit das Volk an Fastnacht hat erfreut, was damals war ein derber Scherz bringt keiner Frau von heute Schmerz An Fastnacht sollt man lieber lachen über neue und vergangene Sachen und wer den Brunnen nicht will sehn kann doch andere Wege gehn! <br> Autor : Tilly Datum : 13.03.2001 13:41:50<br> --- !!K r i t i s c h e s Die Kontroverse: Symbol der Fassenacht oder Symbol für Frauenfeindlichkeit Nachfolgend die Reaktionen auf den neuen Brunnen Am 13.03.2001 war am Schwarzes Brett der Stadt Oberursel folgendes zu lesen Betreff: Eselsreiterin Nun hat sich endlich eine Betroffene zu Wort gemeldet, eine der Eselsreiterinnen. Dem Verein „Frauen helfen Frauen“ hat sie folgendes zur Niederschrift gegeben: Ich wollt nicht meinen Ohren trauen, ein Denkmal wollt Ihr für mich bauen, erneut mich auf den Esel setzen, um Euch noch heut dran zu ergötzen. Ein alter Brauch zur Fassenacht, und alle hätten nur gelacht... wer kann denn so humorlos sein?- ...und niemand denkt an meine Pein!!! Was wisst Ihr von durchwachter Nacht,<br> die er im Wirtshaus zugebracht?<br> Was wisst Ihr schon von bangen, hoffen,<br> daß er nicht alles Geld versoffen,<br> von flehn zur Ursula der Frommen,<br> er möge zu Verstande kommen?<br> Wie`s viel zu lange Hoffnung gibt,<br> wir haben uns doch mal geliebt.<br> Und ich wusst nie, wann kommt er heim,<br> und wie wird seine Laune sein.<br> Was wisst Ihr schon von meiner Not,<br> wenn er nach Haus kam, ohne Brot,<br> wenn ihn nicht stört der Kinder Schrein,<br> wollt ich ihm nicht zu Willen sein.<br> <br> Und endlich hab ich mich gewehrt,<br> manch blaues Auge ihm beschert, und dabei immer noch gedacht, ich hätt ihn zu Verstand gebracht. Doch er, im Wirtshaus gut versteckt, hat`s mit den Freunden ausgeheckt, und hat`s zur Rache dann gebracht, in der erwähnten Fassenacht. Hat auf den Esel mich gesetzt, und rücklings durch die Stadt gehetzt. Was ihm alleine nie gelänge, das schafft er in des Volkes Menge, doch stand die Angst Dir im Gesicht, Du jämmerlicher, feiger Wicht! Was wisst Ihr, wie mir war ums Herz, was wisst Ihr schon von Zorn und Schmerz, vom Spott in dieser Zeit des Lebens,- doch weiß ich, es war nicht vergebens. Denn heut stehn andre Schwestern auf, verbitten sich des Esels Lauf, und setzten an dem alten Ort, den Widerstand von damals fort. Sehr weit scheint`s seid Ihr nicht gekommen! Mir scheint, es gelten noch die frommen Regeln, wie in meiner Welt, wer die Macht hat, hat das Geld, Uns bleibt, so war es damals schon, als Frauen nur der Gotteslohn. Warum, so könnt das Volk uns fragen, musst Esel nicht die Männer tragen? Die, die geschlagen Frau und Kind, die, die versoffen Haus und Rind? Ich sag es Euch glatt ins Gesicht, auch wenn es längst bekannt,- so viele Esel gab es nicht, im ganzen Hessenland! Drum, weiht Ihr Euren Brunnen ein, Ihr wisst, ich werde bei Euch sein, gerade so, als wär es gestern, mit allen meinen Leidensschwestern. Wir werden unsre Zukunft baun, wir alten und die jungen Fraun. Und wir werden weiter streiten,- und müsst ich nochmal Esel reiten, könnt uns damit nicht bange machen, irgendwann bleibt uns das Lachen. Alte Erfahrung – junger Mut, die machen noch so manches gut! Und – damit es jeder hört – Ihr wisst, ICH HABE MICH GEWEHRT! Die Karnevalisten antworteten... Der Kleine Rat - Korporation des Karnevalverein Frohsinn Die Zeit des späten Mittelalters ist doch schon lange vorbei! Wir, vom Kleinen Rat, laden Sie, gerne ein, Fastnacht richtig kennen zu lernen, zu verstehen und auch positiv zu erleben. Die Fastnacht mit ihren Brauchtümern ist uralt und in der Historie begründet. Sie war und ist auch heute noch ständig im Wandel und Bräuche, wie der mit der Eselsreiterin, stellen mittelalterliche ur-eigene-regionale Fastnachtssitten dar, die auch ein schmunzeldes Stück vergangener “Orscheler” Stadtgeschichte widerspiegeln. Mal ehrlich, so ernst wurde dieser Brauch doch damals auch nicht genommen! Die Situation mit der Figur ist doch so absurd wie der Grund des Ganzen absurd ist – besoffener Ehemann wurde von Ehefrau verprügelt und Frau wird an Fastnacht von Narren und auch Närrinnen in der Altstadt auf einen Esel gesetzt – das Taxi der damaligen Zeit! Das Ganze stellte ein Brauchtum an Fastnacht für alle damaligen Einwohner dar, das seinerzeit sicherlich mit einer “feucht-fröhlichen” Feierlichkeit geendet hat. So war es halt damals – in dieser Zeit herrschten Sitten – die heute doch wohl so nicht übertragbar sind. Also keine Panik vor “frauenfeindlichen” Anzüglichkeiten! Orscheler Fastnachter freuen sich auf den “Fastnachtsbrunnen” bei dem nur noch der Narr fehlt! Der gehört dazu und wenn er kommt, dann werden auch die ausgewiesenen Nichtnarren, nicht ohne ein Schmunzeln zu verlieren, an ihm vorüber gehen können. Wir hegen immer noch die närrische Hoffnung, daß die Mehrheit der “Orscheler” Humor hat, und nicht nur von Ideologie und egoistischer Selbstverwirklichung geprägt ist, und das über alle Partei und Gesinnungsgrenzen hinweg! Wir Narren freuen uns auf eine schöne “ fünfte Jahreszeit” und auf alle MitbürgerInnen, die hiermit recht herzlich eingeladen sind, mit uns fröhlich zu feiern. Kleiner Rat - Verein Frohsinn Oberursel Bericht der Taunus-Zeitung vom 05.07.2001 Die Eselsreiterin ist da Von Christine Schöning Oberursel. Einige halten es für einen harmlosen Fastnachtsgag, andere für ein frauenfeindlichen Akt. Gemeint ist die umstrittene Skulptur der Eselsreiterin. Sie stellt eine Frau dar, die verkehrt herum auf einem Esel sitzt; das Tier wird von ihrem Ehemann geführt. Die Darstellung soll auf einen mittelalterlichen Brauch zurückgehen, nach dem ein Mann das Recht hatte, seine Ehefrau am Fastnachtsdienstag oder Aschermittwoch auf diese Art durch die Stadt zu treiben – falls sie ihn zum Beispiel wegen seiner Trunksucht vertrimmt hatte. Über eben jene Bronzeskulptur wurde in Oberursel in den vergangenen Monaten viel gestritten und debattiert. Sogar im Internet auf den Seiten der Stadt lieferten sich die Befürworter und Gegner der Reiterin erbitterte Wortgefechte. Inzwischen sind Fakten geschaffen, das Votum des Magistrats und der Stadtverordnetenversammlung hat entschieden. Und so steht die von dem Oberurseler Künstler Georg Hieronymi entworfene Skulptur seit wenigen Tagen auf dem Trogbrunnen in der Wiederholtstraße, der somit zum Fastnachtsbrunnen umfunktioniert wurde. „Es war ein langer Kampf, und wir haben ihn verloren“, muss Erika Krumbein, ehemalige Frauenbeauftragte der Stadt und Mitglied des Frauennetzwerkes, zugeben. Doch verstehen könne sie die Entscheidung nicht, im Gegenteil – die Skulptur sei enttäuschend und entwürdigend für Frauen. „Es ist bereits genug Gewalt in der Welt, warum muss so ein derber Brauch der Nachwelt erhalten bleiben?“ fragt sie. „Das hat doch nichts mit Belustigung zu tun, oder glauben Sie, der Frau hat es Vergnügen bereitet, auf dem Esel durch die grölende Menge getrieben zu werden?“ Bürgermeister Gerd Krämer (CDU) reagiert auf solche Äußerungen gelassen. Er kann die Aufregung, die diese Figur provoziert hat, nicht nachvollziehen. „Ich sehe daran nichts Frauenfeindliches“, sagt er. „Und ich finde es auch nicht beleidigend, an diese alte Tradition zu erinnern.“ Dem widerspricht Hildegard Calmano, Mitarbeiterin des Vereins „Frauen helfen Frauen“, allerdings heftig. Sie findet die Skulptur schlichtweg „eine Sauerei“. „Ich bin wütend darüber, dass trotz der vielen Proteste dieser Brunnen verwirklicht wurde.“ Der Vorwurf, dass die Eselsreiterin eine Entscheidung der Männer sei, wurde bereits des Öfteren laut. Doch Krämer glaubt, dass den meisten Bürgerinnen die Skulptur auf dem Fastnachtsbrunnen gleichgültig sei. „Auch in Oberursel gibt es mehr Frauen als Männer, wäre der Widerstand wirklich so groß, hätte sich die Idee des Fastnachtsbrunnens niemals durchgesetzt“, ist er überzeugt. Kunst sei nun mal Geschmackssache, und wer den Fastnachtsbrunnen nicht leiden möge – Oberursel habe genug andere Brunnen. Und auch andere Befürworter der Skulptur sind um stichhaltige Argumente auch nicht verlegen. Die Oberurseler Marktweiber des Karnevalsvereins Frohsinn beispielsweise fühlen sich beim Anblick der Eselsreiterin keineswegs verhöhnt: „Die Stadt Oberursel hat eine lange karnevalistische Tradition, und die Brunnen gehören auch zur Stadtoptik,“ meint Vereinsmitglied Claudia Chudaska. „Warum also nicht einen Fastnachtsbrunnen?“ Außerdem habe sich der Mann bei diesem Ritt geoutet, indem er zugab, von seiner Frau geschlagen zu werden. „Das war sicher auch nicht angenehm“, ist Chudaska überzeugt. Der Fastnachtsbrunnen wird laut Bürgermeister Krämer in der närrischen fünften Jahreszeit eingeweiht. Bis zu diesem Zeitpunkt wollen sich die Damen von „Frauen helfen Frauen“ etwas einfallen lassen. „Sollte es zur Einweihung kommen, werden wir demonstrieren“, kündigt Hildegard Calmano schon jetzt an. Bericht der Taunus-Zeitung von 14.07.2001 CDU fordert mehr Grün am Fastnachtsbrunnen Oberursel. Die CDU-Fraktion begrüßt „außerordentlich“, dass der Fastnachtsbrunnen mit der Eselsreiterin nun in der Wiederholtstraße gegenüber der Stadtbücherei steht. Die unmittelbare Umgebung der Skulptur des Bildhauers Walter Meffert gefällt den Christdemokraten allerdings weniger. Zwar stehen zwei Blumenkübel am Rand zur Eppsteiner Straße, doch gleicht der Boden noch immer einer Baustelle. „Es sollte doch möglich sein, den Brunnen mit einer kleinen gärtnerischen Anlage zu umgeben“, so Fraktionschef Joachim Weiße. Die Bank, die beim Brunnen steht, kann nach Meinung der Fraktionsmitglieder ruhig stehen bleiben, da sie häufig von älteren Personen genutzt werde. Die Blumenkübel hingegen sollten einer Anlage Platz machen. Die Bewohner der Wiederholtstraße sollten ebenfalls nach Vorschlägen befragt werden. Auch die Aktionsfläche vor dem Eingang zur Bücherei ist nach Ansicht der Christdemokraten noch nicht so, wie sie einmal sein sollte. „Wo früher eine kleine grüne Insel den Platz belebte, herrscht heute eher Öde.“ Viele Aktionen habe man auch nicht dort beobachten können. Auch dort wünscht sich die CDU „Grün und Blumen – so, wie es einmal vorgesehen war“. Aktion könne ja auch „was Buntes“ oder eine Bank bedeuten. „Die Vorschläge zur Umgebung des Fastnachtsbrunnens sind sinnvoll“, sagte der Erste Stadtrat Eberhard Häfner (OBG) auf Anfrage der TZ. In den kommenden Wochen – Ende Juli, Anfang August – würde die Umgebung der Eselsreiterin „planerisch aufgearbeitet“. Was die Aktionsfläche betrifft, so ist Häfner etwas anderer Meinung als die CDU. „Die Fläche wurde doch extra vom Marktplatz weggenommen“, sagt er. Pflanzen würden ja wieder wie eine Trennung wirken. Aber auch dieser Sachverhalt werde demnächst geprüft. (ahi) Presseinformation der SPD vom 31.07.2001 "Was hat dieser Brunnen mit der rücklings auf einem Esel reitenden Frau mit unserer Fastnacht zu tun?" So fragt sich der Bürgermeisterkandidat und ehemalige Fastnachtsprinz von Oberursel, Alexander Becker, empört. Seiner Meinung nach und der vieler seiner Fastnachtskollegen auch, ist dieses mehr als fragwürdige Denkmal, das nun von der Stadt in der Wiederholtstraße aufgestellt wurde, eine Verunglimpfung der Frauen und passe absolut nicht in die heutige Zeit. " Als Bürgermeister der Stadt Oberursel würde ich sofort dieses "Schandmahl" entfernen lassen, denn es schadet außerordentlich unserem Image einer weltoffenen, toleranten Stadt, die internationale Firmen hier ansiedelt und dann solch kleinbürgerliche, um nicht zu sagen kleinkarierte Motive öffentlich ausstellt. Damit blamieren wir uns bis auf die Knochen!" Außerdem gibt er zu bedenken, dass für dieses ganze Trauerspiel auch noch DM 120.000,-- sinnlos verplempert wurden, obgleich wegen der Finanznot der Stadt überall Vereinszuschüsse zum Teil drastisch gekürzt wurden. " Wenn schon ein Fastnachtsbrunnen, dann doch bitte einen mit Niveau, hinter dem alle Fastnachter stehen könnten. Ich würde mir zum Beispiel ein Denkmal für den weit über Oberursels Grenzen hinaus bekannten Heinz Ohl wünschen." - D a s A t t e n t a t - Foto: Taunus-Zeitung, ReichweinBericht der Taunus-Zeitung von 05.09.2001 Narr in Orange, Esel in Gelb Oberursel. Der Narr, der zur Skulptur der Eselsreiterin gehört, ist von oben bis unten mit Farbe bekleckert. Dünne Rinnsale laufen ihm über die Brust, tropfen ihm auf die Schuhe und bilden eine orangefarbene Lache zu seinen Füßen. Aber auch der Esel wurde nicht verschont. Ihm tropft gelbe Farbe von der Mähne. Die Skulptur von Georg Hieronymi ist bereits in der Nacht von Samstag auf Sonntag Opfer eines Anschlags geworden. Dabei wurden zwei Beutel mit Dispersionsfarbe auf den Brunnen in der Wiederholtstraße geworfen. Die Farbei sei auf dem Sandstein gummiartig festgeworden, berichtet Norbert Fischer, Sprecher der Stadt. Die Stadt habe Anzeige gegen Unbekannt erstattet. Derzeit wird geprüft, ob die Skulptur mit einem Hochdruckreiniger gesäubert werden kann. Ist dies nicht möglich, soll die Farbe mit einem Sandstrahlreiniger entfernt oder sogar abgeschliffen werden. Die Höhe des Schadens kann daher noch nicht beziffert werden. Die Brunnenfigur ist nicht erst seit ihrer Fertigstellung umstritten. Zahlreiche Debatten wurden darüber geführt, ob es nun ein harmloser Fastnachtsscherz sei, der da dargestellt sei oder ob es sich schlicht um eine frauenfeindliche Posse handele. Sogar auf den Internetseiten der Stadt wurde hitzig diskutiert, und Befürworter und Gegner nutzten die Gelegenheit, um sich hitzige Wortgefechte zu liefern. Seit Anfang Juli steht das Werk nun auf dem ehemaligen Trogbrunnen. „In den Kritikern dieser Skulptur ist die Stimmung hochgekocht, so dass solch ein Ausgang nicht verwunderlich ist,“ sagte gestern Bürgermeister Gerd Krämer (CDU). Die Farbbeutel-Attake war nicht der erste Anschlag auf die umstrittene Skulptur der Eselsreiterin. Vor einiger Zeit wurden die Zügel herausgesägt, so dass ein Sachschaden von 3000 Mark entstand. Die Kosten übernahm damals die Versicherung. „Trotz der vielen Anschläge und Proteste gegen die Skulptur, soll sie nicht entfernt werden. Sie gehört zur Brunnenlandschaft dazu“, so Fischer. (csc/shs) Bilder vom Attentat: Das Attentat Das Attentat Das Attentat Bericht der Taunus-Zeitung von 15.09.2001 Narr und Esel sind wieder blitzblank Oberursel. Ein kleines orange-gelbes Rinnsal verschwindet im Abwasserkanal und somit auch die letzten Erinnerungen der Farbbeutelattacke auf die Skulptur der Eselsreiterin in der Wiederholtstraße Anfang des Monats (TZ berichtete). Nach eineinhalb Stunden war der Narr gestern von der Dispersionsfarbe, die ihn bedeckte, befreit, und auch der Esel ist wieder sauber. Jürgen Brenner von der Reinigungsfirma „Die schöne Fassade“ in Bad Homburg wurde durch den Artikel in der Taunus Zeitung auf die Farbbeutelattacke aufmerksam. „Als ich davon erfuhr, meldete ich mich sofort bei der Stadt Oberursel und erklärte mich bereit, die Skulptur kostenlos zu reinigen“, so der in Bayern geborene Betriebswirt. Die Stadt nahm das Angebot dankend an und konnte so die Kosten sparen. Mehrere hundert Mark wären für die Reinigung fällig geworden. Nach einer kurzen Inspizierung der Skulptur begann Jürgen Brenner mit einem Hochdruckstrahlreiniger die Farbe auf den Bronzefiguren zu entfernen. Allein mit 140 Grad heißem Wasser ging die Farbe sehr leicht ab. Chemische Reinigungsmittel waren nicht erforderlich. Nach Angaben von Stadtsprecher Norbert Fischer gibt es weiterhin keine Hinweise darauf, wer die Farbbeutel auf die Skulptur in der Wiederholtstraße geworfen hat. Die Stadt hatte vorige Woche Anzeige gegen unbekannt erstattet. (shs) Nach Oben Die Fassenacht in Oberursel und dem Rest der Welt button30bott Die Eselereiterin Brunnen Historisches Lyrisches Kritisches button30bott Schwarzes Brett der Stadt Oberursel 13.03.01 Nun hat sich eine Betroffene zu Wort gemeldet Der Kleine Rat - Korporation Verein Frohsinn Die Zeit des späten Mittelalters ist lange vorbei TZ - Donnerstag 05.07.2001 Die Eselsreiterin ist da TZ - Samstag 14.07.2001 CDU fordert mehr Grün am Fastnachtsbrunnen SPD-Presseinformation Was hat dieser Brunnen mit Fastnacht zu tun? TZ - Donnerstag 05.09.2001 Narr in Orange, Esel in Gelb - DasFarb-Attentat Das Attentat TZ - Samstag 15.09.2001 Narr und Esel sind wieder blitzblank "Die Eselsreiterin" --- |[[Chronik-Übersicht]]| |[[Chronik]]|[[Prunk-Sitzungen]]|[[Aktiven-Orden]]|[[Orscheler Karnevalsschlager]]| |[[Präsidenten & Vorstand]]|[[Fastnachtszüge]]|[[Vereins-Fahne]]|[[Fassenachts-Brunnen]]| |[[Sitzungspräsidenten]]|[[Ohlenspiegel]]|[[Publikationen]]|[[Fassenacht]]| |[[Personen]]|[[Tollitäten]]|[[Vereinshaus]]|[[Oberursel]]| --- |[[Der Frohsinn]]|[[Veranstaltungen]]|[[Bühnenaktive]]|[[Chronik]]| (c) 2021 by R.G.
|[[Start]]|[[Der Frohsinn]]|[[Veranstaltungen]]|[[Bühnenaktive]]|[[Chronik]]| --- |[[Bühnenaktive]]|[[Vortragende]]|[[Korporationen]]| --- !Bühnenaktive --- [[Nach oben...|Bühnenaktive]]
|[[Der Frohsinn]]|[[Veranstaltungen]]|[[Bühnenaktive]]|[[Chronik]]| --- |[[Chronik-Übersicht]]| |[[Chronik]]|[[Prunk-Sitzungen]]|[[Aktiven-Orden]]|[[Orscheler Karnevalsschlager]]| |[[Präsidenten & Vorstand]]|[[Fastnachtszüge]]|[[Vereins-Fahne]]|[[Fassenachts-Brunnen]]| |[[Sitzungspräsidenten]]|[[Ohlenspiegel]]|[[Publikationen]]|[[Fassenacht]]| |[[Personen]]|[[Tollitäten]]|[[Vereinshaus]]|[[Oberursel]]| --- !Die Chronik des Karnevalverein Frohsinn 1890 e.V. Oberursel/Taunus [img[ |https://www.karnevalverein-frohsinn.de/assets/images/logo_frohsinn_alt04.jpg]] [img[Logo KV-Frohsinn|./data_pic/logo_frohsinn_A_350.jpg]] [img width=250 [./data_pic/logo-frohsinn-2-600x600.jpg]] [img[ |https://www.karnevalverein-frohsinn.de/mob/assets/images/mob-chronik-block1-1324x947.jpg]] [img[ |https://www.karnevalverein-frohsinn.de/assets/galerie-flip/1990-festschrift100/pages/25.jpg]] [img[ |https://www.karnevalverein-frohsinn.de/mob/assets/images/mob-chronik-block2-1324x947.jpg]] [img[ |https://www.karnevalverein-frohsinn.de/mob/assets/images/mob-chronik-block3-1324x947.jpg]] --- !Jubiläums-Festschrift 1990 <p><iframe src="https://www.karnevalverein-frohsinn.de/assets/galerie-flip/1990-festschrift100/index.html" frameborder="0" width="1540" height="700"></iframe></p><br> --- | |!Link | |Homepage alt|https://www.karnevalverein-frohsinn.de/html/vf-verein-chronik.html| |Homepage neu|https://www.karnevalverein-frohsinn.de/html/kvf-chronik1.html| --- --- [[Nach oben...|Chronik]]
|[[Kampagne 2014/15]]| !Videos online ---- Schlagerparty https://www.youtube.com/watch?v=YZjaWm_SpEI (opening) https://www.youtube.com/watch?v=qj6Yy_Ey-0A Mickie Krause (Schatzi schenk mit ein Foto) [Oberursel] https://www.youtube.com/watch?v=vbI4Zwk5vnU http://www.abartfoto.de/JubiWE2015_SchlagerParty/IMG_7983.mp4 (Conny Breitbart) ---- Musicalgala https://www.youtube.com/watch?t=189&v=_r82bhL3ZKI (Bad Vilbel 2014) ---- Familientag !Online ~Foto-Galerien Dirk Lange - Familientag: https://sharegallery.strato.com/u/WQCt-zcB/1x4qLNHx#wir-sind-frohhsin-2015-by-dirk-lange/photos/fluid Dirk Lange - Musicalgala: https://sharegallery.strato.com/u/WQCt-zcB/XldsRQ_J#musical-gala-2015-by-dirk-lange/photos/fluid Dirk Lange - Schlägerparty: https://sharegallery.strato.com/u/WQCt-zcB/X2xT4TAi#schlager-party-2015-by-dirk-lange/photos/fluid !Sponsoren http://www.dengler-online.de http://www.dengler-online.de/public/index.html http://www.stadtwerke-oberursel.de/ https://www.taunussparkasse.de !Zeitraum - Aktionen |Jubiläumsjahr:|!''11.11.2014 bis September 2015''| !Text auf der ~HP-Jubiläums-Startseite (Gerd Krämer 04.06.15) Der Karnevalverein Frohsinn kann 2015 auf 125 Jahre Geschichte und Brauchtumspflege zurückblicken. Das besondere Jubiläum wird kräftig gefeiert. Festkommers, Festmotto und Logo, neues Konzept für die "Oase-Party", Festschrift, eigener Frohsinn-Cocktail - die Projekte für das Jubiläum, das für den Verein mit dem Kampagnenstart am 11.11.2014 begann, fanden den Beifall der Mitglieder. In Anspielung auf die Farbe des Frohsinn-Wappens hieß das Motto der Kampagne 2014/15: "Voll auf Grün! 125 Jahr feiert Frohsinns Narrenschar!" Klar, dass der Frohsinn in der Jubiläumskampagne mit Prinz Jürgen I. auch die närrische Tolllität stellte. Höhepunkt der Feierlichkeiten wird das Festwochenende vom 17. - 19. Juli 2015 sein, das der Frohsinn auf seinem Vereingelände ausrichtet. Am Freitag, 17. Juli beginnt ab 20.00 Uhr (Einlass 18.30 Uhr) eine große Schlager-Party. Stargast ist Mickie Krause, umrahmt wird sein Auftritt von der bekannten Band Aber Hossa. Karten gibt es im Vorverkauf zum Preis von 22,- Euro ausschließlich über die Vorverkaufsstellen von Frankfurt Ticket RheinMein oder über das Internet unter http://www.frankfurtticket.de. Natürlich hat auch die Oberurseler Vorverkaufsstelle in der Kumeliusstrasse die Tickets ab sofort vorrätig. Am Samstag, 18. Juli steigt ab 20.00 Uhr (Einlass 18.30 Uhr) eine große Musical Gala, die E.N.S.E.M.B.L.E VOICE: TEN und Frohsinn-Ballett gemeinsam gestalten. Karten zum Preis von 19,- Euro gibt es im Vorverkauf bei frisch & gut, Vorstadt 6. Am Sonntag, 19. Juli findet das Große Familienfest statt. Viele Attraktionen für die ganze Familie warten auf die großen und kleinen Besucherinnen und Besucher - Kutschfahrten, Kinderschminken, Spieleparcours und vieles mehr. Für das leibliche Wohl ist natürlich auf das Beste gesorgt. Und auf der Bühne werden etliche Programmpunkte die Gäste erfreuen. Parken ist an diesem Wochenende ausschließlich auf der Rolls Royce-Wiese in der Marx-Straße (Nähe U-Bahnhalt Lahnstrasse) möglich. Von dort steht ein kostenloser Bus-Shuttle zum Vereinsgelände zur Verfügung. !Direktlinks zu Jubiwochenende, Schlagerparty, Musicalgala http://www.karnevalverein-frohsinn.de/jubilaeum http://www.karnevalverein-frohsinn.de/schlagerparty http://www.karnevalverein-frohsinn.de/musicalgala !Vereinshaus KHD Wiese, Hohemarkstraße 32, 61440 Oberursel (Taunus), Deutschland https://www.google.com/maps/place/KHD+Wiese/@50.209428,8.570859,576m/data=!3m2!1e3!4b1!4m2!3m1!1s0x47bda8123c0a0a55:0x796c1316a8b8f124!6m1!1e1?hl=de https://www.google.de/maps/place/KHD+Wiese/@50.212837,8.5656662,16z/data=!4m2!3m1!1s0x47bda8123c0a0a55:0x796c1316a8b8f124?hl=de <iframe src="https://www.google.com/maps/embed?pb=!1m18!1m12!1m3!1d5106.464725619487!2d8.566610391157242!3d50.21287815951524!2m3!1f0!2f0!3f0!3m2!1i1024!2i768!4f13.1!3m3!1m2!1s0x0000000000000000%3A0x796c1316a8b8f124!2sKHD+Wiese!5e0!3m2!1sde!2sde!4v1432909009319" width="600" height="450" frameborder="0" style="border:0"></iframe> !Kartenvorverkauf Schlagerparty Die Karten für den Freitag an unserem Jubiläumswochenende (17.07.2015 / Mickie Krause und Aber Hossa sind ab sofort online erhältlich: Online: http://www.frankfurtticket.de/inheventdetail.SONSTIGE.sonstige.151760.12888 Auch über die Vorverkaufsstellen von "Frankfurt Ticket RheinMain" sind sie erhältlich. In Oberursel ist das der altbekannte Ticketshop im OK Service in der Kumeliusstraße. Ticketshop Oberursel · Kumeliusstraße 8 · 61440 Oberursel Öff nungszeiten: Mo. – Fr. 9.00 – 18.30 Sa. 9.00 – 14.00 In Frankfurt sind deren Stellen an der Alten Oper, an der Festhalle und in der B-Ebene der Hauptwache. Ticket-Hotline: Ticket-Hotline: 069-13 40 400 !Outing des ~Jubiläums-Jahres 11.11.2014 !Festausschuss David Görge, Axel Friedrich, Luis Blumenstein, Gerd Krämer, Saskia Werner, Clemens von Drigalski, Rainer Guth, Carry Haub Martin Schalmayer, Miri Schiefer, Susanne Schusta, Freddy Eich !Motto ''Voll auf Grün - 125 Jahr' feiert Frohsinns Narrenschar'' !Schirmherr Vorstand der Taunus Sparkasse ![[Jubiläum - 125 Jahre - Festschrift]] !Acts #Senatorenempfang 11.10.14 19:00 Uhr Vereinshaus Zeppelin (keine offizielle Erwähnung) #Festkomers: 18.01.15 So 11 Uhr Vereinshaus #IGMK Jahrestagung - Anfang September - Vereinshaus #~Jubi-Wochenende: 17. + 18. + 19.07.2015 ##Fr: Schlagerparty mit "ABA HOSSA" und Mickey Krause ##Sa: ~Musical-Night mit "Voice Ten" ##So: Falilientag #Festkomers: xx.xx.2015 So 11 Uhr Vereinshaus #IGMK Jahrestagung - Anfang September - Vereinshaus #Standard: Eröffnungssitzung ect. !Voice:Ten http://www.voiceten.de/ Aufnahme von der letzten Musicalgala in Bad Vilbel ein Video gebastelt um damit das Interesse für die neue Gala zu wecken. YouTube-Video: Showtime mit VOICE:TEN & Frohsinn-Ballett https://youtu.be/_r82bhL3ZKI <iframe width="640" height="480" src="https://www.youtube.com/embed/_r82bhL3ZKI?rel=0" frameborder="0" allowfullscreen></iframe> oder width="960" height="720" oder width="420" height="315" ---- Das e.n.s.e.m.b.l.e VOICE:TEN besteht aus einem Kern- und Organisationsgruppe SängernInnen, die auf mehrere Jahre Bühnenerfahrung zurückblicken und Sie gerne mit fantastischen Stimmen, aufwendigen Kostümen und außergewöhnlichen Inszenierungen verzaubern. Für unsere Gala- und Konzertveranstaltungen haben wir einen großen Pool an SängerInnen und TänzerInnen, die wir je nach Veranstaltung einsetzen. ---- Das Ensemble VOICE:TEN besteht aus einer Kern- und einer Organisationsgruppe von Sängern und Sängerinnen, die auf viele Jahre Bühnenerfahrung zurückblicken. Auf ihren Gala- und Konzertveranstaltungen in Oberursel und dem Rest der Welt verzaubern sie mit fantastischen Stimmen, aufwendigen Kostümen und außergewöhnlichen Inszenierungen. Mit von der Partie ist auch ein treuer Freund von uns, Peter Boländer, den wir auch in seiner Funktion als Choreograf der Neu-Isenburger „Eulenspiegelgarde“ kennen und lieben. !Aber Hossa http://aberhossa.com/ https://www.facebook.com/pages/ABER-HOSSA/306688082744974?fref=ts <iframe width="420" height="315" src="https://www.youtube.com/embed/ZeCghee3COo" frameborder="0" allowfullscreen></iframe> !Mickie Krause http://www.mickie-krause.de/ https://www.facebook.com/mickiekrause?fref=ts <iframe width="560" height="315" src="https://www.youtube.com/embed/EGjfkv-vXgk" frameborder="0" allowfullscreen></iframe> !Merchandising #Festschrift: Gerd Krämer #~Frohsinn-Cocktail (auch als alkfreie Version, wird das ganze Jubijahr an den Veranstaltungen angeboten) #~USB-Stick mit Frohsinnlogo darauf und mit der digitalen Version der Festschrift drin [[Nach oben...|Chronik 2015 Jubiläum]]<br> ---
|[[Der Frohsinn]]|[[Veranstaltungen]]|[[Bühnenaktive]]|[[Chronik]]| --- !Chronik des Karnevalverein Frohsinn 1890 e.V. Oberursel/Taunus !!Übersicht |!Classic-Version|https://www.karnevalverein-frohsinn.de/html/vf-verein-chronik.html| |!Mobirise-Version|https://www.karnevalverein-frohsinn.de/mob/chronik.html| |[[Chronologie ab 1890]]|(1890 bis 1945)| |[[Chronologie ab 1946]]|(1946 bis 1970)| |[[Chronologie-Pool]]|(1980 bis 2010)| | [[Kampagne 1970/71]] | [[Kampagne 1980/81]] | [[Kampagne 1990/91]] | [[Kampagne 2000/01]] | [[Kampagne 2010/11]] | [[Kampagne 2020/21]] | | [[Kampagne 1971/72]] | [[Kampagne 1981/82]] | [[Kampagne 1991/92]] | [[Kampagne 2001/02]] | [[Kampagne 2011/12]] | [[Kampagne 2021/22]] | | [[Kampagne 1972/73]] | [[Kampagne 1982/83]] | [[Kampagne 1992/93]] | [[Kampagne 2002/03]] | [[Kampagne 2012/13]] | | | [[Kampagne 1973/74]] | [[Kampagne 1983/84]] | [[Kampagne 1993/94]] | [[Kampagne 2003/04]] | [[Kampagne 2013/14]] | | | [[Kampagne 1974/75]] | [[Kampagne 1984/85]] | [[Kampagne 1994/95]] | [[Kampagne 2004/05]] | [[Kampagne 2014/15]] | | | [[Kampagne 1975/76]] | [[Kampagne 1985/86]] | [[Kampagne 1995/96]] | [[Kampagne 2005/06]] | [[Kampagne 2015/16]] | | | [[Kampagne 1976/77]] | [[Kampagne 1986/87]] | [[Kampagne 1996/97]] | [[Kampagne 2006/07]] | [[Kampagne 2016/17]] | | | [[Kampagne 1977/78]] | [[Kampagne 1987/88]] | [[Kampagne 1997/98]] | [[Kampagne 2007/08]] | [[Kampagne 2017/18]] | | | [[Kampagne 1978/79]] | [[Kampagne 1988/89]] | [[Kampagne 1998/99]] | [[Kampagne 2008/09]] | [[Kampagne 2018/19]] | | | [[Kampagne 1979/80]] | [[Kampagne 1989/90]] | [[Kampagne 1999/00]] | [[Kampagne 2009/10]] | [[Kampagne 2019/20]] | | |[[Presse 2021/22]]| |[[Presse 2020/21]]|[[Presse 2019/20]]|[[Presse 2018/19]]|[[Presse 2017/18]]|[[Presse 2016/17]]| |[[Presse 2015/16]]|[[Presse 2014/15]]|[[Presse 2013/14]]|[[Presse 2012/13]]|[[Presse 2011/12]]| |[[Presse 2010/11]]| __Anmerkung:__<br> Beginn der Kampagne : JHV (Vorstand der kommenden Kampagne) und dem 11.11. <br> Ende der Kampagne: bis zur JHV, auch Veranstaltungen nach dieser |[[Kampagne Masterlayout]]| |[[Online-Seiten bei HP Frohsinn]]| --- |[[Chronik]]|[[Prunk-Sitzungen]]|[[Aktiven-Orden]]|[[Orscheler Karnevalsschlager]]| |[[Präsidenten & Vorstand]]|[[Fastnachtszüge]]|[[Vereins-Fahne]]|[[Brunnen]]| |[[Sitzungspräsidenten]]|[[Ohlenspiegel]]|[[Publikationen]]|[[Fassenacht]]| |[[Personen]]|[[Tollitäten]]|[[Vereinshaus]]|[[Oberursel]]| --- |[[Der Frohsinn]]|[[Veranstaltungen]]|[[Bühnenaktive]]|[[Chronik]]| (c) 2021 by R.G. !LOGBUCH |!Seite |!Status |!Letzte Bearbeitung |!HP-Archiv | |[[Chronologie ab 1890]]| | | |[[Chronologie ab 1946]]| | | |[[Chronologie-Pool]] 1980 bis 2010| | | |[[Kampagne 1970/71]]| | | |[[Kampagne 1971/72]]| | | |[[Kampagne 1972/73]]| | | |[[Kampagne 1973/74]]| | | |[[Kampagne 1974/75]]| | | |[[Kampagne 1975/76]]| | | |[[Kampagne 1976/77]]| | | |[[Kampagne 1977/78]]| | | |[[Kampagne 1978/79]]| | | |[[Kampagne 1979/80]]| | | |[[Kampagne 1980/81]]| | | |[[Kampagne 1981/82]]| | | |[[Kampagne 1982/83]]| | | |[[Kampagne 1983/84]]| | | |[[Kampagne 1984/85]]| | | |[[Kampagne 1985/86]]| | | |[[Kampagne 1986/87]]| | | |[[Kampagne 1987/88]]| | | |[[Kampagne 1988/89]]| | | |[[Kampagne 1989/90]]| | | |[[Kampagne 1990/91]]| | | |[[Kampagne 1991/92]]| | | |[[Kampagne 1992/93]]| | | |[[Kampagne 1993/94]]| | | |[[Kampagne 1994/95]]| | | |[[Kampagne 1995/96]]| | | |[[Kampagne 1996/97]]| | | |[[Kampagne 1997/98]]| | | |[[Kampagne 1998/99]]| | | |[[Kampagne 1999/00]]| | | |[[Kampagne 2000/01]]| | | |[[Kampagne 2001/02]]| | | |[[Kampagne 2002/03]]| | | |[[Kampagne 2003/04]]| | | |[[Kampagne 2004/05]]| | | |[[Kampagne 2005/06]]| | | |[[Kampagne 2006/07]]| | | |[[Kampagne 2007/08]]| i.A. | 09.04.22 | |[[Kampagne 2008/09]]| | | |[[Kampagne 2009/10]]| | | |[[Kampagne 2010/11]]| im Aufbau | 21.11.21 | |[[Kampagne 2011/12]]| in Kontrolle | 24.11.21 | |[[Kampagne 2012/13]]| | | |[[Kampagne 2013/14]]| | | |[[Kampagne 2014/15]]| | | |[[Kampagne 2015/16]]| | | |[[Kampagne 2016/17]]| | | |[[Kampagne 2017/18]]| | | |[[Kampagne 2018/19]]| | | im Aufbau | |[[Kampagne 2019/20]]| im Aufbau | 16.02.22 | im Aufbau | |[[Kampagne 2020/21]]| | | im Aufbau | |[[Kampagne 2021/22]]| | | im Aufbau | |[[Presse 2010/11]]| im Aufbau | 25.11.21 | |[[Presse 2011/12]]| im Aufbau | 24.11.21 | |[[Presse 2012/13]]| | | |[[Presse 2013/14]]| | | |[[Presse 2014/15]]| | | ok | |[[Presse 2015/16]]| | | ok | |[[Presse 2016/17]]| | | ok | |[[Presse 2017/18]]| | | ok | |[[Presse 2018/19]]| | | ok | |[[Presse 2019/20]]| | | ok | |[[Presse 2020/21]]| | | ok | |[[Presse 2021/22]]| | | im Aufbau | |[[Bericht: 2011 - JHV 2011]]| fertig | 24.11.21 |
|!Chronologie des KV Frohsinn 1890 Oberursel e.V.| <p><iframe src="https://www.karnevalverein-frohsinn.de/html/kvf-chronik-1890.html" frameborder="0" width="1040" height="250"></iframe></p><br> Link: https://www.karnevalverein-frohsinn.de/html/kvf-chronik-1890.html !!1890 Die Gründung Im Jahre 1890 beschlossen 15 männliche Personen einen Verein zu gründen, mit dem Vorsatz humoristisch wirken zu wollen. Dieses Anliegen wurde dem damaligen Bürgermeisteramt zur Prüfung schriftlich eingerecht und nach entsprechender Genehmigung wurde der "Musikverein Humor" ins Leben gerufen. Faszinierend und bestaunenswert ist die protokollierte Inventarliste der Gründungsniederschrift: 21 Blasinstrumente, 1 Harmonika, 1 Pauke, 2 Becken, 2 Fackeln 1 Kassenbuch, 1 Protokollbuch, 1 Vereinsbüchse, 1 Schelle, 1 Willkommen Schild. !!1900 Die Vereinsfahne In einer Versammlung am 19. März 1900 im Gasthaus ‘Zur Krone’, wird die Gründung eines Garantie- und Fahnenfond beschlossen. Dieser sollte sicherstellen, dass die Fahne auch bezahlt werden kann. Am 8. und 9. Juli 1900 findet das Fest der Fahnenweihe statt. 40 Vereine wirkten damals bei diesem Ereignis mit und gaben dem Fest so einen würdigen der Zeit entsprechenden Rahmen. !!1904 Mehrere Sommerfeste konkurrierten am 31. Juli 1904 miteinander. Der Verein „Humor“ hatte dank des Kinderrennens die Nase vorn.<br> Hier ein Inserat aus dem „Oberurseler Lokalanzeiger“ vom 30. Juli 1904<br> Quelle: Müllerleile https://commons.wikimedia.org/wiki/File:Annonce_Sommerfest_Humor.jpg?uselang=de [img[Bild|https://upload.wikimedia.org/wikipedia/commons/thumb/7/70/Annonce_Sommerfest_Humor.jpg/1200px-Annonce_Sommerfest_Humor.jpg]] !!1917 Der "Frohsinn" wurde im Jahre 1917 als eine ~Stammtisch-Gesellschaft von 9 männlichen Personen gegründet, mit dem Ziel so genannte "Lustbarkeiten" durchführen zu wollen. In der Zeit des 1. Weltkrieges waren Vereinsgründungen mit eben solchen Vereinsinhalten allerdings untersagt. Stammtischgesellschaften waren jedoch freie Zusammenschlüsse und somit geduldet. !!1921 Die Fusion Im Jahre 1921 beschlossen die Vorstände des "Musikvereins Humor von 1890" und der "Stammtischgesellschaft Frohsinn von 1917" den Zusammenschluss beider Institutionen. Die Anregung für diesen Zusammenschluss wie auch die Gründe für die Verschmelzung wurden wie folgt protokolliert: Durch die Wirren des 1. Weltkrieges und des damit verbundenen Mitgliederschwundes, war der "Musikverein Humor" nicht mehr in der Lage, ein regelmäßiges und aktives Vereinsleben durchführen zu können. Auf Grund dieser Tatsache und der sehr ähnlichen inhaltlichen Ausrichtung beider Vereinigungen, wurde die "Stamm- tischgesellschaft Frohsinn" in dieser Angelegenheit durch den "Musikverein Humor" schriftlich angefragt. In unserer Gegenwart gehört es fast schon zum guten Ton, dass zwei ähnlich ausgerichtete Unternehmungen miteinander fusionieren. Damals war dies allerdings etwas Außergewöhnliches. Damals, stärker als heute, war die Identifikation mit einem Verein ein wichtiger Bestandteil des eigenen Lebens und demonstrativer Ausdruck von persönlichen Neigungen und Interessen. Um so erstaunlicher war die Tatsache, dass für die damalige Verschmelzung, beide Hauptversammlungen nahezu einstimmig votierten. Gründungsurkunde In der Gründungsurkunde vom 12. März 1921 wurden u.a. folgende Punkte festgelegt: 1. Der neue Verein trägt den Namen Verein Frohsinn 2. Das Gründungsjahr des älteren Vereins wird beibehalten und ist demnach 1890 3. Auf die bisherige Vereinsfahne des "Musikvereins Humor" wird noch der Name "Verein Frohsinn" gestickt sowie die beiden Jahreszahlen 1917 und 1921 4. Vorstehende Abmachungen können von keiner Versammlung oder Generalversammlung jemals für ungültig erklärt oder umgeändert werden. Gründungsfeier Knapp einen Monat später wurde die Gründungsfeier des neuen "Verein Frohsinn" durchgeführt. Ein buntes Programm mit heiteren und ernsteren Vorträgen, Festreden sowie Gesangsbeiträgen und allgemeinen Tanzeinlagen umrahmten diese Festlichkeit. Ein Artikel der damaligen Presse schließt seine Berichterstattung zu diesem gesellschaftlichen Ereignis mit dem Satz: "Dies war die Taufe des Verein Frohsinn, der allzeit Frohsinn und Freude im Rahmen der Zeit erwecken will, um wenigstens in den Musestunden die Sorgen des Alltags zu bannen, zur Stärkung für den Lebenskampf, zum Wohle aller." Ein wunderschönes Fazit der aller ersten Stunde, welchem wir uns heute noch verpflichtet fühlen. !!1924 In den zwanziger Jahren entwickelte sich der junge Frohsinn und begann sich durch Theater und Operettenaufführungen einen Namen zu machen. !!1927 Durch die Verschmelzung war der "Frohsinn" nicht nur ein Theater- und Karnevalverein geworden, es gehörten auch fortan ein Mandolinen- und ein ~Handharmonika-Orchester zum neuen Verein. In diesem Jahr wurde die Karnevalabteilung gegründet. Das war ein wesentlicher Meilenstein in der Geschichte des Vereins Frohsinn. Ab dem Jahre 1927 veranstaltete der "Frohsinn" so genannte Kappensitzungen und langsam vollzog sich der Wandel zum reinen Fassenachtsverein, mit Sitzungen und Zugprogrammen. Zur gleichen Zeit wurde die Prinzengarde aufgestellt. !!1928 Ein Jahr nach der Gründung der Karnevalabteileung veranstaltete der Verein Frohsinn seine erste karnevalistische Fremdensitzung unter der Leitung des Ministerpräsidenten Wilhel Oeffinger im Gasthaus "Zum Schwanen" in der Kirchgasse. ''Die erste “HOHE RATS SITZUNG fand am 11.11.28 statt.'' Der ersten “11-er Rat” setzte sich wie folgt zusammen: ~Sitzungs-President Wilhelm Oeffinger und seine Mitstreiter G.Remy, P.Kärgel, F.Schauer, K.Ruppel, K.Schmidt, H.Spang, J.Weber, K.Hieronymi und W.Müller. [<img[Wappen von Prinz Karl I.|../verein/chronik/chronik-prinzen/1928-prinz-karl1-wappen_100.jpg]] ''Der 1.Vereinsprinz - “Prinz der Narren in Oberursel”:'' Prinz Karl I. (Karl Simon) !!1932 Die zur jährlichen Tradition gewordenen Fremdensitzungen hatten einen derart starken Zuspruch, daß der Saal im Schwanen zu klein wurde. Man wechselte deshalb in den 700 Personen fassenden "Taunussaal" in der Obergasse über und fand auch hier ein dankbares Publikum. Eine Reihe von Büttenrednern und ein Ballett entwickelten eine große Anziehungskraft. Im gleichen Jahr lief ein beachtlicher, ausschließlich vom "Frohsinn" gestalteter Karnevalszug durch die menschenumsäumten Straßen von Oberursel. Zum erstenmal zog ein Karnevalsprinz, [[Jean Weber]], mit im Zug. Die Tradition eines vom Frohsinn erwählten Prinzen hat sich bis zum Jahre 1996 erhalten. Nach und nach kamen auch Zugteilnehmer und Besucher aus den Nachbarorten, so daß der Zug schon bald den Namen "Taunus-Karnevalszug" Tragen konnte. !!1933 Ab dem 30.Januar 1933, dem Tag der Machtergreifung Hitlers, verschwinden allmählich die politischen Züge der Fastnacht aus dem Erscheinungsbild. Die maschierende SA übertönt jetzt den Narrhallamarsch und die Zensur schlägt hier und dort zu. Prinz Jean I. (Jean Weber) !!1934 Prinz Jean I. (Jean Weber) !!1936 Prinz Paul I. (Paul Dick) Pagen: Kathi Bauer und Irmgard Obermann Die große Fremdensitzung fand am 02.02.1936 im Taunussaal statt. Prinz Paul I. saß auf ei´nem Thron, der von Schreinermeister Heinrich Rompf für 150 Reichsmark gezimmert und mit Farben aus dem Farbenhaus Jakob Homm für 20 Reichsmark bunt angestrichen war. !!1937 Es wurde ein Wettbewerb für einen [[Oberurseler Karnevalsschlager]] ausgeschrieben. [[Georg Lang]] ging als Sieger hervor; [[Fritz Bauer]] schrieb den Text dazu und sang das Lied auch auf Schallplatten, die wiederum der Menge beim Fasnachtszug vor gespielt wurde. "E Städtche lieht im Taununus drin" und "Mir habbe widder de Karneval" sind Titel und Refrain des Schlägers, der auch heute noch begeistert zur Fastnachtszeit gesungen wird. !!1939 Der Krieg setzte der Aktivität des "Verein Frohsinn" ein Ende. Weiter mit [[Chronologie ab 1946]] --- |[[Chronik]]|[[Chronik-Übersicht]]| |[[Chronik-Prunk-Sitzungen]]|[[Chronik-Vereins-Orden]]|[[Chronik-Geschichte der Prinzen]]|[[Chronik-Vereins-Fahne]]|[[Chronik-Ohlenspiegel]]| |[[Chronik-Vorstand]]|[[Chronik-Publikationen]]|[[Chronik-Die Geschichte von Oberursel]]|[[Chronik-ORSCHEL ]]| --- |[[Der Frohsinn]]|[[Veranstaltungen]]|[[Bühnenaktive]]|[[Chronik]]| (c) 2021 by R.G.
<p><iframe src="https://www.karnevalverein-frohsinn.de/html/kvf-chronik-1946.html" frameborder="0" width="1040" height="250"></iframe></p><br> Link: https://www.karnevalverein-frohsinn.de/html/kvf-chronik-1946.html <br> Die zahlreichen Gefallenen des 2.Weltkrieges hinterließen auch bei uns eine große Lücke. |!Erst wurden wir zu Narren gemacht und nun dürfen wir wieder närrisch sein...| !!1946 Nach Genehmigung durch die Militärregierung wurde fand am 09.11.46 die erste Veranstaltung nach dem Kriege statt. Am 10.12.46 wurde "Der Kleine Rat" wieder neu gebildet und nahm sofort seine Tätigkeit wieder auf. !!1947 Erst zwei...... Quelle:(Programmheft 1978 seite 9 ff) ''Prinz:'' Als erster Nachkriegsprinz thronte Mitglied Willi Trapp als Prinz Willi I. von Trapp zu ~Traben-Trabach 07.02.47 - Mitgliederversammlung im Gasthaus “Zum Hirsch”<br> 16.02.47 Fastnachtsonntag:<br> *15:00 Uhr Fremdensitzung<br> *20:00 Uhr Maskenball<br> **beides in Form einer geschlossenen Gesellschaft **Der Eintrittspreis für beide Veranstaltungen betrug: **DM 2,- für Mitwirkende **DM 5,- für die übrigen Mitglieder Bericht der Karnevalabteilung 1946/47 von Seppel Ortel: "Seit dem Jahre 1939 ruhte der Betrieb der Abteilung. Der Krieg setzte unserem frohen Treiben ein Ende. Doch jeweils am..." !!1948 Als am 11.11.1948 zu Beginn der Eröffnungssitzung des "Kleinen Rates" die fünf Mitglieder A.Alfahrt, H.Bonn, F.Braun, H.Schröder und E.Weiß drei ~Fanfaren-Signale in die vollbesetzte Turnhalle schmetterten, war dies die Geburtsstunde des "Fanfarenzuges". Chronik der Brassband: http://www.brassbandfrohsinn.de/chronik.htm !!1949 Mehrere Mitglieder des "Kleinen Rates" - dessen Kern aus dem Handharmonikorchester des Verein Frohsinn hervorging - waren im Sommer 1949 bereit, einen Spielmannszug ins Leben zu rufen, dem die damals noch so bescheidene ~Fanfaren-Bläsergruppe angeschlossen wurde. Die Leitung übernahm: Rudi Klüber !!1952 Jubiläum: 25-jähriges Bestehen der Karnevalsabteilung !!1953/54 Gründung des "Großen Rat" Durch eine Umorganisation der Karnevalsabteilung kamen im Jahre 1953/54 zahlreiche Mitglieder des "Kleinen Rates" in den neugegründeten "Großen Rat". !!1957/58 Gründung der "Frohsinn-Sänger" im Sommer 1957 Februar: Prunksitzung in der Turnhalle Gartenstraße --- |[[Chronik]]|[[Chronik-Übersicht]]| |[[Chronik-Prunk-Sitzungen]]|[[Chronik-Vereins-Orden]]|[[Chronik-Geschichte der Prinzen]]|[[Chronik-Vereins-Fahne]]|[[Chronik-Ohlenspiegel]]| |[[Chronik-Vorstand]]|[[Chronik-Publikationen]]|[[Chronik-Die Geschichte von Oberursel]]|[[Chronik-ORSCHEL ]]| --- |[[Der Frohsinn]]|[[Veranstaltungen]]|[[Bühnenaktive]]|[[Chronik]]| (c) 2021 by R.G.
!1980 bis 2010 |[[Der Frohsinn]]|[[Veranstaltungen]]|[[Bühnenaktive]]|[[Chronik]]| --- !Kampagne 1980/81 !!Vorstand der Kampagne 1980/1981: |1.Vorsitzender:|| |2.Vorsitzender:|| <br> !!Aktionen Beginn der Renovierung der Bauruine zum neuen Vereinshaus Frohsinn <br><br> !!Prinz Rolf I. (Rolf Höck) Pagen: Annette Zweifel und Bettina Lohe <br> [img[ |https://www.karnevalverein-frohsinn.de/assets/images/chonik_prinzwappen-1981.png]] <br><br> --- --- !Kampagne 1981/82 !!Vorstand der Kampagne 1981/1982: |1.Vorsitzender:|[[Friedel Fischer]]| |2.Vorsitzender:|Horst Krönung| |1.Schriftführer:|| |1.Kassierer:|| |Zeugwart:|| <br> !!Prinz Kurt I. (Kurt Christoph) Pagen: Angelika Hof & Ursula Oehne <br> [img[ |https://www.karnevalverein-frohsinn.de/assets/images/chonik_prinzwappen-1982.png]] <br><br> !!Terminkalender der Kampage |Samstag 16.01.82 Große Fremdensitzung in der Turnhalle der Kennedy-Schule| |Sonntag 17.01.82 Große Fremdensitzung in der Turnhalle der Kennedy-Schule| |Samstag 23.01.82 Große Fremdensitzung in der Turnhalle der Kennedy-Schule| |Sonntag 24.01.82 Große Fremdensitzung in der Turnhalle der Kennedy-Schule| |Samstag 30.01.82 Maskenball "Treffpunkt Oase" in der Turnhalle Korfstraße| |Samstag 06.02.82 Prinzenball Prinzeninthronisation in der Turnhalle Korfstraße| |Samstag 13.02.82 Kostümball der Ehrengarde in der Turnhalle Korfstraße| <br> !!Fremdensitzungen Sitzungspräsident: [[Friedel Fischer]] <br><br> --- --- !Kampagne 1982/83 !!Vorstand der Kampagne 1982/1983: |1.Vorsitzender:|[[Friedel Fischer]]| |2.Vorsitzender:|Horst Krönung| <br> !!Aktionen <br><br> !!Prinz Franz I. (Franz Zimmermann) <br> [img[ |https://www.karnevalverein-frohsinn.de/assets/images/chonik_prinz-1983.jpg]] [img[ |https://www.karnevalverein-frohsinn.de/assets/images/chonik_prinzwappen-1983.png]] <br><br> --- --- !Kampagne 1983/84 !!Vorstand der Kampagne 1983/1984: |1.Vorsitzender:|[[Friedel Fischer]]| |2.Vorsitzender:|Horst Krönung| |1.Schriftführer:|| |2.Schriftführer:|| |1.Kassierer:|Heinz Baldes| |2.Kassierer:|| |Zeugwart:|| |Zeugwart:|| !!Prinz Karl-Heinz III. (Karl-Heinz Paul) Pagen: Sabine & Martina <br> [img[ |https://www.karnevalverein-frohsinn.de/assets/images/chonik_prinz-1984.jpg]] [img[ |https://www.karnevalverein-frohsinn.de/assets/images/chonik_prinzwappen-1984.png]] <br><br> !!Terminkalender der Kampage <br> !!Fremdensitzungen Sitzungspräsident: [[Friedel Fischer]] <br><br> --- --- !Kampagne 1984/1985 __''Generationenwechsel beim Frohsinn:''__<br> Der langjährige Vorsitzende und Sitzungspräsident der Fremdensitzungen [[Friedel Fischer]] ging in den verdienten ''Narren-Ruhestand''.<br> Er wurde zum Ehrenvorsitzender des Vereins ernannt. !!Vorstand der Kampagne 1984/1985: |1.Vorsitzender:|[[Herrmann Reul]]| |2.Vorsitzender:|[[Eckart Dittmar]]| |1.Schriftführer:|[[Wolfgang Weber]]| |2.Schriftführer:|[[Klaus Peter Hieronymi]]| |1.Kassierer:|Heinz Baldes| |2.Kassierer:|Helmut Weisbrod| |Zeugwart:|Norbert Nickel| |Zeugwart:|Kurt Ickert| <br> !!Prinz Michael I. (Michael Kehrer) Pagen: Martina Giesla & Patricia Nell <br> [img[ |https://www.karnevalverein-frohsinn.de/assets/images/chonik_prinz-1985.jpg]] [img[ |https://www.karnevalverein-frohsinn.de/assets/images/chonik_prinzwappen-1985.png]] <br><br> !!Terminkalender der Kampage |Montag 31.12.84 Großer Silvesterball in der Stadthalle| |Freitag 25.01.85 Närrischer Dämmerschoppen in der Stadthalle| |Samstag 26.02.85 Prunk-Fremdensitzung in der Stadthalle| |Sonntag 27.01.85 Fremdensitzung in der Stadthalle| |Samstag 02.02.85 Fremdensitzung in der Stadthalle| |Sonntag 10.02.85 Kindermaskenball im Vereinshaus| |Samstag 16.02.85 Prinzenball in der Stadthalle| |Samstag 16.02.85 Hausmaskenball im Vereinshaus| |Sonntag 17.02.85 Fastnachts-Zug in Oberursel| |Montag 18.02.85 Kostümball der Ehrengarde in der Stadthalle| <br> !!Fremdensitzungen Ort: Stadthalle Oberursel Sitzungspräsident: [[Wolfgang Weber]] <br><br> --- --- !Kampagne 1985/1986 !!Vorstand der Kampagne 1985/1986: |1.Vorsitzender:|[[Herrmann Reul]]| |2.Vorsitzender:|[[Eckart Dittmar]]| |Schriftführerin:|| |1.Kassiererin:|Erika Sommer| |2.Kassiererin:|| |Zeugwart:|| !!Prinz Gero I. (Gerd Koelgen) Pagen: Anni Staun & Sabine Späth !!Terminkalender der Kampage Dienstag 31.12.85 Großer Silvesterball in der Stadthalle Samstag 11.01.86 Prinzeninthronisation im Vereinshaus Freitag 24.01.86 Fremdensitzung in der Stadthalle Samstag 25.01.86 Fremdensitzung in der Stadthalle Sonntag 26.01.86 Fremdensitzung in der Stadthalle Freitag 31.01.86 Fremdensitzung in der Stadthalle Samstag 01.02.86 Fremdensitzung in der Stadthalle Sonntag 02.02.86 Kindermaskenball im Vereinshaus Samstag 08.02.86 Prinzenball in der Stadthalle Samstag 08.02.86 Hausmaskenball im Vereinshaus Sonntag 09.02.86 Fastnachts-Zug in Oberursel Montag 10.02.86 Fastnachtsrummel in der Stadthalle !!Fremdensitzungen Sitzungspräsident: [[Wolfgang Weber]] --- !Kampagne 1986/1987 !!Vorstand der Kampagne 1986/1987: |1.Vorsitzender:|[[Herrmann Reul]]| |2.Vorsitzender:|[[Eckart Dittmar]]| |Schriftführerin:|| |1.Kassiererin:|| |2.Kassiererin:|| |Zeugwart:|| !!Prinz Rudi IV. (Rudi Bernhardt) Pagen: Petra & Simone !!Terminkalender der Kampage 31.12.86 Großer Silvesterball in der Stadthalle Freitag 30.01.87 Fremdensitzung in der Stadthalle Samstag 31.01.87 Fremdensitzung in der Stadthalle Samstag 07.02.87 Fremdensitzung in der Stadthalle Sonntag 08.02.87 Fremdensitzung in der Stadthalle Samstag 21.02.87 Prinzenball in der Stadthalle Samstag 28.02.87 Hausmaskenball im Vereinshaus Sonntag 01.03.87 Fastnachts-Zug in Oberursel Montag 02.03.87 Rosenmontagsrummel im Vereinshaus !!Fremdensitzungen Sitzungspräsident: [[Wolfgang Weber]] --- !Kampagne 1987/1988 !!Vorstand der Kampagne 1987/1988: |1.Vorsitzender:|[[Herrmann Reul]]| |2.Vorsitzender:|[[Eckart Dittmar]]| |Schriftführerin:|| |1.Kassiererin:|| |2.Kassiererin:|| |Zeugwart:|| !!In dankbarer Erinnerung Unser 1.Vorsitzende [[Herrmann Reul]] verstarb am 3.8.1987 !!Prinz Georg I. und Rita I. (Georg Oeter & Rita Fischer) !!Terminkalender der Kampage Samstag 06.01.88 Prinzenball in der Stadthalle Freitag 22.01.88 Fremdensitzung in der Stadthalle Samstag 23.01.88 Fremdensitzung in der Stadthalle Samstag 30.01.88 Fremdensitzung in der Stadthalle Sonntag 31.01.88 Fremdensitzung in der Stadthalle Sonntag 07.02.88 Kindermaskenball im Vereinshaus Samstag 13.02.88 Hausmaskenball im Vereinshaus Sonntag 14.02.88 Fastnachts-Zug in Oberursel Montag 15.02.88 Rosenmontagsrummel im Vereinshaus Samstag 20.02.88 Heringsessen im Vereinshaus !!Fremdensitzungen Sitzungspräsident: [[Wolfgang Weber]] --- !Kampagne 1988/1989 !!Vorstand der Kampagne 1988/1989: |1.Vorsitzender:|[[Eckart Dittmar]]| |2.Vorsitzender:|[[Wilfried Abt]]| |Schriftführerin:|| |1.Kassiererin:|| |2.Kassiererin:|| |Zeugwart:|| !!Prinz Es gab keinen !!Terminkalender der Kampage Freitag 20.01.89 Fremdensitzung in der Stadthalle Samstag 21.01.89 Fremdensitzung in der Stadthalle Sonntag 22.01.89 Kindermaskenball im Vereinshaus Samstag 28.01.89 Fremdensitzung in der Stadthalle Sonntag 29.01.89 Fremdensitzung in der Stadthalle Samstag 04.02.89 Prinzenball in der Stadthalle Samstag 04.02.89 Hausmaskenball im Vereinshaus Sonntag 05.02.89 Fastnachts-Zug in Oberursel Samstag 11.02.89 Heringsessen im Vereinshaus Samstag 04.03.89 Ordensfest im Vereinshaus !!Fremdensitzungen Sitzungspräsident: [[Wolfgang Weber]] --- !Kampagne 1989/1990 ''Der Verein feierte 1990 sein 100jähriges Jubiläum'' !!Vorstand der Kampagne 1989/1990: |1.Vorsitzender:|[[Eckart Dittmar]]| |2.Vorsitzender:|[[Wilfried Abt]]| |Schriftführer:|[[Wolfgang Weber]]| |1.Kassiererin:|Erika Sommer| |2.Kassierer:|Helmut Weisbrod| |Presssewart:|[[Klaus-Perter Hieronymo]]| |Zeugwart:|Kurt Ickert| ---- !!Prinz Prinz Klaus III. (Klaus weiße) !!Terminkalender der Kampage Samstag 17.11.89 Eröffnungssitzung der Kampagne im Vereinshaus Samstag 14.01.90 Kommers zum 100-jährigen Jubiläum des Vereins im Vereinshaus 26.01.90 Fremdensitzung in der Stadthalle 27.01.90 Fremdensitzung in der Stadthalle 03.02.90 Fremdensitzung in der Stadthalle 04.02.90 Fremdensitzung in der Stadthalle Samstag 10.02.90 Prinzenball in der Stadthalle 11.02.90 Kindermaskenball im Vereinshaus Samstag 17.02.90 Treffpunkt-Oase-Maskenball ind der Stadthalle Samstag 24.02.90 Hausmaskenball im Vereinshaus Sonntag 15.02.90 Fastnachts-Zug in Oberursel Samstag 03.03.90 Ordensfest im Vereinshaus Samstag 10.02.90 Heringsessen im Vereinshaus 06.10.90 Intern.Musikshow in der Sporthalle Gesamtschule 06.10.90 Präsidiumsitzung IG-Mittelrhein im Vereinshaus 07.10.90 Tagung IG-Mittelrhein und Bunter Nachmittag in der Stadthalle !!Fremdensitzungen Sitzungspräsident: [[Wolfgang Weber]] --- !Kampagne 1990/91 Pressetexte:<br> https://merkurist.de/mainz/1991-als-die-mainzer-fastnacht-ausfiel_Hjk<br> 1991: Als die Mainzer Fastnacht ausfiel<br> Kein Rosenmontagsumzug, keine Fernsehsitzung, kein Helau: Im Jahr 1991 fiel die Mainzer Fastnacht aus. Doch warum war das so? Welche Geschichte steckt hinter diesem Bild? Es ist Januar, die Fastnachtskampagne 1990/91 ist in vollem Gange. Doch eigentlich ist den Mainzer Narren gar nicht nach Feiern, Lachen und Helau zumute. Denn es ist auch die Zeit des Irak-Kriegs, der zeitgleich stattfand. An einem Abend Mitte Januar trafen sich deshalb Vertreter von 44 Fastnachtsvereinen und Garden zu einer Krisensitzung. Am nächsten Tag prangte die Schlagzeile auf der Mainzer Rhein-Zeitung: „Fastnacht fällt aus“. „Wer jetzt noch Fastnacht feiert, macht sich ethisch und moralisch unmöglich“, sagte der damalige MCV-Präsident Rudi Henkel am Rande der Versammlung. Und: „Wir können und wollen nicht feiern.“ Es war also das Ende der Kampagne: keine Fernsehsitzung, kein Rosenmontagszug, kein Jugendmaskenzug und keine weiteren Veranstaltungen. Gesponsert Das bedeutete aber auch enorme finanzielle Verluste für die Vereine, wie die Rhein-Zeitung weiter berichtete. Vor allem für die kleineren Vereinigungen stand die Existenz auf dem Spiel. Die Narren appellierten: Wer seine Karte zurückgab, der sollte nicht den vollen Betrag zurückverlangen - um die Meenzer Fastnacht zu retten. --- !Kampagne 1998/99 !Ordensfest Es wurde ein neuer Vereins-Sonderorden konzipiert und verliehen. Der "Ehrenorden des Karnevalverein Frohsinn". Als erster Träger wurde der frühere 1.Vorsitzende [[Eckard Dittmar]] ausgewählt. --- !2000/2001 ''Im Jahr 2001 feierte der Vein Frohsinn sein 111-jähriges Jubiläum'' Siehe auch: [[Kampagne 2001/02]] file:///F:/DATA/GUTH--ONLINE_laptop_maxdata/www-FROHSINN-OBERURSEL-DE_old/html/chronik_2001.html file:///F:/DATA/GUTH--ONLINE_laptop_maxdata/www-FROHSINN-OBERURSEL-DE_old/html/chronik_2002.html Der Verein hat 540 Mitglieder, 345 aktiv u. 195 passiv !!Vorstand der Kampagne 2000/2001: |1.Vorsitzender:|[[Karl-Heinz-Barth]]| |2.Vorsitzender:|Klaus Roth| |Schriftführerin:|Daniela Neuhäuser| |1.Kassiererin:|Rainer Voß| |2.Kassiererin:|Elke Dietz| |Zeugwart:|Rolf Affemann| |Pressewart:|[[Stephan Remes]]| !!Terminkalender der Kampage Samstag 20.01.2001 Prinzenball im Hotel Mövenpick Freitag 02.02.2001 Fremdensitzung in der Stadthalle Samstag 03.02.2001 Fremdensitzung in der Stadthalle Samstag 10.02.2001 Fremdensitzung in der Stadthalle Sonntag 11.02.2001 Fremdensitzung in der Stadthalle Samstag 17.02.2001 Fastnachts-Party im Vereinshaus Samstag 24.02.2001 Kindermaskenball im Vereinshaus Sonntag .......... Fastnachts-Zug in Oberursel {{{Sonntag .......... Fastnachts-Zug in Oberursel}}} !!Prinz Norbert I. (Norbert Fechner) Pagen: Inga und Isabelle !!Stepan Remes und die Politik __''Pressemeldungen:''__ ~Spiegel-Online (05.02.2001) http://www.spiegel.de/politik/deutschland/a-116006.html ~Spiegelgruppe (05.02.2001) http://www.spiegelgruppe.de/spiegelgruppe/home.nsf/PMWeb/8FDE677589B77CAAC1256F950048C16D --- !Kampagne 2001/2002 ''Im Jahr 2001 feierte der Vein Frohsinn sein 111-jähriges Jubiläum'' Siehe auch: [[Kampagne 2000/01]] !!Vorstand der Kampagne 2001/2002: |1.Vorsitzender:|[[Karl-Heinz-Barth]]| !!Tag der offenen Tür im Vereinshaus am 19.Mai 2001 !!Grosse Musikschau am 29.September 2001 !!Bunter Nachmittag am 30.September 2001 in der Stadthalle Oberursel --- !Kampagne 2004/05 !!Große Prunksitzungen 2005 siehe->[[Prunksitzung 2005]] !!~Fastnachts-Zug Oberursel __Zugaufstellung:__ 109. KV Frohsinn 1890 Minis " Cowgirls" Garde 110. KV Frohsinn 1890 Tanzgarde - Garde 111. KV Frohsinn 1890 Kleiner Rat "Narren Camp" Wagen 112. KV Frohsinn Ballett " König der Löwen" - Fußgruppe 113. Brassband des KV Frohsinn 114. KV Frohsinn Damenrat " Es grünt so grün,wenn Orschel´s ....Fußgruppe 115. KV Frohsinn " Die Exprinzen" Wagen 116. KV Frohsinn Frohsinn-Sänger " (T)Raumschiff Surprize...." Fußgruppe 117. KV Frohsinn Frohsinn-Sänger " (T)Raumschiff Surprize...." Wagen 118. KV Frohsinn Elferrat Komiteewagen 119. KV Frohsinn " Ehrengarde " --- !Kampagne 2007/2008 !!Vorstand der Kampagne 2007/2008: |1.Vorsitzender:|[[Karl-Heinz-Barth]]| |2.Vorsitzender:|Stephan Remes| |Schriftführerin:|Daniela Neuhäuser| |1.Kassiererin:|Elke Dietz| |2.Kassiererin:|Jutta Eckard| |Zeugwart:|Frank Steier| |Pressesprecher:|Gerd Krämer| !!Hessentag Der Kleine Rat baut den Hessentagswagen der Stadt Oberursel für Butzbach, Stadt des Hessentages 2007. Mitglieder begleiteten die Vertreter der Stadt am grossen Umzug am 10.Juni 2007. !!Brassband bei „Victoria Parade“ Die Brassband hat die englische Partnerstadt Rushmoor bei der traditionellen „Victoria Parade“ musikalisch erobert. Die Brassband war vorort, um an der großen „Victoria Parade“ teilzunehmen. Diese findet alljährlich im Juli zum Andenken an Königin Victoria statt, die eine besondere Beziehung zur Garnisonsstadt Aldershot und zum benachbarten Farnborough hatte und hier oft zu Gast war. Die Orscheler Brassband trat in ihrer traditionellen Uniform mit roten Jacken, schwarzen Hosen und weißen Koppeln an. Beim Festzug kannte die Begeisterung keine Grenzen. Das Publikum an den Straßen applaudierte unentwegt und feierte begeistert die Brassband, die übrigens das einzige ausländische Musikcorps bei diesem Fest war.“ !!Hier geht’s lang Der Frohsinn hat nun eine neue Adresse: ~Frohsinn-Weg 1 Bisher haben Mitglieder und Fans des Frohsinn 1890 zum Karnevalverein gefunden, obwohl die Straße, die von der Straße Im Heidegraben abzweigt, keinen Namen hatte. Das ist Geschichte. Denn beim Jubiläumsjahrmarkt am 1.9.07 enthüllten Bürgermeister ~Hans-Georg Brum und Vorsitzender ~Karl-Heinz Barth das Schild der neuen, nach dem Verein benannten Straße „~Frohsinn-Weg“. Es ist die einzige Straße in der Brunnenstadt, die nach einem Verein benannt ist. !!Das Fest "~Jubiläums-Markt" Zu feiern gab es gleich stolze vier Jubiläen: Das des Damenrats (60 Jahre), der Ehrengarde und der ~Frohsinn-Sänger (beide 50 Jahre) und des Kleinen Rats (33 Jahre). Das macht zusammen 193 Jahre aktive Fassenacht. Was die einzelnen Korporationen so alles drauf hatten, das zeigten sie in ihrem bunten und witzigen Programm, bei dem Minis, Marktweiber, die Brassband, Sänger und Zauberer auftraten und Ballett sowie eine Playbackshow des Kleinen Rats zu sehen war. !!~Woodstock-Party Zum inzwischen schon vierten Male fand im Oktober die Woodstockparty im Vereinshaus statt. Organisiert wurde die Veranstaltung vom Kleinen Rat. Das Vorprogramm gestaltet die Nachwuchsband „Nepumuk“ mit Coverversionen von AC/DC und „Nickelback“. ~Woodstock-Atmosphäre versprühen „Jox & Attila“ mit Rhythm and Blues, Folk und Rock. Ganz ~: „Acoustik Storm“ mit ihrem gitarrenlastigen Rock. Echte, handgemachte Rockmusik mit dreistimmigen Gesang präsentiert die Band „Class X“. Sie spielen Songs der „Little River Band“, „Fleetwood Mac“ und „Genesis“. Hart zur Sache geht es beim Auftritt der Formation „Michaelangus“, wenn Gitarrenriffs durch den Saal wummern. Mit von der Partie ist auch „First In Line“, mit ihrem rhythmusorientierten Beatrock der 60er und 70er Jahre. Als „Special Guest“ spielen „Rosebud“ unter dem Motto „hard & heavy“ Songs von Robbie Williams und Ozzy Osbourne in eigenwilligen Bearbeitungen. !!Konfetti mit der “Droschke” Konfetti erhielt eine Droschke mit Toilette für den Karnevalszug Wurde doch ein alter Lastwagen der Firma Edeka vom Oberurseler Marktleiter ~Jens-Oliver Ney ~Konfetti-Mitgliedern übergeben. ~Graffiti-Künstler Markus Janista „Canister“ wird den Wagen von außen karnevalstauglich gestalten. Sogar eine Toilette für die Blasenschwachen wird eingebaut“, freuten sich ~Konfetti-Kooperationsführer Freddy Wilkinson und Peter Schüßler, der auf der „~Konfetti-Droschke“ mitfahren wird, da es in diesem Jahr keinen speziellen „Schüsselwagen“ geben wird. !!Gründung einer Jugendbrassband Ermutigt durch den Erfolg mit der Gründung der "Drumkids" wird die Brassband jetzt auch für Kinder und Jugendliche ab zehn Jahren ein Angebot schaffen. Nach dem Motto "Lernen von Anfang an" sollen die Mitglieder die Chanse erhalten, ihre jeweiligen Instrumente in Theorie und Praxis zu erlernen. Die Ausbildung wird die Notenlehre ebenso umfassen wie beispielweise die Instrumentenpflege. Die Ausbildung werden Aktive der Brassband übernehmen. Die musikalische Leitung wird in den Händen von Jens Stern liegen. !!Die fünfte Jahreszeit beginnt, so kurz wie nie... !!Prinz Prinz Frank I. (Frank Steier) mit seinen Pagen: Monika Bartels und Sabine Wieland Der diesjährige ~Taunus-Karnevalsprinz kommt aus dem Frohsinn. Unser Frank wird als “Temoküsser Prinz Mäx” in die Analen eingehen. !!Eröffnung der Kampagne ''“Närrischer Tannenbaumverkauf”'' Das Bühnenbild stellte einen winterlichen Nachthimmel dar, vor dem ein Weihnachtsbaumstand aufgebaut war. Als Tannenbaumverkäufer führten die Moderatoren Gerd Krämer, Stephan Remes und ~Klaus-Peter Hieronymi durch den Abend. Programmpunkte waren: Die Minis - Tanz zur Musik der ~Rocky-Horror-Picture-Show Jens Landefeld als Feuerwehrmann Die Marktweiber des Kleinen Rates Betti Marris zeigte den Herren im Saal wo’s lang geht ~Frohsinn-Ballett mit „One Night in Bangkok“ Die ~Brass-Band ~KR-Mitglieder mit dem Sketch „Der Baum nadelt“ Prinz Frank I. mit seinem Hofstaat Das Männerballett als pinkfarbene Nonnen K.P. Hieronymi auf der Suche nach der „Ehrenjungfrau“ Die ~Frohsinn-Sänger als Mexi’kaner !!~KR-Sitzung Bei seiner „etwas anderen“ Fastnachts- sitzung fiel der Kleine Rat dieses Jahr in einen gewaltigen „~KaufRausch“. Und das Thema Einkauf zog sich wie ein roter Faden durch die Sitzung. Programmpunkte waren: Seiner Tollität Frank I., besser bekannt als Prinz Mäx, und seinem Gefolge Moderatorin Claudia Chudaska im Blick auf die derzeitige, missliche ~Laden-Situation in der Vorstadt Die ~KR-Kids mit ihrer „Orschels Next Topmodell“-Show. Sie präsentierten speziell auf Oberursel zugeschnittene Modelle wie den „Orscheler Marktplatz“ „Die Protokoller“ Michael Reuter und Harald Neugebauer machten sich Gedanken über die Energiesituation Die ~KR-Teens mit ihrer Sendung „TV Orschel Total“ berichteten von touristischen Attraktionen der Brunnenstadt. Schnäppchenjäger Harald Neugebauer Die ~KR-Baulöwen dagegen bestachen eher durch ihre Faulheit, als durch Arbeitseinsatz. Die Marktweiber mit Tips zur Arbeit im Rathaus Für Sicherheit und Ordnung sorgten Gerd „Terminator“ Krämer und Peter „Rambo“ Wolf, die sich als „letzte Helden im Kampf gegen das organisierte Verbrechen“ und Bettlern (Jochen Ruppel) Und Matthias Decker als ~Feuerwehr-Au Pair aus der Wetterau Eine Werbeeinlage mit Joachim Wei0e und Roland Ruppel Edu Keller als vollbusige, in ein hautenges, pinkes Kostüm gekleidete „Edda“ Und zu Ehren des Prinzen traten auch die „Mäxi“kaner des Frohsinns noch auf. Büttenredner Thomas Siebenhaar berichtete von seinen Erfahrungen beim Hauskauf Den krönenden Abschluss des Abends bildete aber das Männerballett. Als Nonnen in rosa Roben zogen die Herren zu „I Will Follow Him“ ein, verwandelten sich zu den Tönen von „Sing Halleluja“ zu Engeln und wurden dann doch zu Teufeln. „Am Ende hat sich eben das wahre Ich des Mannes gezeigt, da kam des Teufelsche durch“, bemerkte Claudia Chudaska. !!Frohsinn gründet Kinderrednerschule Schon länger ist Gedanke einer Rednerschule für Kinder schon länger durch die Korporation Konfetti gegeistert. Im September war es dann so weit. Peter Schüßler steuerte seine rednerischen und schreib- erischen Talente bei; Freddy Wilkinson kam mit drei Töchtern und deren Freundin Nadine. Der Fünfte im Bunde heißt Nick Coy. Jeden Donnerstag üben die Kinder im Vereinshaus den freien Vortrag der zumeist auswendig gelernten Texte, was Disziplin und Konzentration fördert. Es steht ihnen frei, an den Vorträgen mitzuschreiben. Für die Sitzung des ‚Kleinen Rats‘ in der Stadtresidenz oder die Kindersitzung sind ihre Vorträge bestimmt bestens geeignet. !!Prinzengala Bei der Prinzengala im Hotel Mövenpick hatte Prinz Frank I. seinen großen Auftritt, den er souverän meisterte – immerhin musste er an diesem Abend ’zig Anerkennungsküsschen und -rosen an die Mitwirkenden verteilen. Die Tanzgarden der Karnevalvereine und das Frohsinnballett sorgten für einen kurzweiligen Abend. Schnell wurde klar, dass unter Frank I. die Prinzengala, die sich in den vergangenen Jahren mehr und mehr zu einer Fremdensitzung entwickelt hatte, wieder zu dem geworden ist, was sie ursprünglich war: ein fröhlicher und unterhaltsamer Ball. Die Tanzgarde und das Frohsinnballett mit ihrem Tanz zu „One Night in Bangkok“ ernteten viel Beifall. Peter „Die Schüssel“ Schüßler hielt eine Rede und setzte einen gelungenen Kontrapunkt zum Tanzprogramm. Mit seinem trockenen, mitunter derbem Humor erheiterte er die Anwesenden, lockerte das Programm auf und heimste gleich noch einen Orden von Frank I. ein. !!Große Prunksitzungen siehe->[[Prunksitzung 2008]] !!Angie empfängt den Orscheler Prinzen Sehr freundlich wurden Frank I. und sein Gefolge von Kanzlerin Angela Merkel im Bundeskanzleramt empfangen. Anlässlich des “Empfang der Tollitäten”, bei dem aus jedem Bundesland ein Prinz kommt. !!~Hexen-Sitzung Hierzu schickte der Frohsinn die Brassband, Betty Marris & Jörg Steden als Traumpaar, das Männerballett als rosa Nonnen und das Frohsinnballett mit ihrem ~Mamamia-Mix auf die Bühne der Stadthalle. !!Rathaussturm Traditionell um 11 Uhr 11 hatten Prinz Frank I. und seine etwa 150 Gefolgsleute das Oberurseler Rathaus gestürmt und die Regentschaft an sich gerissen. Bürgermeister Brum und seine Kollegen – Erster Stadtrat Dieter Rosentreter und Bundestagsmitglied Holger Haibach leisteten tapferen wie überparteilichen Widerstand. !!Glittter Rock Party am 26.01.08 zum zweiten Male mit “ABBA EXPLOSION” im Vereinshaus !!Kleiner Rat in der Stadtresidenz Traditionell zeigte der KR wieder Ausschnitte aus seiner Sitzung im November. Diesesmal wurden alle in den “Kauf Rausch” versetzt. Auch war es für Nadine Hofmann, von unserer Rednerschule, das Debüt in der Bütt. !!Kindersitzung Konfetti und die Ehrengarde sorgten wieder mit einem kleinen Programm für einen kurzweiliegen Nachmittag. Es war auch wieder eine Möglichkeit für die “Schüler” unserer Rednerschule ihr Gelerntes zu zeigen. Niclas Coy mit einem Vortrag über den Alltag eines elfjährigen Jungen und Nadine Hoffmann mit Gedanken zum Taschengeld meisternten dies hervorragend. Die Minis mit dem Boney M. Medley und die ~Drum-Kids sorgten weiterhin für eine hervoragende Stimmung im Saal. !!~Fastnachts-Zug Oberursel Sonderpreis der ~Ex-Prinzen für unsere Minis Die ~Frohsinn-Sänger als "~Mäxikaner-Garde des Prinzen", begleitet ~Frohsinn-Ballett wurden Zweite bei den Fußgruppen... Zweiter Preis der Wagen für den Kleine Rat mit seiner Vorausschau auf den Hessentag. Zugaufstellung: 110. KV Frohsinn – Konfetti 111. KV Frohsinn – Elferrat 112. KV Frohsinn – Kleiner Rat 113. KV Frohsinn – Kleiner Rat 114. KV Frohsinn – Damenrat 115. KV Frohsinn – Minis 116. KV Frohsinn – Tanzgarde 117. KV Frohsinn – ~Drum-Kids 118. Brassband des KV Frohsinn 119. KV Frohsinn – Sänger & Ballett: „Die ~Mäxikaner-Garde des Prinzen“ 120. KV Frohsinn – Ehrengarde 121. Narrenrat – PRINZ FRANK I. mit Hofstaat !!Heringsessen Traditionell fand am ~Aschermittwoch-Abend das Heringsessen im Vereinshaus statt. !!Ordensfest Beim traditionellen Ordensfest wurden unsere langjährigen Mitglieder und verdiente aktive Narren geehrte. Die Verleihung der Orden übernahm diesemal Gerd Krämer. Sonderorden des Damenrates: an Andrea Erkelenz und Heike Griesbach Sonderorden „Frosch“ Der Brassband: Udo Barthel der seit 15 Jahren in der Brassband spielt Orden der Ehrengarde: Sven Buhlmann für fünfjährige Mitgliedschaft i.d.Korporation Melanie Bremser, Sina Dietz und Nadine Eich bekamen einen Anstecker mit einem goldenen Kranz und einem Funkenmariechen in der Mitte für ihr Engagement als Funkenmariechen Für närrische 33 Jahre Mitgliedschaft: Klaus Eckard und Elke Dietz Für 50 Jahre Mitgliedschaft: Wolfgang und Werner Bühler sowie Klaus Offen Orden und eine Urkunde für 55 Jahre Mitgliedschaft. Anita Schmalz und Kurt Riedel Prinzenorden von Prinz Mäx: an seine persönliche „Prinzengarde“ – die „Mäxikaner“ und die gesamte Brassband Orden „Goldene Flamme“ für zehn Jahren Aktivität im Verein: Michela Römmelt und Rasha Tadros, Günther Braum, Kerstin und Christian Kapa, Rene Albersmeyer sowie Dieter Merten und Gudrun Ege. Verleihung des Goldenen Vlieses für 25 Jahre aktive Mitarbeit im Verein und den symbolischen Ritterschlag: Salvatore Fois, Monika Möck, Stefanie Neugebauer, Andrea Unger, Andreas Alt, Ulfert Hahn und Dieter Rosentreter. !!Schade !!! Leider war aber nicht alles eitel Sonnenschein. So hat der Damenrat, nach Auseinandersetzungen, in einer außerordentlichen Sitzung im Februar 2008 beschlossen, die Aktivitäten in ihrer Korporation einzustellen. Auch Klärungsversuche des Vorstands konnten den Beschluss nicht mehr rückgängig machen. „Ich bedauere diesen Schritt sehr“, erklärte Vorsitzender Karl Heinz Barth und hofft, dass die Korporation Damenrat bald wieder auflebt. !!Neues Outfit unserer Hompage Pünktlich zur neuen Kampagne 2008/09 bekam unsere Homepage ein neues Aussehen verpasst. Neben den kräftigen Farben wurden die Inhalte der einzelnen Unterseiten überarbeitet und die Navigation zum Auffinden der Seiten verbessert. Unser ”Webmaster” wünscht viel Spass beim surfen... --- !Kampagne 2008/09 !!Vorstand: |1.Vorsitzender:|[[Karl-Heinz-Barth]]| |2.Vorsitzender:|Stephan Remes| |Schriftführerin:|Daniela Neuhäuser| |1.Kassiererin:|Elke Dietz| |2.Kassiererin:|Jutta Eckard| |Zeugwart:|Max Kuntsche| |Zeugwart:|Detlef Unruh| |Pressesprecher:|Gerd Krämer| !!Theater im Park und Frohsinn Diese Verbindung besteht schon länger, wie der Regisseur berichtet. Viele Aktive des Karnevalvereins sind auch bei Theater im Park aktiv. „Ich kenne Mirjana Leibold, weil sie bei unseren Theaterproduktionen in der Maske hilft“, so der Regisseur. „Und da in unserem aktuellen Stück in einer Szene eine Geisha auftritt, kam mir die Idee, dem Publikum noch zusätzlich etwas fürs Auge zu bieten und die Szene mit einer Tanzgruppe aufzulockern.“ ~Walther-Schroth erinnerte sich daran, das Mirjana eine Tanzgruppe trainiert, und so kam die Zusammenarbeit zustande. 15 Mädchen der „Minis“ und der „Garde“ haben sich für das ~Theater-Projekt gemeldet. Die Mädchen sind zwischen 7 und 15 Jahre alt. „Wie werden zwei kurze Tänze erarbeiten, einen Fächertanz und wahrscheinlich noch einen Schirmtanz“, verrät der Regisseur. Dazu werden die Mädchen Kimonos tragen. „In der kurzen Zeit, die uns zum Einstudieren bleibt, wird es keine komplizierten Schrittfolgen geben. Die Musik wird ruhig sein. Bei den asiatisch angehauchten Tänzen kommt es sowieso vor allem auf prÀ¤zise Bewegungen an“, so ~Walther-Schroth. Pro Vorstellung werden jeweils 5 der 15 Mädchen auf der Bühne im Park stehen. !!~Jugend-Brassband Die ~Jugend-Brassband absolvierte ihren ersten offiziellen Auftritt. !!Brunnenfeststand !!~Hessentags-Wagen Er und seine Freunde vom Kleinen Rat des Karnevalvereins Frohsinn wurden auch dieses Jahr wieder von der Stadt gebeten, den Hessentagswagen zu bauen. !!Brassband begeisterte in Rushmoor !!Jubiläum: 60 Jahre Brassband: Mit derBon-Jovi-Party zum 60. Geburtstag hatdie Brassband des Vereins Frohsinn nicht nur ihren eigenen und den ~Bon-Jovi-Fans eine Riesenfreude gemacht, sondern auch sich selbst und der Bon Jovi Coverband. Samstagabend zum Festkommers Grosses Familienfest im Vereinshaus !!~Woodstock-Party Riesenstimmung bei der fünften ~Woodstock-Party !!Prinzeninthro !!Eröffnung der Kampagne Wenn’s schon an der Börse nicht mehr knallt, dann wenigstens bei der Eröffnungssitzung des Karnevalvereins Frohsinn !!Sitzungen des Kleinen Rat ~KRawall auf’m Hof und die Probleme eines Hobbykochs !!Vereinsorden 2009 !!Michelle trägt die «Superkapp» !!Große Prunksitzungen siehe->[[Prunksitzung 2009]] !!~Nachtschwärmer-Party beim Frohsinn !!~KRawall in der Stadtresidenz !!~Kinder-Mit-Mach-Sitzung !!Fastnachts-Zug !!Heringsessen !!Ordensfest !!Neues Mitglied bei den Exprinzen Links: [[Kampagne 2007/08]] [[Kampagne 2009/10]] --- !Kampagne 2009/10 !!Vorstand der Kampagne 2009/2010: |1.Vorsitzender:|[[Karl-Heinz-Barth]]| |2.Vorsitzender:|Stephan Remes| |Schriftführerin:|Daniela Neuhäuser| |1.Kassiererin:|Elke Dietz| |2.Kassiererin:|Jutta Eckard| |Zeugwart:|Max Kuntsche| |Zeugwart:|Detlef Unruh| |Pressesprecher:|Gerd Krämer| !!Große Prunksitzungen siehe->[[Prunksitzung 2010]] !!Seniorensitzung Pressesketch Eröffnungblock Kindervortrag Michelle Minis Protokoll Tanzgarde Klaus & Klaus Marktweiber Michi K Jugendbrassband & Drumkids Mann beim Arzt Frohsinn Ballett Finale !!~Fastnachts-Zug Oberursel Der Kleine Rat gewann den Ohlenspiegel und den 3.Platz der Fussgruppen Unsere Minis holten sich mit der Unterstützung der Frohsinn-Sänger den 4.Platz der Fussgruppen __Zugaufstellung:__ 89. KV Frohsinn Ex-Prinzen 90. KV Frohsinn Konfetti 91. KV Frohsinn Kleiner Rat 92. KV Frohsinn Kleiner Rat Wagen 93& KV Frohsinn Ballett 94. KV Frohsinn Ehrengarde 95. KV Frohsinn Sänger mit den Minis 96. KV Frohsinn Tanzgarde 97. KV Frohsinn Elferrat 98. Musikzug > Brass Band des KV Frohsinn 99. KV Frohsinn " Drumm Kids" !!Königliche Frohsinn'ler Oberursels 32. Brunnenkönigin wurde am Samstag (27.03.10) feierlich in der Stadthalle gekrönt. Die Zuschauer im Saal waren sich einig, dass Sina I. und ihr Brunnenmeister ~Karl-Heinz eine gute Wahl für dieses Amt sind. Video (orschel1890): http://www.youtube.com/watch?v=cWDOcqvoGcs !!~Jahres-Hauptversammlung 19.Mai 2010 Der Verein hat an diesem Tage 496 Mitglieder, 385 aktiv u. 111 passiv Die Minnis haben ein neues ~Trainer-Team: Karin Schwenke u. Janine Reder Die neue ~Internet-Kommunikations-Plattform "~MITGLIEDER-NETWERK" wude vorgestellt --- !Einzeln zu übernehmen |[[Kampagne 2010/11]]|[[Kampagne 2011/12]]|[[Kampagne 2012/13]]|[[Kampagne 2013/14]]| |[[Kampagne 2014/15]]|[[Kampagne 2015/16]]|[[Kampagne 2016/17]]|[[Kampagne 2017/18]]| |[[Kampagne 2018/19]]|[[Kampagne 2019/20]]|[[Kampagne 2020/21]]|[[Kampagne 2021/22]]| [[Nach oben...|Chronologie-Pool]]<br> --- |[[Der Frohsinn]]|[[Veranstaltungen]]|[[Bühnenaktive]]|[[Chronik]]| (c) 2021 by R.G.
|[[Frohsinn Cloud]]|[[Cloud Struktur]]|[[Cloud LogBuch]]| --- !Cloud ~LogBuch --- !eMail: Nextcloud für den Frohsinn ?! 25.11.2021 17:46 Von Valentin Reuter <valentin.reuter@googlemail.com> An webmaster@karnevalverein-frohsinn.de <webmaster@karnevalverein-frohsinn.de> Hallo Rainer,<br> hier der Link zu den Angeboten von Hetzner und Nextcloud:<br> https://www.hetzner.com/de/storage/storage-share<br> <br> Eines musst du dazu wissen – wenn ihr eure eigene Domain also zum Beispiel cloud.karnevalverein-frohsinn.de einrichten möchtet (was ich empfehlen würde) musst du die NX20 Variante wählen. <br> Vorteil an dieser sog. Managed Nextcloud ist, dass du dir überhaupt keine Sorgen um Updates machen musst, da das zentral über den Dienstleister läuft. Nachteil ist, dass die Nextcloud minimal beschnitten ist und du nicht alle Konfigurationen – insbesondere wenn es um tief im System verwurzelte Programmcodes geht ändern kannst. <br> Ansonsten ist die Nextcloud eine wirklich feine Sache, insbesondere in Verbindung mit OnlyOffice was die gleichzeitieg online Bearbeitung von Dateien ermöglicht. <br> Ulfert hatte nach Rücksprche die Anforderung an einen gemeinsamen Kalender der von mehreren Leuten gepflegt werden kann. Sowas wäre ohne Probleme in der Nextcloud möglich – du kannst die Kalender dann sogar per CardDAV einbinden. <br> Da gehen letztlich ganz viele verschiedene Sachen.<br> Melde dich gerne bei mir wenn wir mal eine Teamviewer Session machen wollen – dann zeig ich es dir. <br>Liebe Grüße / Vali Reuter / Mobil: 0160-8409985
|[[Frohsinn Cloud]]|[[Cloud Struktur]]|[[Cloud LogBuch]]| --- !Cloud Struktur --- xxxxx
|![[Archiv]]||!Informatives |[[Pressearchiv]]|[[Vereinsfahne]]|[[Prinzen|Tollitäten]]|[[Orden]]|[[Vorstand]]|[[Satzung]]|[[Publikationen]]| | [[Der Frohsinn]] | --- --- [img[https://www.karnevalverein-frohsinn.de/assets/images/2014-jubilaeum-logo-ws_200.jpg]] ! Seit 1890 wird gelacht,<br> in Orschel bei der Fassenacht. !! Fastnacht mit Tradition, frischen Ideen und Kreativität 1890 ist das Gründungsjahr von Oberursels ältestem Karnevalverein. Tradition verpflichtet, ist Ansporn, kann aber auch erdrücken. Der Frohsinn pflegt seine Fastnachts-Tradition nach dem Motto: Was sich bewährt hat, muss man bewahren. Aber was man bewahren soll, muss sich auch immer wieder neu bewähren. Daher scheut der Verein nicht davor zurück, Neues auszuprobieren und Innovationen eine Chance zu geben. Ganz besonders groß geschrieben wird deshalb auch die Jugendarbeit. Der Nachwuchs für die Tanzgruppen werden bei den Minis betreut und sind bei allen Sitzungen ein Highlight. Über die Tanzgarde führt der Weg ins Ballett, das sich in den letzten Jahren zu einer Showtanzgruppe auf höchstem Niveau entwickelt hat. Der musikalische Nachwuchs beginnt bei den Drum-Kids und führt über die Jugend-Brassband zur Brassband. Damit im Verein auch in Zukunft die Büttenredner nicht knapp werden, steht die Korporation Wortvortragende. Hier sind die Kreativen des Vereins vertreten und mit Spaß bei der Sache das Publikum zu begeistern. Die Korporationen sind das Rückgrat des Vereinslebens. Frohsinn-Sänger, Brassband, Kleiner Rat, Ehrengarde, Elferrat, Ballett, Tanzgarde, Mini’s, Konfetti und Wortvortragende sind Ideenschmieden, arbeiten tatkräftig vor und hinter den Kulissen und im Vereinshaus, pflegen die Gemeinschaft und jede einzelne mit ihren ganz besonderen Stärken ist für den Erfolg des gesamten Vereins unverzichtbar. Dem Frohsinn gehören derzeit knapp 500 Mitglieder an, von ihnen sind über 77 Prozent aktiv dabei. Erster Vorsitzender ist Ulfert Hahn, zweiter Vorsitzender Jens Landefeld. Höhepunkte jeder Kampagne sind natürlich die drei Großen Prunksitzungen in der Stadthalle und der Beitrag des Vereins zum Karnevalszug. Aber auch "Hausparty", Kinder-Mitmach-Sitzung, der Kampagnestart kurz nach dem 11.11. und viele weitere Veranstaltungen rund um das ganze Jahr sind echte Publikums-Magneten. Das Herz des Frohsinn schlägt im Vereinshaus im Frohsinn-Weg. Es ist nicht nur Bühne vieler Frohsinn-Veranstaltungen, es dient selbstverständlich auch als Übungs- und Versammlungsraum der Korporationen und für die Sitzungen des Vorstandes. Durch viele Renovierungsarbeiten in der letzten Zeit und aufgrund seiner hervorragenden technischen Ausstattung sowie der vielfältig nutzbaren Räumlichkeiten finden dort aber auch viele private Feiern und Veranstaltungen statt. Die gesammelten Requisiten in Fundus und Remise erzählen von vielen Jahrzehnten erfolgreicher Orscheler Fastnachtsgeschichte und sorgen jede Kampagne erneut dafür, dass Veranstaltungen für unser Publikum technisch und optisch ein Genuss sind. <br> <br> --- --- [[Nach oben...|Der Frohsinn]]
|![[Archiv]]|[[Archiv-Struktur]]|[[Digitales Archiv]]|[[Qellensammlung]]| --- --- |!Medium|!Name|Kapazität|!Pfade|!Status|!Funktion|!Inhalt| |Mobile Festplatte| | 3 TB | | |Main|[[Digitales Archiv Main]]| |Mobile Festplatte|GUTH|500 MB| |Mobile Festplatte|Elements| 1 TB | |Mobile Festplatte|Terra | 2 TB |\TERRA_save\DATA\Projekte\FROHSINN\ | | | | |\TERRA_save\DATA\GUTH--ONLINE\www-FROHSINN-OBERURSEL-DE\ | | | | |\ARCHIV\Archiv-KV-FROHSINN\ | --- --- [[Nach oben...|Digitales Archiv]]
|![[Archiv]]|[[Archiv-Struktur]]|[[Digitales Archiv]]|[[Qellensammlung]]| --- --- !Inhalt der Mobilen Festplatte --- --- [[Nach oben...|Digitales Archiv Main]]
|[[Der Frohsinn]]|[[Veranstaltungen]]|[[Bühnenaktive]]|[[Chronik]]| --- |[[Chronik]]|[[Chronik-Übersicht]]| --- !Vorsitzende des Karneval-Verein Frohsinn seit 1917 ||[[Georg Süss]]| ||[[Adolf Schauß]]| ||[[Jean Weber]]| ||[[Heinrich Weber]]| ||[[Wilhelm Oeffinger]]| ||[[Eberhard Greiner]]???| ||[[Balser Hachemeister]]| ||[[Fritz Weber]]| ||[[Lorenz Caprano]]| |1969 bis 1983|[[Friedel Fischer]]| |1984 bis 1987|[[Herrmann Reul]]| |1987 bis|[[Eckart Dittmar]]| |bis 2011|[[Karl-Heinz-Barth]]| |ab 2011|[[Stephan Remes]]| |ab 2021|[[Ulfert Hahn]]| !!Vorstand der Kampagne 1956/1957: |1.Vorsitzender:|Balthasar Hachemeister| !!Vorstand der Kampagne 2007/2008: |1.Vorsitzender:|[[Karl-Heinz-Barth]]| |2.Vorsitzender:|Stephan Remes| |Schriftführerin:|Daniela Neuhäuser| |1.Kassiererin:|Elke Dietz| |2.Kassiererin:|Jutta Eckard| |Zeugwart:|Frank Steier| |Pressesprecher:|Gerd Krämer| !!Vorstand der Kampagne 2008/2009: [img[Bildbenennung|../../../Projekte/FROHSINN/Chronik/2008-09/2008-vf-vorstand.jpg]] |1.Vorsitzender:|[[Karl-Heinz-Barth]]| |2.Vorsitzender:|Stephan Remes| |Schriftführerin:|Daniela Neuhäuser| |1.Kassiererin:|Elke Dietz| |2.Kassiererin:|Jutta Eckard| |Zeugwart:|Max Kuntsche| |Zeugwart:|Detlef Unruh| |Pressesprecher:|Gerd Krämer| !!Vorstand der Kampagne 2009/2010: |1.Vorsitzender:|[[Karl-Heinz-Barth]]| |2.Vorsitzender:|Stephan Remes| |Schriftführerin:|Daniela Neuhäuser| |1.Kassiererin:|Elke Dietz| |2.Kassiererin:|Jutta Eckard| |Zeugwart:|Max Kuntsche| |Zeugwart:|Detlef Unruh| |Pressesprecher:|Gerd Krämer| !!Vorstand der Kampagne 2010/2011: [img[Bildbenennung|../../../Projekte/FROHSINN/Chronik/2010-11/2010-vf-vorstand_530.jpg]] |1.Vorsitzender:|[[Karl-Heinz-Barth]]| |2.Vorsitzender:|Stephan Remes| |Schriftführerin:|Daniela Neuhäuser| |1.Kassiererin:|Elke Dietz| |2.Kassiererin:|Jutta Eckard| |Zeugwart:|Max Kuntsche| |Zeugwart:|Detlef Unruh| |Pressesprecher:|Gerd Krämer| !!Vorstand der Kampagne 2011/2012 & 2012/2013: (gewählt für 2 Jahre) |1.Vorsitzender:|Stephan Remes| |2.Vorsitzender:|Freddy Wilkinson| |Schriftführerin:|Daniela Neuhäuser| |1.Kassierer:|Michi Kukuruzovicz| |2.Kassiererin:|Jutta Eckard| |Zeugwart:|Detlev Unruh| |Pressesprecher:|Gerd Krämer| !!Vorstand der Kampagne 2013/2014: |1.Vorsitzender:|Stephan Remes| |2.Vorsitzender:|Freddy Wilkinson| |Schriftführerin:|Daniela Neuhäuser| |1.Kassierer:|Michi Kukuruzovicz| |2.Kassiererin:|Jutta Eckard| |Zeugwart:|Detlev Unruh| |Pressesprecher:|Gerd Krämer| !!Vorstand der Kampagne 2014/2015 & 2015/2016: (gewählt für 2 Jahre) [img[Bildbenennung|../../../Projekte/FROHSINN/Chronik/2014-15/Vorstand-2014-16_590.jpg]] |1.Vorsitzender|Stephan Remes| |2.Vorsitzender:|Gerd Krämer| |Schriftführerin:|Daniela Neuhäuser| |1.Kassierer: |Michi Kukuruzovicz| |2.Kassierer: |Jutta Eckard| |Zeugwart:|Detlev Unruh| |Zeugwart:|Axel Friedrich|ab 2015| |Pressesprecher:|Gerd Krämer| !!Vorstand der Kampagne 2016/2017 & 2017/2018: (gewählt für 2 Jahre) |1.Vorsitzender|Stephan Remes| |2.Vorsitzender:|Gerd Krämer| |Schriftführerin:|Daniela Neuhäuser| |1.Kassierer: |Michi Kukuruzovicz| |2.Kassierer: |Jutta Eckard| |Zeugwart:|Detlev Unruh| |Zeugwart:|Axel Friedrich| |Pressesprecher:|Gerd Krämer| !Vorstand der Kampagne 2018/2019 [img[Bildbenennung|http://www.karnevalverein-frohsinn.de/assets/images/vorstand-2017_570.jpg]] |1.Vorsitzender|Stephan Remes| |2.Vorsitzender:|Gerd Krämer| |Schriftführerin:|Daniela Neuhäuser| |1.Kassierer: |Michi Kukuruzovicz| |2.Kassierer: |Jutta Eckard| |Zeugwart:|Detlev Unruh| |Zeugwart:|Axel Friedrich| |Pressesprecher:|Gerd Krämer| !Vorstand der Kampagne 2019/2020 [img[Bildbenennung|http://www.karnevalverein-frohsinn.de/assets/images/vorstand-2019_570.jpg]] |1.Vorsitzender|Stephan Remes| |2.Vorsitzender:|Jens Landefeld| |Schriftführerin:|Daniela Neuhäuser| |1.Kassierer: |Michi Kukuruzovicz| |2.Kassierer: |Jutta Eckard| |Zeugwart:|Detlev Unruh| |Pressesprecher:|David Görge| !Vorstand der Kampagne 2021/2022 [img[Bildbenennung|http://www.karnevalverein-frohsinn.de/assets/images/vorstand-2021_570.jpg]] |1.Vorsitzender|Ulfert Hahn| |2.Vorsitzender:|Jens Landefeld| |Schriftführerin:|Daniela Neuhäuser| |1.Kassierer: |Michi Kukuruzovicz| |2.Kassierer: |Jutta Eckard| |Zeugwart:|Saskia Werner| |Pressesprecher:|David Görge| --- |[[Chronik-Übersicht]]| |[[Chronik]]|[[Prunk-Sitzungen]]|[[Aktiven-Orden]]|[[Orscheler Karnevalsschlager]]| |[[Präsidenten & Vorstand]]|[[Fastnachtszüge]]|[[Vereins-Fahne]]|[[Fassenachts-Brunnen ]]| |[[Sitzungspräsidenten]]|[[Ohlenspiegel]]|[[Publikationen]]|[[Fassenacht]]| |[[Personen]]|[[Tollitäten]]|[[Vereinshaus]]|[[Oberursel]]| --- |[[Der Frohsinn]]|[[Veranstaltungen]]|[[Bühnenaktive]]|[[Chronik]]| (c) 2021 by R.G.
!Online Strato Datenbank |Datenbank: dbs1335713|Benutzername: dbu1257656|pw: wmDB&KVF(rg)%1890| Server: rdbms.strato.de --- |!STRATO COMMUNICAOR / STRATO Webmail|https://communicator.strato.com/appsuite/signin| !eMail-Verwaltung Stand: 23.10.22<br> Neu:<br> |! eMail-Adresse: |! Weiterleitung an: | ! |! |!Passwort:| |vermietung@karnevalverein-frohsinn.de |ulfert.hahn@gmail.com|J.Landefeld@gmx.net | |kvf+1890VmVh| |gesamtvorstand@karnevalverein-frohsinn.de|ulfert.hahn@gmail.com| | |kvf+1890uLHa| |vorstand@karnevalverein-frohsinn.de |ulfert.hahn@gmail.com |J.Landefeld@gmx.net | |kvf+1890uLHa| |info@karnevalverein-frohsinn.de |ulfert.hahn@gmail.com |J.Landefeld@gmx.net |david.goerge@web.de|kvf+1890uLHa| |ulfert.hahn@karnevalverein-frohsinn.de|ulfert.hahn@gmail.com| | |kvf+1890uLHa| <br> <br> <br> |gesamtvorstand@karnevalverein-frohsinn.de|ulfert.hahn@gmail.com| |webmaster@karnevalverein-frohsinn.de|kvf+1890GeVs| |vermietung@karnevalverein-frohsinn.de|ulfert.hahn@gmail.com|J.Landefeld@gmx.net|webmaster@karnevalverein-frohsinn.de|kvf+1890VmVh| |ulfert.hahn@karnevalverein-frohsinn.de|ulfert.hahn@gmail.com| |webmaster@karnevalverein-frohsinn.de|kvf+1890uLHa| | buchhaltung@[ALLE DOMAINS] | | | webmaster@karnevalverein-frohsinn.de |pw1890kvfobu&bh| Stand: 23.10.2022 |! eMail-Adresse: |! Weiterleitung an: |! Weiterleitung an: |!Passwort:| | presse@[ALLE DOMAINS] | david.goerge@web.de | webmaster@karnevalverein-frohsinn.de |1890kvfobupress| | redaktion@[ALLE DOMAINS] | andreas.breitbart@web.de | webmaster@karnevalverein-frohsinn.de |pw1890kvfobu&red| | vorstand@[ALLE DOMAINS] |ulfert.hahn@gmail.com J.Landefeld@gmx.net | webmaster@karnevalverein-frohsinn.de |pw1890kvfobu&vs| |info@[ALLE DOMAINS] |J.Landefeld@gmx.net ulfert.hahn@gmail.com david.goerge@web.de|webmaster@karnevalverein-frohsinn.de|pw1890kvfobu&inf| | webmaster@[ALLE DOMAINS] | rainerguth@t-online.de | |pw 1890kvfobu&wmrg| |Datenschutz@ALLE DOMAINS |rainerguth@t-onlne.de | |pw 1890kvfobu&dsragut| | | | | | ballett@[ALLE DOMAINS] |eich.jessica@googlemail.com | |kvf+1890%ballet | | brassband@[ALLE DOMAINS] | marc.ladehoff@brassbandfrohsinn.de | | | ehrengarde@[ALLE DOMAINS] |sramert@hotmail.com|Buhli82@gmx.de|kvfrohsinneg| | elferrat@[ALLE DOMAINS] |Falk.mohns@gmx.de |markus.lohnstein@gmail.com | | exprinzen@[ALLE DOMAINS] |jsommer@vogt-sommer.de | | | kleiner-rat@[ALLE DOMAINS] |betty-lauer@online.de<br>unger-andrea@gmx.net sabine.kinkel@t-online.de |webmaster@karnevalverein-frohsinn.de| | konfetti@[ALLE DOMAINS] | dani@knis.de | | | minis@[ALLE DOMAINS] |Sabrina.ta@gmx.de Jenny.landefeld@gmx.net|webmaster@karnevalverein-frohsinn.de| | saenger@[ALLE DOMAINS] | Dres.A.M.Weber@t-online.de | | | tanzgarde@[ALLE DOMAINS] |tanja.bingo@freenet.de || | wortvortragende@[ALLE DOMAINS]|info@karnevalverein-frohsinn.de | | | | | | | gewinnspiel@[ALLE DOMAINS] | webmaster@karnevalverein-frohsinn.de | | | postmaster@[ALLE DOMAINS] | rainerguth@t-online.de | | | anmeldung@[ALLE DOMAINS] | rainerguth@t-online.de | | | | | | |kartenservice@[ALLE DOMAINS]|dani@knis.de<br> jutta.eckard@gmx.de|webmaster@karnevalverein-frohsinn.de|kvfrohsinnks| |senatoren@[ALLE DOMAINS|buchmann.marc-andre@t-online.de|webmaster@karnevalverein-frohsinn.de|kvf1890sen| ||michael@willi-sauer.de| ||jutta.eckard@gmx.de| ||J.Landefeld@gmx.net| ||ulfert.hahn@gmail.com| |stephan.remes@karnevalverein-frohsinn.de|stephan.remes@gmx.de|webmaster@karnevalverein-frohsinn.de|gelöscht | |ulfert.hahn@karnevalverein-frohsinn.de|ulfert.hahn@gmail.com|webmaster@karnevalverein-frohsinn.de|kvf+1890uLHa| |dancing-girls@[ALLE DOMAINS] | webmaster@karnevalverein-frohsinn.de | | |grossegarde@[ALLE DOMAINS] |webmaster@karnevalverein-frohsinn.de | |kvf1890gg| | prinzengarde@[ALLE DOMAINS] | webmaster@karnevalverein-frohsinn.de | | | damenrat@[ALLE DOMAINS] | webmaster@karnevalverein-frohsinn.de | |
!HISTORY der Facebookseite |!Link|https://www.facebook.com/karnevalverein.frohsinn| !22-05-03 Brunnenfest<br> Nach zwei langen Jahren des Wartens ist es nun endlich wieder so weit! Es gibt wieder ein Oberurseler Brunnenfest! Das 41. Brunnenfest wird vom 10.-13. Juni 2022 stattfinden. Auch in diesem Jahr wird der Frohsinn mit Grillstand, Weinstand und Biertempel vertreten sein. !22-05-01 Ambosse<br> Am Freitag, den 20. Mai 2022 findet die "Schlag auf Schlag" Party des Männerballets im Vereinshaus Frohsinn statt. Nach sehr langer Durststrecke möchten die Ambosse wieder kräftig mit allen feiern - egal ob Fastnachter, Musikfan, Nachtschwärmer oder Tanzmaus. Einlass ist ab 19.11 Uhr, Beginn der Veranstaltung ist um 20.11 Uhr. !22-04-28 Bauteam<br> Damit sich der Hof des Vereinshauses bis zu den Vorstellungen im Juli in eine schillernde Bühnenwelt samt Sitzplätzen für das Publikum und Ständen mit Angeboten für das leibliche Wohl unserer Gäste verwandelt, ist noch einiges an Arbeit nötig. Die Mitglieder des Bauteams sind verantwortlich für die Machbarkeiteisüberprüfung der Ideen, den Aufbau der Bühnen und des Backstage Bereichs, sowie die Anordnung der Sitzplätze und Catering Stände und sie waren bereits fleißig!
|![[Archiv]]||!Sonstiges |[[Schlager|Orscheler Karnevalsschlager]]|[[Brunnen]]|[[Karneval Info's|Fastnacht von A-Z]]|[[Links]]| --- --- !!Online Links: Fastnachtlexikon vom SWR : xxxxxxhttp://www.swr.de/fastnacht/lexikon/-/id=2675170/y8ig55/index.html<br> __Mediathek des SWR :__ https://www.swrmediathek.de/player.htm?show=7c9da060-e17f-11e6-921a-005056a12b4c<br> __Online Quellen :__ https://www.kulturrat.de/wp-content/uploads/2020/01/puk02-20.pdf<br> --- !Fastnachts-Lexikon [Das ABC der Fastnacht] Was ist eigentlich die "Bütt"? Und warum ruft man zur Fastnacht "Helau"? Das Fastnachtslexikon hat Antworten. A:<br> [[<A-Z> Aschermittwoch]]<br> F:<br> [[<A-Z> Farben des Karneval]]<br> G:<br> [[<A-Z> Geschichte der 11 als Narrenzahl]]<br> K:<br> [[<A-Z> Karnevalvereine]]<br> [[<A-Z> Karnevalsprinz]]<br> [[<A-Z> Fasching oder Karneval ?]]<br> L:<br> [[<A-Z> Links|Links]]<br> M: <br> [[<A-Z> Museen und Ausstellungen]]<br> N:<br> [[<A-Z> Närrisches Grundgesetz der Mainzer Fastnacht]]<br> [[<A-Z> Narren und die Nazis]]<br> O:<br> [[<A-Z> Oberurseler Fastnachtsbrunnen]]<br> [[<A-Z> Oberurseler Karnevalsschlager]] <br> [[<A-Z> Ohlenspiegel]]<br> [[<A-Z> Orden]]<br> [[<A-Z> Orschel]]<br> R:<br> [[<A-Z> Rathaussturm]]<br> __''Religion & Karneval''__ <br> *[[<A-Z> Berechnung der Saission]]<br> *[[<A-Z> Wo die tollen Tage ihren Ursprung haben]] <br> *[[<A-Z> Von Teufeln, Hexen und anderen Masken]] <br> *[[<A-Z> Karnevalslied und Religion sind verträglich]]<br> *[[<A-Z> Vom Sinn dieser unsinnigen Zeit]]<br> V:<br> Vereine --> [[<A-Z> Karnevalvereine]] <br> --- --- [[Nach oben...|Fastnacht von A-Z]]<br>
!FOTOGALERIE : "Karneval ~OpenAir 2022" |[img[https://www.karnevalverein-frohsinn.de/mob/assets/images/03-2022-kvf-fastnachtopenair_sk-6-1024x768.jpg]]||[img[https://www.karnevalverein-frohsinn.de/mob/assets/images/03-2022-kvf-fastnachtopenair_sk-6-644x362.jpg]]||[img[https://www.karnevalverein-frohsinn.de/mob/assets/images/03-2022-kvf-fastnachtopenair_sk-6-644x483.jpg]]||[img[https://www.karnevalverein-frohsinn.de/mob/assets/images/03-2022-kvf-fastnachtopenair-sk-6-644x362.jpg]]| |[img[https://www.karnevalverein-frohsinn.de/mob/assets/images/03-2022-kvf-fastnachtopenair-sk-6-644x483.jpg]]||[img[https://www.karnevalverein-frohsinn.de/mob/assets/images/04-2022-kvf-fastnachtopenair_sk-10-644x483.jpg]]||[img[https://www.karnevalverein-frohsinn.de/mob/assets/images/04-2022-kvf-fastnachtopenair_sk-10-644x483.jpg]]||[img[https://www.karnevalverein-frohsinn.de/mob/assets/images/04-2022-kvf-fastnachtopenair-sk-10-644x483.jpg]]| |[img[https://www.karnevalverein-frohsinn.de/mob/assets/images/05-2022-kvf-fastnachtopenair_sk-4-644x483.jpg]]||[img[https://www.karnevalverein-frohsinn.de/mob/assets/images/05-2022-kvf-fastnachtopenair-sk-4-644x483.jpg]]||[img[https://www.karnevalverein-frohsinn.de/mob/assets/images/05-2022-kvf-fastnachtopenair-sk-4-644x483.jpg]]||[img[https://www.karnevalverein-frohsinn.de/mob/assets/images/06-2022-kvf-fastnachtopenair_sk-1-644x483.jpg]]| |[img[https://www.karnevalverein-frohsinn.de/mob/assets/images/06-2022-kvf-fastnachtopenair-sk-1-644x483.jpg]]||[img[https://www.karnevalverein-frohsinn.de/mob/assets/images/09-2022-kvf-fastnachtopenair_sk-11-644x859.jpg]]||[img[https://www.karnevalverein-frohsinn.de/mob/assets/images/09-2022-kvf-fastnachtopenair-sk-11-644x859.jpg]]||[img[https://www.karnevalverein-frohsinn.de/mob/assets/images/10-2022-kvf-fastnachtopenair_sk-9-644x859.jpg]]| |[img[https://www.karnevalverein-frohsinn.de/mob/assets/images/10-2022-kvf-fastnachtopenair-sk-9-644x859.jpg]]||[img[https://www.karnevalverein-frohsinn.de/mob/assets/images/13-2022-kvf-fastnachtopenair_hk-11-644x859.jpg]]||[img[https://www.karnevalverein-frohsinn.de/mob/assets/images/13-2022-kvf-fastnachtopenair-hk-11-644x859.jpg]]||[img[https://www.karnevalverein-frohsinn.de/mob/assets/images/14-2022-kvf-fastnachtopenair_hk-12-3024x4032.jpg]]| |[img[https://www.karnevalverein-frohsinn.de/mob/assets/images/14-2022-kvf-fastnachtopenair-hk-12-3024x4032.jpg]]||[img[https://www.karnevalverein-frohsinn.de/mob/assets/images/15-2022-kvf-fastnachtopenair_hk-13-3024x4032.jpg]]||[img[https://www.karnevalverein-frohsinn.de/mob/assets/images/15-2022-kvf-fastnachtopenair-hk-13-3024x4032.jpg]]||[img[https://www.karnevalverein-frohsinn.de/mob/assets/images/17-2022-kvf-fastnachtopenair_hk-20-644x859.jpg]]| |[img[https://www.karnevalverein-frohsinn.de/mob/assets/images/17-2022-kvf-fastnachtopenair-hk-20-644x859.jpg]]||[img[https://www.karnevalverein-frohsinn.de/mob/assets/images/19-2022-kvf-fastnachtopenair_hk-3-1117x1280.jpg]]||[img[https://www.karnevalverein-frohsinn.de/mob/assets/images/20-2022-kvf-fastnachtopenair_hk-2-644x859.jpg]]||[img[https://www.karnevalverein-frohsinn.de/mob/assets/images/20-2022-kvf-fastnachtopenair-hk-2-644x859.jpg]]| --- --- [[Nach oben...|FG2022-karnevalopenair]]
!FOTOGALERIE : "Orschelrette - Im weißen Bembel am Maasgrundsee" |[img[https://www.karnevalverein-frohsinn.de/mob/assets/images/2022-orschelrette_pic01-1900x814.jpg]]|[img[https://www.karnevalverein-frohsinn.de/mob/assets/images/2022-orschelrette_pic02-1900x814.jpg]]| |[img[https://www.karnevalverein-frohsinn.de/mob/assets/images/2022-orschelrette_pic03-1900x814.jpg]]|[img[https://www.karnevalverein-frohsinn.de/mob/assets/images/2022-orschelrette_pic04-1900x814.jpg]]| |[img[https://www.karnevalverein-frohsinn.de/mob/assets/images/2022-orschelrette_pic05-1900x814.jpg]]|[img[https://www.karnevalverein-frohsinn.de/mob/assets/images/2022-orschelrette_pic06-1900x814.jpg]]| |[img[https://www.karnevalverein-frohsinn.de/mob/assets/images/2022-orschelrette_pic07-1900x814.jpg]]|[img[https://www.karnevalverein-frohsinn.de/mob/assets/images/2022-orschelrette_pic08-1900x814.jpg]]| |[img[https://www.karnevalverein-frohsinn.de/mob/assets/images/2022-orschelrette_pic09-1900x814.jpg]]|[img[https://www.karnevalverein-frohsinn.de/mob/assets/images/2022-orschelrette_pic10-1900x814.jpg]]| |[img[https://www.karnevalverein-frohsinn.de/mob/assets/images/2022-orschelrette_pic11-1900x814.jpg]]|[img[https://www.karnevalverein-frohsinn.de/mob/assets/images/2022-orschelrette_pic12-1900x814.jpg]]| |[img[https://www.karnevalverein-frohsinn.de/mob/assets/images/2022-orschelrette_pic13-1900x814.jpg]]|[img[https://www.karnevalverein-frohsinn.de/mob/assets/images/2022-orschelrette_pic14-1900x814.jpg]]| |[img[https://www.karnevalverein-frohsinn.de/mob/assets/images/2022-orschelrette_pic15-1900x814.jpg]]|[img[https://www.karnevalverein-frohsinn.de/mob/assets/images/2022-orschelrette_pic16-1900x814.jpg]]| |[img[https://www.karnevalverein-frohsinn.de/mob/assets/images/2022-orschelrette_pic17-1900x814.jpg]]|[img[https://www.karnevalverein-frohsinn.de/mob/assets/images/2022-orschelrette_pic18-1900x814.jpg]]| |[img[https://www.karnevalverein-frohsinn.de/mob/assets/images/2022-orschelrette_pic19-1900x814.jpg]]|[img[https://www.karnevalverein-frohsinn.de/mob/assets/images/2022-orschelrette_pic20-1900x814.jpg]]| |[img[https://www.karnevalverein-frohsinn.de/mob/assets/images/2022-orschelrette_pic21-1900x814.jpg]]|[img[https://www.karnevalverein-frohsinn.de/mob/assets/images/2022-orschelrette_pic22-1900x814.jpg]]| |[img[https://www.karnevalverein-frohsinn.de/mob/assets/images/2022-orschelrette_pic23-1900x814.jpg]]|[img[https://www.karnevalverein-frohsinn.de/mob/assets/images/2022-orschelrette_pic24-1900x814.jpg]]| |[img[https://www.karnevalverein-frohsinn.de/mob/assets/images/2022-orschelrette_pic25-1900x814.jpg]]|[img[https://www.karnevalverein-frohsinn.de/mob/assets/images/2022-orschelrette_pic26-1900x814.jpg]]| |[img[https://www.karnevalverein-frohsinn.de/mob/assets/images/2022-orschelrette_pic27-1900x814.jpg]]|[img[https://www.karnevalverein-frohsinn.de/mob/assets/images/2022-orschelrette_pic28-1900x814.jpg]]| |[img[https://www.karnevalverein-frohsinn.de/mob/assets/images/2022-orschelrette_pic29-1900x814.jpg]]|[img[https://www.karnevalverein-frohsinn.de/mob/assets/images/2022-orschelrette_pic30-1900x814.jpg]]| |[img[https://www.karnevalverein-frohsinn.de/mob/assets/images/2022-orschelrette_pic31-1900x814.jpg]]|[img[https://www.karnevalverein-frohsinn.de/mob/assets/images/2022-orschelrette_pic32-1900x814.jpg]]| --- --- [[Nach oben...|FG2022-orschelrette]]
!FOTOGALERIE : Abschiedsgala Schüssel 23.09.2022 Fotos: Andy Breitbart [img[http://gallery.breitbartfotografie.de/Schuessel_Gala/slides/bIMG_1489.jpg]] [img[http://gallery.breitbartfotografie.de/Schuessel_Gala/slides/bIMG_1489.jpg]] [img[http://gallery.breitbartfotografie.de/Schuessel_Gala/slides/bIMG_1491.jpg]] [img[http://gallery.breitbartfotografie.de/Schuessel_Gala/slides/bIMG_1494.jpg]] [img[http://gallery.breitbartfotografie.de/Schuessel_Gala/slides/bIMG_1497.jpg]] [img[http://gallery.breitbartfotografie.de/Schuessel_Gala/slides/bIMG_1498.jpg]] [img[http://gallery.breitbartfotografie.de/Schuessel_Gala/slides/bIMG_1500.jpg]] [img[http://gallery.breitbartfotografie.de/Schuessel_Gala/slides/bIMG_1502.jpg]] [img[http://gallery.breitbartfotografie.de/Schuessel_Gala/slides/bIMG_1507.jpg]] [img[http://gallery.breitbartfotografie.de/Schuessel_Gala/slides/bIMG_1511.jpg]] [img[http://gallery.breitbartfotografie.de/Schuessel_Gala/slides/bIMG_1512.jpg]] [img[http://gallery.breitbartfotografie.de/Schuessel_Gala/slides/bIMG_1513.jpg]] [img[http://gallery.breitbartfotografie.de/Schuessel_Gala/slides/bIMG_1519.jpg]] [img[http://gallery.breitbartfotografie.de/Schuessel_Gala/slides/bIMG_1521.jpg]] [img[http://gallery.breitbartfotografie.de/Schuessel_Gala/slides/bIMG_1524.jpg]] [img[http://gallery.breitbartfotografie.de/Schuessel_Gala/slides/bIMG_1525.jpg]] [img[http://gallery.breitbartfotografie.de/Schuessel_Gala/slides/bIMG_1526.jpg]] [img[http://gallery.breitbartfotografie.de/Schuessel_Gala/slides/bIMG_1528.jpg]] [img[http://gallery.breitbartfotografie.de/Schuessel_Gala/slides/bIMG_1531.jpg]] [img[http://gallery.breitbartfotografie.de/Schuessel_Gala/slides/bIMG_1538.jpg]] [img[http://gallery.breitbartfotografie.de/Schuessel_Gala/slides/bIMG_1542.jpg]] [img[http://gallery.breitbartfotografie.de/Schuessel_Gala/slides/bIMG_1547.jpg]] [img[http://gallery.breitbartfotografie.de/Schuessel_Gala/slides/bIMG_1548.jpg]] [img[http://gallery.breitbartfotografie.de/Schuessel_Gala/slides/bIMG_1552.jpg]] [img[http://gallery.breitbartfotografie.de/Schuessel_Gala/slides/bIMG_1557.jpg]] [img[http://gallery.breitbartfotografie.de/Schuessel_Gala/slides/bIMG_1558.jpg]] [img[http://gallery.breitbartfotografie.de/Schuessel_Gala/slides/bIMG_1562.jpg]] [img[http://gallery.breitbartfotografie.de/Schuessel_Gala/slides/bIMG_1563.jpg]] [img[http://gallery.breitbartfotografie.de/Schuessel_Gala/slides/bIMG_1570.jpg]] [img[http://gallery.breitbartfotografie.de/Schuessel_Gala/slides/bIMG_1574.jpg]] [img[http://gallery.breitbartfotografie.de/Schuessel_Gala/slides/bIMG_1575.jpg]] [img[http://gallery.breitbartfotografie.de/Schuessel_Gala/slides/bIMG_1576.jpg]] [img[http://gallery.breitbartfotografie.de/Schuessel_Gala/slides/bIMG_1579.jpg]] [img[http://gallery.breitbartfotografie.de/Schuessel_Gala/slides/bIMG_1582.jpg]] [img[http://gallery.breitbartfotografie.de/Schuessel_Gala/slides/bIMG_1583.jpg]] [img[http://gallery.breitbartfotografie.de/Schuessel_Gala/slides/bIMG_1584.jpg]] [img[http://gallery.breitbartfotografie.de/Schuessel_Gala/slides/bIMG_1585.jpg]] [img[http://gallery.breitbartfotografie.de/Schuessel_Gala/slides/bIMG_1588.jpg]] [img[http://gallery.breitbartfotografie.de/Schuessel_Gala/slides/bIMG_1591.jpg]] [img[http://gallery.breitbartfotografie.de/Schuessel_Gala/slides/bIMG_1597.jpg]] [img[http://gallery.breitbartfotografie.de/Schuessel_Gala/slides/bIMG_1600.jpg]] [img[http://gallery.breitbartfotografie.de/Schuessel_Gala/slides/bIMG_1608.jpg]] [img[http://gallery.breitbartfotografie.de/Schuessel_Gala/slides/bIMG_1609.jpg]] [img[http://gallery.breitbartfotografie.de/Schuessel_Gala/slides/bIMG_1614.jpg]] [img[http://gallery.breitbartfotografie.de/Schuessel_Gala/slides/bIMG_1615.jpg]] [img[http://gallery.breitbartfotografie.de/Schuessel_Gala/slides/bIMG_1618.jpg]] [img[http://gallery.breitbartfotografie.de/Schuessel_Gala/slides/bIMG_1619.jpg]] [img[http://gallery.breitbartfotografie.de/Schuessel_Gala/slides/bIMG_1621.jpg]] [img[http://gallery.breitbartfotografie.de/Schuessel_Gala/slides/bIMG_1626.jpg]] [img[http://gallery.breitbartfotografie.de/Schuessel_Gala/slides/bIMG_1627.jpg]] [img[http://gallery.breitbartfotografie.de/Schuessel_Gala/slides/bIMG_1628.jpg]] [img[http://gallery.breitbartfotografie.de/Schuessel_Gala/slides/bIMG_1636.jpg]] [img[http://gallery.breitbartfotografie.de/Schuessel_Gala/slides/bIMG_1639.jpg]] [img[http://gallery.breitbartfotografie.de/Schuessel_Gala/slides/bIMG_1641.jpg]] [img[http://gallery.breitbartfotografie.de/Schuessel_Gala/slides/bIMG_1644.jpg]] [img[http://gallery.breitbartfotografie.de/Schuessel_Gala/slides/bIMG_1647.jpg]] [img[http://gallery.breitbartfotografie.de/Schuessel_Gala/slides/bIMG_1651.jpg]] [img[http://gallery.breitbartfotografie.de/Schuessel_Gala/slides/bIMG_1653.jpg]] [img[http://gallery.breitbartfotografie.de/Schuessel_Gala/slides/bIMG_1662.jpg]] [img[http://gallery.breitbartfotografie.de/Schuessel_Gala/slides/bIMG_1663.jpg]] [img[http://gallery.breitbartfotografie.de/Schuessel_Gala/slides/bIMG_1665.jpg]] [img[http://gallery.breitbartfotografie.de/Schuessel_Gala/slides/bIMG_1672.jpg]] [img[http://gallery.breitbartfotografie.de/Schuessel_Gala/slides/bIMG_1674.jpg]] [img[http://gallery.breitbartfotografie.de/Schuessel_Gala/slides/bIMG_1675.jpg]] [img[http://gallery.breitbartfotografie.de/Schuessel_Gala/slides/bIMG_1676.jpg]] [img[http://gallery.breitbartfotografie.de/Schuessel_Gala/slides/bIMG_1680.jpg]] [img[http://gallery.breitbartfotografie.de/Schuessel_Gala/slides/bIMG_1681.jpg]] [img[http://gallery.breitbartfotografie.de/Schuessel_Gala/slides/bIMG_1682.jpg]] [img[http://gallery.breitbartfotografie.de/Schuessel_Gala/slides/bIMG_1691.jpg]] [img[http://gallery.breitbartfotografie.de/Schuessel_Gala/slides/bIMG_1695.jpg]] [img[http://gallery.breitbartfotografie.de/Schuessel_Gala/slides/bIMG_1699.jpg]] [img[http://gallery.breitbartfotografie.de/Schuessel_Gala/slides/bIMG_1701.jpg]] [img[http://gallery.breitbartfotografie.de/Schuessel_Gala/slides/bIMG_1704.jpg]] [img[http://gallery.breitbartfotografie.de/Schuessel_Gala/slides/bIMG_1710.jpg]] [img[http://gallery.breitbartfotografie.de/Schuessel_Gala/slides/bIMG_1714.jpg]] [img[http://gallery.breitbartfotografie.de/Schuessel_Gala/slides/bIMG_1728.jpg]] [img[http://gallery.breitbartfotografie.de/Schuessel_Gala/slides/bIMG_1729.jpg]] [img[http://gallery.breitbartfotografie.de/Schuessel_Gala/slides/bIMG_1733.jpg]] [img[http://gallery.breitbartfotografie.de/Schuessel_Gala/slides/bIMG_1734.jpg]] [img[http://gallery.breitbartfotografie.de/Schuessel_Gala/slides/bIMG_1738.jpg]] [img[http://gallery.breitbartfotografie.de/Schuessel_Gala/slides/bIMG_1740.jpg]] [img[http://gallery.breitbartfotografie.de/Schuessel_Gala/slides/bIMG_1741.jpg]] [img[http://gallery.breitbartfotografie.de/Schuessel_Gala/slides/bIMG_1743.jpg]] [img[http://gallery.breitbartfotografie.de/Schuessel_Gala/slides/bIMG_1745.jpg]] [img[http://gallery.breitbartfotografie.de/Schuessel_Gala/slides/bIMG_1750.jpg]] [img[http://gallery.breitbartfotografie.de/Schuessel_Gala/slides/bIMG_1756.jpg]] [img[http://gallery.breitbartfotografie.de/Schuessel_Gala/slides/bIMG_1759.jpg]] [img[http://gallery.breitbartfotografie.de/Schuessel_Gala/slides/bIMG_1760.jpg]] [img[http://gallery.breitbartfotografie.de/Schuessel_Gala/slides/bIMG_1762.jpg]] [img[http://gallery.breitbartfotografie.de/Schuessel_Gala/slides/bIMG_1766.jpg]] [img[http://gallery.breitbartfotografie.de/Schuessel_Gala/slides/bIMG_1777.jpg]] [img[http://gallery.breitbartfotografie.de/Schuessel_Gala/slides/bIMG_1779.jpg]] [img[http://gallery.breitbartfotografie.de/Schuessel_Gala/slides/bIMG_1780.jpg]] [img[http://gallery.breitbartfotografie.de/Schuessel_Gala/slides/bIMG_1782.jpg]] [img[http://gallery.breitbartfotografie.de/Schuessel_Gala/slides/bIMG_1783.jpg]] [img[http://gallery.breitbartfotografie.de/Schuessel_Gala/slides/bIMG_1786.jpg]] [img[http://gallery.breitbartfotografie.de/Schuessel_Gala/slides/bIMG_1790.jpg]] [img[http://gallery.breitbartfotografie.de/Schuessel_Gala/slides/bIMG_1792.jpg]] [img[http://gallery.breitbartfotografie.de/Schuessel_Gala/slides/bIMG_1803.jpg]] [img[http://gallery.breitbartfotografie.de/Schuessel_Gala/slides/bIMG_1805.jpg]] [img[http://gallery.breitbartfotografie.de/Schuessel_Gala/slides/bIMG_1806.jpg]] [img[http://gallery.breitbartfotografie.de/Schuessel_Gala/slides/bIMG_1807.jpg]] [img[http://gallery.breitbartfotografie.de/Schuessel_Gala/slides/bIMG_1808.jpg]] [img[http://gallery.breitbartfotografie.de/Schuessel_Gala/slides/bIMG_1809.jpg]] [img[http://gallery.breitbartfotografie.de/Schuessel_Gala/slides/bIMG_1811.jpg]] [img[http://gallery.breitbartfotografie.de/Schuessel_Gala/slides/bIMG_1812.jpg]] [img[http://gallery.breitbartfotografie.de/Schuessel_Gala/slides/bIMG_1819.jpg]] [img[http://gallery.breitbartfotografie.de/Schuessel_Gala/slides/bIMG_1820.jpg]] [img[http://gallery.breitbartfotografie.de/Schuessel_Gala/slides/bIMG_1822.jpg]] [img[http://gallery.breitbartfotografie.de/Schuessel_Gala/slides/bIMG_1823.jpg]] [img[http://gallery.breitbartfotografie.de/Schuessel_Gala/slides/bIMG_1825.jpg]] !! Videos |Facebook|Heike Libbert|https://www.facebook.com/100000355189197/videos/pcb.5737361242952325/569714281618779| --- --- [[Nach oben...|FG2022-schuesselgala]]
[img width=19% [https://www.karnevalverein-frohsinn.de/mob/assets/images/mob-vst-2022-frohsinnopen-plakat-1160x1640.jpg]] [img width=19% [https://www.karnevalverein-frohsinn.de/mob/assets/images/2022-vfopenmob-1-1000x669.jpg]] [img width=19% [https://www.karnevalverein-frohsinn.de/mob/assets/images/2022-vfopenmob-2-1000x669.jpg]] [img width=19% [https://www.karnevalverein-frohsinn.de/mob/assets/images/2022-vfopenmob-3-1000x669.jpg]] [img width=19% [https://www.karnevalverein-frohsinn.de/mob/assets/images/2022-vfopenmob-4-1000x669.jpg]] [img width=19% [https://www.karnevalverein-frohsinn.de/mob/assets/images/2022-vfopenmob-5-1000x669.jpg]] [img width=19% [https://www.karnevalverein-frohsinn.de/mob/assets/images/2022-vfopenmob-6-1000x669.jpg]] [img width=19% [https://www.karnevalverein-frohsinn.de/mob/assets/images/2022-vfopenmob-7-1000x669.jpg]] [img width=19% [https://www.karnevalverein-frohsinn.de/mob/assets/images/2022-vfopenmob-8-1000x669.jpg]] [img width=19% [https://www.karnevalverein-frohsinn.de/mob/assets/images/2022-vfopenmob-9-1000x669.jpg]] [img width=19% [https://www.karnevalverein-frohsinn.de/mob/assets/images/2022-vfopenmob-10-1000x669.jpg]] [img width=19% [https://www.karnevalverein-frohsinn.de/mob/assets/images/2022-vfopenmob-11-1000x669.jpg]] [img width=19% [https://www.karnevalverein-frohsinn.de/mob/assets/images/2022-vfopenmob-12-1000x669.jpg]] [img width=19% [https://www.karnevalverein-frohsinn.de/mob/assets/images/2022-vfopenmob-13-1000x669.jpg]] [img width=19% [https://www.karnevalverein-frohsinn.de/mob/assets/images/2022-vfopenmob-14-1000x669.jpg]] [img width=19% [https://www.karnevalverein-frohsinn.de/mob/assets/images/2022-vfopenmob-15-1000x669.jpg]] [img width=19% [https://www.karnevalverein-frohsinn.de/mob/assets/images/2022-vfopenmob-16-1000x669.jpg]] [img width=19% [https://www.karnevalverein-frohsinn.de/mob/assets/images/2022-vfopenmob-17-1000x669.jpg]] [img width=19% [https://www.karnevalverein-frohsinn.de/mob/assets/images/2022-vfopenmob-18-1000x669.jpg]] [img width=19% [https://www.karnevalverein-frohsinn.de/mob/assets/images/2022-vfopenmob-19-1000x669.jpg]] [img width=19% [https://www.karnevalverein-frohsinn.de/mob/assets/images/2022-vfopenmob-20-1000x669.jpg]] [img width=19% [https://www.karnevalverein-frohsinn.de/mob/assets/images/21-dsc-267-1000x669.jpg]] [img width=19% [https://www.karnevalverein-frohsinn.de/mob/assets/images/22-dsc-277-1000x669.jpg]] [img width=19% [https://www.karnevalverein-frohsinn.de/mob/assets/images/23-dsc-288-1000x669.jpg]] [img width=19% [https://www.karnevalverein-frohsinn.de/mob/assets/images/24-dsc-293-1000x669.jpg]] [img width=19% [https://www.karnevalverein-frohsinn.de/mob/assets/images/25-dsc-304-1000x669.jpg]] [img width=19% [https://www.karnevalverein-frohsinn.de/mob/assets/images/26-dsc-314-1000x669.jpg]] [img width=19% [https://www.karnevalverein-frohsinn.de/mob/assets/images/27-dsc-334-1000x669.jpg]] [img width=19% [https://www.karnevalverein-frohsinn.de/mob/assets/images/28-dsc-351-1000x669.jpg]] <br> Fotos: Sabine Kinkel --- --- [[Nach oben...|FOTOGALERIE 2022 Eroeffnungssitzung]]
|!Fotogalerie |Andy Breitbart |Taunuskarnevalsumzug_KVF l |[[Alle Fotos ansehen|http://www.kvf1890.de/Taunuskarnevalsumzug_KVF/]]| [img [http://www.kvf1890.de/Taunuskarnevalsumzug_KVF/slides/KVFBanner%20Kopie.jpg]] [img width=19% [http://www.kvf1890.de/Taunuskarnevalsumzug_KVF/slides/cHN5A3282.jpg]] [img width=19% [http://www.kvf1890.de/Taunuskarnevalsumzug_KVF/slides/cHN5A3284.jpg]] [img width=19% [http://www.kvf1890.de/Taunuskarnevalsumzug_KVF/slides/cHN5A3285.jpg]] [img width=19% [http://www.kvf1890.de/Taunuskarnevalsumzug_KVF/slides/cHN5A3288.jpg]] [img width=19% [http://www.kvf1890.de/Taunuskarnevalsumzug_KVF/slides/cHN5A3291.jpg]] [img [http://www.kvf1890.de/Taunuskarnevalsumzug_KVF/slides/cHN5A3282.jpg]] |!Fotogalerie |Andy Breitbart |Taunuskarnevalsumzug_KVF l |[[Alle Fotos ansehen|http://www.kvf1890.de/Taunuskarnevalsumzug_KVF/]]| --- --- [[Nach oben...|FOTOGALERIE 2023 Karnevalszug]]
|[[Frohsinn Cloud]]|[[Cloud Struktur]]|[[Cloud LogBuch]]| --- !Frohsinn Cloud --- xxxxx
|[[Archiv]]|[[Chronik]]|[[Zeitleiste]]| : : : |[[Kampagne 1998/99]]| < - > |[[Kampagne 2000/01]]| --- !''Kampagne 1999/2000'' --- --- [[Nach oben...|Kampagne 1999/2000]]<br> --- (c) 2022 by R.G.
|[[Archiv]]|[[Chronik]]|[[Zeitleiste]]| : : : |[[Kampagne 1999/2000]]| < - > |[[Kampagne 2001/02]]| --- !''Kampagne 2000/01'' --- --- [[Nach oben...|Kampagne 2000/01]]<br> --- (c) 2022 by R.G.
|[[Archiv]]|[[Chronik]]|[[Zeitleiste]]| : : : |[[Kampagne 2000/01]]| < - > |[[Kampagne 2002/03]]| --- !''Kampagne 2001/02'' --- --- [[Nach oben...|Kampagne 2001/02]]<br> --- (c) 2022 by R.G.
|[[Archiv]]|[[Chronik]]|[[Zeitleiste]]| : : : |[[Kampagne 2001/02]]| < - > |[[Kampagne 2003/04]]| --- !''Kampagne 2002/03'' --- !!Terminkalender der Kampage 2002/03 | 01.02.03 | Prinzenball | | | 07.02.03 | 1. Fremdensitzung | Stadthalle Oberursel | | 08.02.03 | 2. Fremdensitzung | Stadthalle Oberursel | | 13.02.03 | Seniorensitzung | Stadthalle Oberursel | | 14.02.03 | Hexensitzung | Stadthalle Oberursel | | 15.02.03 | 3. Fremdensitzung | Stadthalle Oberursel | | 16.02.03 | 4. Fremdensitzung | Stadthalle Oberursel | | 22.02.03 | Party Hammer | Vereinshaus | | 01.03.03 | Kindermaskenball | Vereinshaus | | 02.03.03 | Karnevals-Zug | Oberursel | | 04.03.02 | Karnevals-Zug | Oberhöchstadt | | 05.03.03 | Heringsessen | Vereinshaus | | 08.03.03 | Ordensfest | Vereinshaus | | 13.06. bis 16.06.03 | Brunnenfest Oberursel | | | 11./12.10.03 | Oktoberfest | Vereinshaus | --- --- [[Nach oben...|Kampagne 2002/03]]<br> --- (c) 2022 by R.G.
|[[Archiv]]|[[Chronik]]|[[Zeitleiste]]| : : : |[[Kampagne 2002/03]]| < - > |[[Kampagne 2004/05]]| --- !''Kampagne 2003/04'' --- !Terminkalender der Kampage 2003/04 | 29.01.04 | Generalprobe | Stadthalle | | 30.01.04 | 1. Sitzung | Stadthalle | | 31.01.04 | 2. Sitzung | Stadthalle | | 07.02.04 | 3. Sitzung | Stadthalle | | 14.02.04 | Party Hammer | Vereinshaus | | 21.02.04 | Kindermaskenball | Vereinshaus | | 28.02.04 | Ordensfest | Vereinshaus | | 14.04.04 | Jahreshauptversammlung | Vereinshaus | --- --- [[Nach oben...|Kampagne 2003/04]]<br> --- (c) 2022 by R.G.
|[[Der Frohsinn]]|[[Veranstaltungen]]|[[Bühnenaktive]]|[[Chronik]]| --- |[[Kampagne 2006/07]]|[[Chronik-Übersicht]]|[[Kampagne 2008/09]]| --- !Kampagne 2007/08 <p><iframe src="https://www.karnevalverein-frohsinn.de/html/kvf-chronik-2007-08.html" frameborder="0" width="1040" height="250"></iframe></p><br> Link: https://www.karnevalverein-frohsinn.de/html/kvf-chronik-2007-08.html <br> !!Anmerkungen zur Kampagne <br> <br> !!Vorstand der Kampagne 2007/2008<br> !!Anmerkungen zur JHV |xxxxxx |xx.xx.xx|JHV 2007 |Vereinshaus Frohsinn | <br> <br> <br> !!Terminkalender der Kampage 2007/2008 |!Tag |!Datum |!Veranstaltung |!Ort |!Veranstalter | | Samstag | 01.09.07 | Grosses Jubiläums-Fest | Vereinshaus | Karnevalverein Frohsinn | | Sonntag | 11.11.07 | Prinzen-Inthronisation | Stadthalle | Narrenrat | | Samstag | 17.11.07 | Frohsinn Eröffnungssitzung | Vereinshaus | Karnevalverein Frohsinn | | Freitag | 23.11.07 | 1. KR-Sitzung | Vereinshaus | Kleiner Rat | | Samstag | 24.11.07 | 2. KR-Sitzung | Vereinshaus | Kleiner Rat | | Samstag | 05.01.08 | Prinzenball | Mövenpick | Narrenrat | | Freitag | 11.01.08 | 1. Große Prunksitzung | Stadthalle | Karnevalverein Frohsinn | | Samstag | 12.01.08 | 2. Große Prunksitzung | Stadthalle | Karnevalverein Frohsinn | | Freitag | 18.01.08 | Hexensitzung | Stadthalle | Karnevalverein Frohsinn | | Samstag | 19.01.08 | 3. Große Prunksitzung | Stadthalle | Karnevalverein Frohsinn | | Samstag | 26.01.08 | Glitter-Rock-Party | Vereinshaus | Karnevalverein Frohsinn | | Donnerstag | 31.01.08 | Strandparty | Vereinshaus | Karnevalverein Frohsinn | | Freitag | 01.02.08 | Katakombenfasching | Schule Mitte | Förderverein Schule Mitte | | Samstag | 02.02.08 | Kindermaskenball | Vereinshaus | Karnevalverein Frohsinn | | Sonntag | 03.02.08 | Fastnachtszug | Oberursel | Vereinsring | | Dienstag | 05.02.08 | Fastnachtszug | Oberhöchstadt | | | Mittwoch | 06.02.08 | Heringsessen | Vereinshaus | Karnevalverein Frohsinn | | Samstag | 09.02.08 | Frohsinn-Ordensfest | Vereinshaus | Karnevalverein Frohsinn | <br><br><br> [[Nach oben...|Kampagne 2007/08]] --- |[[Kampagne 2006/07]]|[[Chronik-Übersicht]]|[[Kampagne 2008/09]]| --- |[[Der Frohsinn]]|[[Veranstaltungen]]|[[Bühnenaktive]]|[[Chronik]]| |(c) 2022 by R.G.|Status dieser Seite:| i.A.|
|[[Der Frohsinn]]|[[Veranstaltungen]]|[[Bühnenaktive]]|[[Chronik]]| --- |[[Kampagne 2009/10]]|[[Chronik-Übersicht]]|[[Kampagne 2011/12]]| --- --- __ab hier noch zu bearbeiten:__ !Kampagne 2010/11 !!Vorstand der Kampagne 2010/2011<br> |1.Vorsitzender:|[[Karl-Heinz-Barth]]| |2.Vorsitzender:|[[Stephan Remes]]| |Schriftführerin:|Daniela Neuhäuser| |1.Kassiererin:|Elke Dietz| |2.Kassiererin:|Jutta Eckard| |Zeugwart:|Max Kuntsche| |Zeugwart:|Detlef Unruh| |Pressesprecher:|Gerd Krämer| !!Anmerkungen zur JHV <br> <br> <br> !!Anmerkungen zur kommenden Kampagne |[[Pressemeldungen 2010/11]]| Der Frohsinn stellt in der Kapagne 2010/11 den Oberurseler Karnevalsprinzen des Narrenrats !!!Prinz Frederick I. |!Kampagne|!Name|!Bürgerlicher Name|!Heimatverein|!Page|!Page|!Hofmarschall|!Homepage| |2010/11|Frederick I.|Frederick Wilkinson|KV-Frohsinn|Yvonn Volz|Melanie Bremser|Ex-Prinz Ludwig I. (Ludwig Reuscher)|www.prinzfrederick1.de (offline)| *Prinz Frederick I. ist der 64. Prinz der Orschler Fastnacht<br> *Hauptmotto: "Wenn nicht jetzt, wann dann"<br> *Prinzen-Inthronisation am 11.11.10 Stadthalle Oberursel <br> !!Terminkalender der Kampage 2010/2011 |Samstag|16.01.82|Große Fremdensitzung |Turnhalle der Kennedy-Schule| |Sonntag| 17.01.82|Große Fremdensitzung |Turnhalle der Kennedy-Schule| |Samstag|23.01.82|Große Fremdensitzung |Turnhalle der Kennedy-Schule| |Sonntag|24.01.82|Große Fremdensitzung |Turnhalle der Kennedy-Schule| |Samstag|30.01.82|Maskenball "Treffpunkt Oase" |Turnhalle Korfstraße| |Samstag|06.02.82|Prinzenball Prinzeninthronisation |Turnhalle Korfstraße| |Samstag|13.02.82|Kostümball der Ehrengarde |Turnhalle Korfstraße| <br> !!Eröffnung der Kampagne 13.11.10 Vereinshaus Motto: "Wetten das..." <br> !!Sitzungen des Kleinen Rat |Freitag|19.11.2010|KR-Sitzung|"KRass in den Wechseljahren"|Vereinshaus Frohsinn| |Samstag|20.11.2010|KR-Sitzung|"KRass in den Wechseljahren"|Vereinshaus Frohsinn| |!Multimedia |!Titel |! Untertitel |!Link | |KR Chronik|KR Sitzung 2010 |xxxxxxxxxx |xxxxxxxxxx| |Fotogalerie|Fotos von... |xxxxxxxxxx |xxxxxxxxxx| |Video |xxxxxxxxxxx |xxxxxxxxxx |xxxxxxxxxx| |Presse |TZ 23.10.10 |xxxxxxxxxx |xxxxxxxxxx| <br> !!Männerballett des KR besteht das Casting zum "Grandprix der stramme Waden" des Hessischen Fernsehen 27.11.10 Halle Ffm-Griesheim<br> 20 Gruppen bewarben sich um 10 Plätze / Aufzeichnung der Sendung im Feb.2011 in Fulda <br> !!Prunksitzungen siehe->[[Prunksitzung 2011]] !!Seniorensitzung So 20.02.11 |!Programmpunkte:| |01 Vorspiel| |02 Einzug & Begrüßung| |04 Minis | |05 Klaus & Klaus | |06 Alex Ruppel | |07 Tanzgarde | |08 Marktweiber | |09 Jugendbrassband & Drumkids| |10 Tini & Hardy| |11 Männerballett| |12 Finale| <br> !!Hexensitzung |Freitag |18.02.11 |Hexensitzung 2011 |Stadthalle | ''Beiträge des KV-Frohsinn'' *Einzug & Begrüßung mit Prinz & Ehrengarde *KR-Männerballett "Summerfeeling" *Nanga *Brassband *Frohsinn-Ballett "Hairspray" <br> !!Hausparty "Oase Reloaded" 25.02.11 Vereinshaus |Freitag |18.02.11 |Hexensitzung 2011 |Stadthalle | <br> !!Rathausstrurm 26.02.11 <br> !!Kinder-Mitmachsitzung 05.03.11 Vereinshaus <br> !!Taunus-Karnevalszug 2011 ''Zugplan Vereinsring Oberursel'' *121. KV Frohsinn *121a. KV Frohsinn – Elferrat *121b. KV Frohsinn Frohsinn – Sänger und Minis *121c. KV Frohsinn – Kleiner Rat *121d. KV Frohsinn – Kleiner Rat *121e. KV Frohsinn – ~Ex-Prinzen *121f. KV Frohsinn – Tanzgarde *121g. KV Frohsinn – „Drumm Kids“ *121h. Brass Band des KV Frohsinn *121i. KV Frohsinn – Ballett *121j. KV Frohsinn – Konfetti *121k. KV Frohsinn – Ehrengarde *121l. Narrenrat Prinz Frederick I. und Hofmarschall Ludwig I. und Pagen <br> *Zugnummer 121a - Schild: 1x11= „Der Elferrat“ (Elferrat) *Zugnummer 121b - Schild: 2x11 = „22 Narren hauen auf die Mini-Pauke“ (Die Sänger laufen als Harlekine und die Minis als Wecker) *Zugnummer 121c - Schild: 3x11= „Bis 33 wollt´ man Revoluzzer sein...“ (KR- Wagen) *Zugnummer 121d - Schild: 4x11= „..mit 44 war man Stütze im Verein.“ (KR-Fußgruppe) *Zugnummer 121e - Schild: 5x11= „55 Ex-Frohsinn Prinzen“ (Es sind tatsächlich 54 aber einen schummeln wir dazu) (Frohsinn Ex-Prinzen) *Zugnummer 121f - Schild: 6x11= „66 Beine schwingen für die Fastnacht“ (Garde) *Zugnummer 121g - Schild: 7x11= „Nachwuchsdrummer von 7-11“ (Drumkids) *Zugnummer 121h - Schild: 8x11= „8-11000: Da werden Sie „musikalisiert“ Brassband *Zugnummer 121i - Schild: 9x11= „99 Luftballons zum Jubiläum“ Ballett *Zugnummer 121j - Schild: 10x11= „1011.te Nacht…Treffpunkt Oase“ Konfetti Wagen *Zugnummer 121k - Schild: 11x11=„Wenn nicht jetzt wann dann!“ Prinz <br> ''Preise'' *1. Fussgruppe: Kleiner Rat *4. Fussgruppe: Frohsinn Sänger & Minnis *Sonderpreis «Ohlenspiegel» für die politisch beste Zugnummer: Kleinen Rat *(Anm. Die Presse schrieb irrtümlich "Bei den Fußgruppen hatten die Sänger des Karnevalvereins Frohsinn die Nase vorn") <br> !!Grand Prix der strammen Waden<br>KR Männerballett beim HR Fernsehen Unser Männerballett vom Kleinen Rat ertantzte einen hervoragenden 4.Platz, Von 120 Männerballetts, die sich beim HR beworben hatten, kamen 25 in das Casting im Nov.2010, und endgültig 10 in die Endausscheidung.<br> Die Sendung wurde am 27.02.11 in Fulda aufgezeichnet und am Rosenmontag im HR-Fernsehen ab 22:45 Uhr gesendet. Das Männerballett veranstalte eine große ''Grand-Prix-Party'' mit Public-Viewing der Sendung auf Großleinwand beim "Rühl". <br> !!09.02.11 Fastnachtzug in Oberhöchstadt Preis für den Kleinen Rat <br> !!09.02.11 Prinzenverabschiedung im "Schwanen" <br> !!10.02.11 Aschermittwoch ~Herings-Essen im Vereinshaus <br> !!13.02.11 Ordensfest des KV Frohsinn im Vereinshaus Es wurden folgende Personen geehrt: Frohsinn-Sänger -> Stephan Käfer, Stephan Coy, Martin Müller -> alle für ihre 1. Kampagne -> mit dem ~Sänger-Bajazz Ehrengarde -> Werner Kunz -> für 25 Jahre Ehrengarde -> mit dem Sonderorden der Ehrengarde Winnie Dorn, Jennifer Serth, Sarah Bechthold -> alle für 10 Jahre aktiv Beate Voss, Brigitte Haub, Werner Kunz-> mit der Goldenen Flamme <br> !!04.06.11 Das Frohsinn-Ballett hat am Samstag (4.6.11) in Mannheim die Deutsche Meisterschaft im Showtanz gewonnen Deutsche DAT Meisterschaften (Offen & Geschlossen) & WDCAL International Dance Masters Mannheim <br> !!Brassband: Silber Medallie beim Musikfest in Husum/Hattstedt Jubeln durfte auch die Brassband. Den Musikern gelang es beim alle zwei Jahre stattfindenden "Internationalen Musikfest" im nordfriesischen Hattstedt, ihre Silbermedaille zu verteidigen. Im Wettstreit mit rund 1500 weiteren Musikern aus ganz Deutschland, Europa und sogar aus Südamerika trafen die Oberurseler die richtigen Töne und heizten die Stimmung im kühlen Norden auf. <br> !!Hessentag vom 10.06. bis 19.06.11 Bratwurststand auf dem Marktplatz<br> Der Karnevalverein Frohsinn zeigt Flagge auf dem Landesfest. Zehn Tage lang werden Mitglieder des Vereins auf dem Marktplatz für das kulturelle und leibliche Wohl der vielen Gäste aus nah und fern sorgen. Bereits vor zwei Jahren hatte die Mitgliederversammlung des Vereins beschlossen, beim Hessentag aktiv zu werden. Stephan Remes, 2. Vorsitzender des Frohsinn: "Der Hessentag ist eine tolle Gelegenheit auf unseren Verein aufmerksam zu machen und neue Freunde für den Frohsinn zu gewinnen. Am 10. und am 11. Juni werden Gruppen des Frohsinn ihr Können auch auf Bühnen in der Stadt präsentieren und so zum kulturellen Programm des Hessentages beitragen." |Auftritte beim Hessentag:|Frohsinn-Ballett und die „Minis“|Freitag, 10. Juni 2011|17:00 Uhr bis 19:30 Uhr|Süwag-Bühne, Weindorf, Rushmoor-Park| ||Brassband und Jugendbrassband|Samstag, 11. Juni 2011|15:00 Uhr bis 16:00 Uhr|Oberursel-Bühne, Platz der Vereine, Marktplatz| Beim Würstchengrillen auf dem Marktplatz erhoffft sich der Verein natürlich auch einen wirtschaftlichen Erfolg. Remes: "Wir investieren sehr stark und mit Erfolg in die Jugendarbeit. Aber junge Talente brauchen Instrumente, Kostüme, Ausbilder. Das alles kostet Geld." Daher erhoffen sich die Karnvealisten möglichst viele Käufer für ihre leckeren Bratwürstchen, die auch bei Brunnenfesten stets ein Renner sind. Der Grillstand des Frohsinn steht auf dem Marktplatz neben dem St. Ursula-Bruunnen, ganz so wie beim Brunnenfest. Öffnungszeit: vom 10. - 19.06.2011, täglich von 10.00 - 23.00 Uhr. !!HESSENTAGS-FESTUMZUG Mitglieder des Kleinen Rat erstellten und bauten auch dieses Jahr den Festwagen für die Brunnenkönigin. Dieser eröffnete den Festzug. <br> !!Große Garde - Gründung einer neuen Korporation des KV Frohsinn <br> !!13. & 14.08.11 ~Jubiläums-Hoffest - "~Frohsinn-Brunnenfest" [<img[Jubiläums-Logo|../assets/images/2011-vfbrunnenfest-plakat_150.jpg]] Samstag Beginn 18:00 Uhr Sonntag Beginn 10:00 Uhr bis 17:00 Uhr (Frühschoppen 10:30 bis 14:00 Uhr) "Feiern auf Orschels erstem geraden Marktplatz" 10 Tage - 4 ~ZeitSchichten = 280 Schichten <br><br><br> [[Nach oben...|Kampagne 2010/11]] --- |[[Kampagne 2009/10]]|[[Chronik-Übersicht]]|[[Kampagne 2011/12]]| --- |[[Der Frohsinn]]|[[Veranstaltungen]]|[[Bühnenaktive]]|[[Chronik]]| (c) 2021 by R.G. Status: i.A.
|[[Der Frohsinn]]|[[Veranstaltungen]]|[[Bühnenaktive]]|[[Chronik]]| --- |[[Kampagne 2010/11]]|[[Chronik-Übersicht]]|[[Kampagne 2012/13]]| --- !Kampagne 2011/12 !!Anmerkungen zur Kampagne |[[Homepage-Chronik|https://www.karnevalverein-frohsinn.de/html/vf-verein-chronik.html]]|[[Presse 2011/12]]| Der Frohsinn stellt in der Kapagne 2011/12 den Oberurseler Karnevalsprinzen des Narrenrats !!!Prinz Patrick I. |!Kampagne|!Name|!Bürgerlicher Name|!Heimatverein|!Page|!Page|!Hofmarschall| |2011/12|Patrick I|Patrick Volz|KV-Frohsinn|Annekatrin Rode|Carolyn Wilkinson|Frederick Wilkinson| *Prinz Patrick I. ist der 65. Prinz der Orschler Fastnacht<br> *Hauptmotto: “Die Fassenacht ist unser Leben”<br> *Prinzen-Inthronisation am 11.11.11 Stadthalle Oberursel |!Multimedia |!Titel |!Link | |Homepage |Prinz Patrick I. |https://www.narrenrat-oberursel.de/html/prinz2012.html| <br> !!Vorstand der Kampagne 2011/12<br> |1.Vorsitzender:|[[Stephan Remes]]| |2.Vorsitzender:|Freddy Wilkinson| |Schriftführerin:|Daniela Neuhäuser| |1.Kassierer:|Michi Kukuruzovicz| |2.Kassiererin:|Jutta Eckard| |Zeugwart:|Max Kuntsche| |Zeugwart:|Detlef Unruh| |Pressesprecher:|Gerd Krämer| <br> !!Anmerkungen zur JHV |14.09.11|JHV 2010 |Vereinshaus Frohsinn | Beginn 19:30 Uhr| Die diesjährige JHV stellte einen Einschnitt in der Vereinsgeschichte dar, da unser seit 1998 amtierender Erster Vorsitzender Karl-Heinz Barth angekündigt hatte sich nicht mehr zur Wahl zu stellen. Desweiteren standen unsere 1.Kassiererin Elke Dietz und unser Zeugwart Max Kuntsche für eine weitere Amszeit nicht mehr zur Verfügung. Deshalb galt es einen neuen Vorstand zu wählen, der von nun an die Geschicke des Vereins lenken wird. *Antrittsrede des neuen 1.Vorsitzenden Stephan Remes *Danksagung des Vereins zum Abschied von Elke Dietz, Max Kuntsche und Karl-Heinz Barth *Antrag zur JHV - Ehrenvorsitzender *[[Bericht, Reden und Antrag zur JHV nachlesen...|Bericht: 2011 - JHV 2011]] <br> !!Terminkalender der Kampage 2011/12 |Freitag |11.11.11|Ausrufung der Fastnacht|Fastnachtsbrunnen| |Freitag |11.11.11|Inthronisation der Tollität|Stadthalle Oberursel| |Samstag|12.11.11|Eröffnungssitzung |Vereinshaus Frohsinn| |Freitag |18.11.11|KR-Sitzung "Kultradio KR3" |Vereinshaus Frohsinn| |Samstag |19.11.11|KR-Sitzung "Kultradio KR3" |Vereinshaus Frohsinn| |Freitag |27.01.12|1.Große Fremdensitzung |Stadthalle Oberursel| |Samstag|28.01.12|2.Große Fremdensitzung |Stadthalle Oberursel| |Samstag|04.02.12|3.Große Fremdensitzung |Stadthalle Oberursel| |Sonntag|05.02.12|Senioren & Familiensitzung |Stadthalle Oberursel| |Samstag|xx.xx.xx|Hausparty Oase |Vereinshaus Frohsinn| |Samstag|11.02.12|Rathaussturm |Rathaus Oberursel | |Samstag|18.02.12|Kinder-Mitmachsitzung |Vereinshaus Frohsinn| |Sonntag|19.02.12|Taunus Karnevals Zug |Innenstadt Oberursel | |Samstag|25.02.12|Ordensfest |Vereinshaus Frohsinn | <br> !!Ausrufung der Fastnacht |Freitag |11.11.11|Ausrufung der Fastnacht|Fastnachtsbrunnen|11:11 Uhr| |!Multimedia |!Titel |!Link | |Presse |div. |[[Presse 2011/12]]| <br> !!Inthronisation des Prinzen Patrick I. |Freitag |11.11.11|Inthronisation des Prinzen |Stadthalle Oberursel | |!Multimedia |!Titel |!Link | |Fotogalerie |Fotos von Andreas Breitbart |https://www.narrenrat-oberursel.de/html/2011inthronisation.html| |Presse |div. |[[Presse 2011/12]]| |Presse |div. |https://www.narrenrat-oberursel.de/html/prinz2012.html| <br> !!Eröffnung der Kampagne |Samstag |12.11.10|Eröffungssitzung|"Der Hessentag war froh und heiter - der Frohsinn feiert endlos weiter!" |Vereinshaus Frohsinn| |!Multimedia |!Titel |!Link | |Fotogalerie |Fotos von Andreas Breitbart |https://www.karnevalverein-frohsinn.de/html/vf-galerie-2011vfopen.html | |Presse |div. |[[Presse 2011/12]]| <br> !!Sitzungen des Kleinen Rat |Freitag |18.11.11|KR-Sitzung|"Kultradio KR3"|Vereinshaus Frohsinn| |Samstag |19.11.11|KR-Sitzung|"Kultradio KR3"|Vereinshaus Frohsinn| |!Multimedia |!Titel |!Link | |KR Chronik |KR Sitzung 2011 |xxxxxxxxxx | <br> !!Sitzungen 2011 [[Prunk-Sitzungen]] |Freitag |27.01.12|1.Große Fremdensitzung |Stadthalle Oberursel| |Samstag|28.01.12|2.Große Fremdensitzung |Stadthalle Oberursel| |Samstag|04.02.12|3.Große Fremdensitzung |Stadthalle Oberursel| |Sonntag|05.02.12|Senioren & Familiensitzung |Stadthalle Oberursel| |!Multimedia |!Titel |! Untertitel |!Link | |Homepage |Große Fremdensitzung 2011 |xxxxxxxxxx| |Fotogalerie |Fotos von Andreas Breitbart |https://www.karnevalverein-frohsinn.de/html/vf-galerie-2012prunksitzungen.html | |Fotogalerie |Fotos von Andreas Breitbart |https://www.karnevalverein-frohsinn.de/html/vf-galerie-2012prunksitzungen2.html | |Video |xxxxxxxxxxx |xxxxxxxxxx | |Presse |div. |[[Presse 2011/12]]| <br> !!Hausparty "Oase" |xxxxxx |xx.02.12 |"Oase Reloaded 2012" |Vereinshaus Frohsinn | |!Multimedia |!Titel |! Untertitel |!Link | |Fotogalerie |Fotos von Andreas Breitbart |https://www.karnevalverein-frohsinn.de/html/vf-galerie-2012oase.html | <br> !Taunus Karnevalszug |Sonntag|19.02.12|Taunus Karnevals Zug 2012 |Innenstadt Oberursel | ''Zugplan Vereinsring Oberursel'' *123 KV Frohsinn - Konfetti *124 KV Frohsinn - Elferrat Komiteewagen *125 KV Frohsinn - Frohsinn Sänger und Minis *126 KV Frohsinn - Ex-Prinzen *127 KV Frohsinn - Ballett *128 KV Frohsinn - Kleiner Rat *129 KV Frohsinn - Mini Garde *130 KV Frohsinn - Tanzgarde *131 KV Frohsinn - Große Garde *132 KV Frohsinn - Drum Kids & Jugendbrassband *133 KV Frohsinn - Brass Band *134 KV Frohsinn - Ehrengarde *135 Narrenrat Prinz Patrick I. und Hofmarschall Frederick I. und Pagen ''Preise'' *Den Preis für die beste Fußgruppe gewannen die Frohsinn-Sänger (Zugnummer 125) *Den Ehrenpreis der Stadt Oberursel wurde dem Kleinen Rat des Frohsinns zugesprochen (Nummer 128) |!Multimedia |!Titel |!Link | |Homepage |Taunus Karnevals Zug 2012 |xxxxxxxxxx | |Fotogalerie |Fotos von... |https://www.karnevalverein-frohsinn.de/html/vf-galerie-2012zug.html | |Video |xxxxxxxxxxx |xxxxxxxxxx | |Presse |div. |[[Presse 2011/12]]| <br> !Ordensfest |Samstag|25.02.12|Ordensfest 2012 |Vereinshaus Frohsinn | |!Multimedia |!Titel |!Link | |Homepage |Ordensfest 2012 |xxxxxxxxxx | |Fotogalerie |Fotos von... |xxxxxxxxxx | |Presse |div. |[[Presse 2011/12]]| <br> ''Pressemeldung'' Doch zunächst überreichte Ex-Prinz Patrick I. noch rund zehn verdienten Kampagnenunterstützern seinen Prinzenorden. Danach betrat erneut Remes die Bühne. Im Gepäck hatte er 12 goldene Flammen – für zehnjährige aktive Vereinsmitgliedschaft – und drei Mal das goldene Vlies für 25 Jahre Engagement. Zu den Geehrten, die die goldene Flamme erhielten, gehört beispielsweise Marcus Tober: Er begann 1995 seine Frohsinn-Karriere bei den Drumkids der Brassband und kam 2000 zur Ehrengarde, deren Vize-General er mittlerweile ist. Auch abseits der Bühne packt Tober, der sich zudem beim DRK ehrenamtlich engagiert, fleißig mit an – beispielsweise bei den Hauspartys. Frohsinn-Sänger Werner Erbacher, Sabrina Wilkinson von der Großen Garde, Ehrengardist Peter Hansen, Kurt Rischke und Hans-Jörg Lauer aus dem Kleinen Rat, sowie die Elferratsmitglieder Edzard Reul, Jens Matthiesen und Sven Krailling sind seit dem Wochenende ebenfalls Träger der goldenen Flamme. Hillary und Andrew Lloyd aus Rushmoor sowie Julia Kolaas, die am Bodensee wohnt, konnten nicht zur Verleihung anreisen. Sie erhalten ihre Auszeichnung später. Das gilt auch für Andrea Unger vom Kleinen Rat, die den Sonderorden "33 Jahre aktiv" erhält. Viele Fastnachtfans kennen sie als "Orscheler Marktweib". Mit der Verleihung des goldenen Vlieses war dann der Höhepunkt des Abends erreicht. Gebannt verfolgte das Publikum den kleinen Staatsakt. Im Kreise der anwesenden Vliesträger wurden drei Frohsinn-Mitglieder durch Remes beziehungsweise durch den Ehrenvorsitzenden Karl-Heinz Barth zum Ritter geschlagen. Diese Zeremonie hat eine lange Tradition im Bund deutscher Karnevalisten. Genauer gesagt, ist der Frohsinn nun um drei "Ritterinnen" reicher: Christel Eich und Mirjana Schiefer leiteten 15 Jahre lang die Minis und sind auch sonst stark in die Arbeit des Vereins eingebunden. Die Dritte im Bunde, Melanie Bremser, stieß bereits 1987 als Vierjährige zu den Mini-Majorettes. Seit 2007 ist sie Korporationsführerin der Tanzgarde und brilliert nun auch als Trainerin. Vielen ist sie als ehemalige Brunnenkönigin bekannt. Zudem repräsentierte sie den Verein auch als Pagin von Prinz Frederick I. Wilkinson. Klar, dass Remes bei dieser Ehrung Karl-Heinz Barth den Vortritt ließ, ist er doch Melanies Großvater. In Klausur Nach dem ganzen Kampagnentrubel und der Ordensfeier heißt es für den gesamten Verein nun einmal Luft zu holen, natürlich nicht allzu lange. Manche Abteilungen proben sogar durchgängig. "Der Sommer ist auch schnell rum und die nächste Kampagne ist da", so Remes. In zwei Wochen gehen ein paar Frohsinn-Vertreter in Klausur. "An diesem Abend wollen wir nicht mehr wissen, was alles toll gelaufen ist, sondern die Schwachstellen benennen und das, was man verbessern kann", erläutert er. "Auch wenn man Erfolg hat, heißt das nicht, dass man nicht noch an dem einen oder anderen Rädchen drehen kann." Das Ziel für 2012/2013 heißt zunächst, das Niveau aufrechtzuerhalten. "Es gibt einige Vorschläge, wie die Programme noch unterhaltsamer gestaltet werden können, doch das muss noch diskutiert werden." © 2012 Frankfurter Neue Presse <br><br><br> [[Nach oben...|Kampagne 2011/12]] --- |[[Kampagne 2010/11]]|[[Chronik-Übersicht]]|[[Kampagne 2012/13]]| --- |[[Der Frohsinn]]|[[Veranstaltungen]]|[[Bühnenaktive]]|[[Chronik]]| |(c) 2021 by R.G.|Status dieser Seite:| i.K.|
!Jubiläum - 125 Jahre Karnevalverein Frohsinn [[Chronik 2015 Jubiläum]]
|[[Archiv]]|[[Chronik]]|[[Zeitleiste]]| : : : |[[Kampagne 2017/18]]| < - > |[[Kampagne 2019/20]]| --- !''Kampagne 2018/19'' --- ''__Online-Version (Homepage) :__'' https://www.karnevalverein-frohsinn.de/html/kvf-chronik-2018-19.html <p><iframe src="https://www.karnevalverein-frohsinn.de/html/kvf-chronik-2018-19.html" frameborder="0" width="1040" height="300"></iframe></p> --- --- --- [[Nach oben...|Kampagne 2018/19]]<br> --- (c) 2022 by R.G.
|[[Archiv]]|[[Chronik]]|[[Zeitleiste]]| : : : |[[Kampagne 2018/19]]| < - > |[[Kampagne 2020/21]]| --- !''Kampagne 2019/20'' --- ''__Online-Version (Homepage) :__'' https://www.karnevalverein-frohsinn.de/html/kvf-chronik-2019-20.html <p><iframe src="https://www.karnevalverein-frohsinn.de/html/kvf-chronik-2019-20.html" frameborder="0" width="1040" height="300"></iframe></p> --- !!Anmerkungen zur Kampagne |!Pressespiegel |[[Presse 2019/20]]| |!Prinz | nein | !!Vorstand der Kampagne 2019/20<br> [img[https://www.karnevalverein-frohsinn.de/assets/images/vorstand-2019_570.jpg]] |1.Vorsitzender:|[[Stephan Remes]]| |2.Vorsitzender:|Jens Landefeld| |Schriftführerin:|Daniela Neuhäuser| |1.Kassierer:|Michi Kukuruzovicz| |2.Kassiererin:|Jutta Eckard| |Zeugwart:|Max Kuntsche| |Zeugwart:|Detlef Unruh| |Pressesprecher:|David Görke| !!Anmerkungen zur JHV |xx.xx.19|JHV 2019 |Vereinshaus Frohsinn | Beginn 19:30 Uhr| !!Vereinsorden [img[https://www.karnevalverein-frohsinn.de/assets/images/vereinsorden-2020.jpg]]<br> https://www.karnevalverein-frohsinn.de/assets/galerie/chronik-vereinsorden/vereinsorden-2022.jpg !!Terminkalender der Kampage 2019/20 |xxxtag |11.11.19|Ausrufung der Fastnacht|Fastnachtsbrunnen| |Samstag|16.11.19|Eröffnungssitzung |Vereinshaus Frohsinn| [img[./data_pic/bu_baustelle_tn.jpg]] |Freitag |18.11.11|KR-Sitzung "Kultradio KR3" |Vereinshaus Frohsinn| |Samstag |19.11.11|KR-Sitzung "Kultradio KR3" |Vereinshaus Frohsinn| |Freitag |27.01.12|1.Große Fremdensitzung |Stadthalle Oberursel| |Samstag|28.01.12|2.Große Fremdensitzung |Stadthalle Oberursel| |Samstag|04.02.12|3.Große Fremdensitzung |Stadthalle Oberursel| |Sonntag|05.02.12|Senioren & Familiensitzung |Stadthalle Oberursel| |Samstag|xx.xx.xx|Hausparty Oase |Vereinshaus Frohsinn| |Samstag|11.02.12|Rathaussturm |Rathaus Oberursel | |Samstag|18.02.12|Kinder-Mitmachsitzung |Vereinshaus Frohsinn| |Sonntag|19.02.12|Taunus Karnevals Zug |Innenstadt Oberursel | |Samstag|25.02.12|Ordensfest |Vereinshaus Frohsinn | <br> !!Tollität |!Prinzessin | Vanessa I. | BCV |[[Homepage der Prinzessin|https://www.narrenrat-oberursel.de/html/prinz2020.html]]| [img[https://www.karnevalverein-frohsinn.de/assets/images/chonik_prinz-2020.jpg]]<br> !!Ausrufung der Fastnacht |11.11.2019|Ausrufung der Fastnacht|Fastnachtsbrunnen|11:11 Uhr| |!Multimedia |!Titel |!Link | |Presse |div. | | !!Eröffnung der Kampagne |Samstag |16.11.19|Eröffungssitzung|"Schwamm-Party" |Vereinshaus Frohsinn| [img[https://www.karnevalverein-frohsinn.de/assets/images/2019-vfopen_plakat_200.jpg]] |!Multimedia |!Titel |!Link | |Fotogalerie |Fotos von Peter Riek |https://www.karnevalverein-frohsinn.de/assets/gallery/2019-open.html | |Presse || | [img[./data_pic/bu_baustelle.jpg]] !!Sitzungen des Kleinen Rat |Freitag |18.11.11|KR-Sitzung|"Kultradio KR3"|Vereinshaus Frohsinn| |Samstag |19.11.11|KR-Sitzung|"Kultradio KR3"|Vereinshaus Frohsinn| |!Multimedia |!Titel |!Link | |KR Chronik |KR Sitzung 2011 |xxxxxxxxxx | <br> !!Sitzungen 2011 [[Prunk-Sitzungen]] |Freitag |27.01.12|1.Große Fremdensitzung |Stadthalle Oberursel| |Samstag|28.01.12|2.Große Fremdensitzung |Stadthalle Oberursel| |Samstag|04.02.12|3.Große Fremdensitzung |Stadthalle Oberursel| |Sonntag|05.02.12|Senioren & Familiensitzung |Stadthalle Oberursel| |!Multimedia |!Titel |! Untertitel |!Link | |Homepage |Große Fremdensitzung 2011 |xxxxxxxxxx| |Fotogalerie |Fotos von Andreas Breitbart |https://www.karnevalverein-frohsinn.de/html/vf-galerie-2012prunksitzungen.html | |Fotogalerie |Fotos von Andreas Breitbart |https://www.karnevalverein-frohsinn.de/html/vf-galerie-2012prunksitzungen2.html | |Video |xxxxxxxxxxx |xxxxxxxxxx | |Presse |div. |[[Presse 2011/12]]| <br> !!Hausparty "Oase" |xxxxxx |xx.02.12 |"Oase Reloaded 2012" |Vereinshaus Frohsinn | |!Multimedia |!Titel |! Untertitel |!Link | |Fotogalerie |Fotos von Andreas Breitbart |https://www.karnevalverein-frohsinn.de/html/vf-galerie-2012oase.html | <br> !Taunus Karnevalszug |Sonntag|19.02.12|Taunus Karnevals Zug 2012 |Innenstadt Oberursel | ''Zugplan Vereinsring Oberursel'' *123 KV Frohsinn - Konfetti *124 KV Frohsinn - Elferrat Komiteewagen *125 KV Frohsinn - Frohsinn Sänger und Minis *126 KV Frohsinn - Ex-Prinzen *127 KV Frohsinn - Ballett *128 KV Frohsinn - Kleiner Rat *129 KV Frohsinn - Mini Garde *130 KV Frohsinn - Tanzgarde *131 KV Frohsinn - Große Garde *132 KV Frohsinn - Drum Kids & Jugendbrassband *133 KV Frohsinn - Brass Band *134 KV Frohsinn - Ehrengarde *135 Narrenrat Prinz Patrick I. und Hofmarschall Frederick I. und Pagen ''Preise'' *Den Preis für die beste Fußgruppe gewannen die Frohsinn-Sänger (Zugnummer 125) *Den Ehrenpreis der Stadt Oberursel wurde dem Kleinen Rat des Frohsinns zugesprochen (Nummer 128) |!Multimedia |!Titel |!Link | |Homepage |Taunus Karnevals Zug 2012 |xxxxxxxxxx | |Fotogalerie |Fotos von... |https://www.karnevalverein-frohsinn.de/html/vf-galerie-2012zug.html | |Video |xxxxxxxxxxx |xxxxxxxxxx | |Presse |div. |[[Presse 2011/12]]| <br> !Ordensfest |Samstag|25.02.12|Ordensfest 2012 |Vereinshaus Frohsinn | |!Multimedia |!Titel |!Link | |Homepage |Ordensfest 2012 |xxxxxxxxxx | |Fotogalerie |Fotos von... |xxxxxxxxxx | |Presse |div. |[[Presse 2011/12]]| <br> ''Pressemeldung'' --- --- [[Nach oben...|Kampagne 2020/21]]<br> --- (c) 2022 by R.G.
|[[Archiv]]|[[Chronik]]|[[Zeitleiste]]| : : : |[[Kampagne 2019/20]]| < - > |[[Kampagne 2021/22]]| --- !''Kampagne 2020/21'' --- --- [[Nach oben...|Kampagne 2020/21]]<br> --- (c) 2022 by R.G.
|[[Archiv]]|[[Chronik]]|[[Zeitleiste]]| : : : |[[Kampagne 2020/21]]| < - > |[[Kampagne 2022/23]]| --- !''Kampagne 2021/22'' |!Link|https://www.karnevalverein-frohsinn.de/html/kvf-chronik-2021-22.html| |!Presse|[[Presse 2021/22]]| !Anmerkungen zur Kampagne [img[https://www.narrenrat-oberursel.de/assets/images/autogen/Corona_500color_.jpg]] !Vorstand der Kampagne 2021/22<br> [img[https://www.karnevalverein-frohsinn.de/assets/images/vorstand-2021_570.jpg]] |1.Vorsitzender:|[[Ulfert Hahn]]| |2.Vorsitzender:|Jens Landefeld| |Schriftführerin:|Daniela Neuhäuser| |1.Kassierer:|Michi Kukuruzovicz| |2.Kassiererin:|Jutta Eckard| |Pressesprecher:|David Görke| !!Anmerkungen zur JHV |13.09.21|JHV 2021 |Vereinshaus Frohsinn | Beginn 19:30 Uhr| !!Frohsinn hat einen neuen Vorsitzenden Der KV Frohsinn hat am 13.09.2021 seine Jahreshauptversammlung abgehalten. Nachdem im letzten Jahr bedingt durch die Maßnahmen gegen die Corona-Pandemie keine "JHV" stattfinden konnte, mussten alle Vorstandsposten neu- oder wiedergewählt werden. Dabei hat der Verein nach nunmehr zehn Jahren einen neuen Ersten Vorsitzenden. Stephan Remes trat nach über 30 Jahren im geschäfts- führenden Vorstand des "Frohsinn" nicht noch einmal für den obersten Posten des Vereins an. Sein Abtritt als "Frohsinn-Chef" wurde von minutenlangem Beifall der knapp 100 anwesenden stimmberechtigten Vereinsmitglieder für die jahrzehntelange aufopferungsvolle Arbeit für den Verein und das Brauchtum der Orscheler Fastnacht begleitet. Stephan Remes hat in den vergangenen Jahren und Jahrzehnten den Verein Frohsinn aktiv nach vorne geführt und war stets bestrebt, seinen Verein immer noch ein bisschen besser zu machen. Egal ob Programm und Regie bei den Sitzungen, Außenwirkung des Vereins an den Festen, Netzwerke schaffen und pflegen – Remes war immer daraus auf, es zugunsten des Vereins noch ein wenig besser zu machen. Er ist das Gesicht des Vereins, auch über die Stadtgrenzen Oberursels hinaus ist er bekannt und noch besser vernetzt! [img[https://www.karnevalverein-frohsinn.de/assets/images/autogen/vorstand-2021_2_300.jpg]] Neben Stephan Remes schied auch der langjährige Zeugwart des Vereins, Detlev Unruh, aus dem geschäftsführenden Vorstand des KV Frohsinn aus. Als dienstältestem Zeugwart - Unruh bekleidete das Amt seit 16 Jahren - wurden seine großen Verdienste um die Organisation innerhalb des Vereins und insbesondere auf dem Gelände des Vereinshauses umfassend gewürdigt. Stephan Remes und Detlev Unruh bleiben dem Frohsinn als aktive Mitglieder erhalten. Die anwesenden Mitglieder dankten den beiden ausgeschiedenen Vorstandsmitgliedern herzlich für ihre jahrzehntelange Arbeit im Verein. Zum neuen Ersten Vorsitzenden wählten die Mitglieder den langjährigen Korporationsführer der Brassband des Vereins, Ulfert Hahn. Selbst seit 38 Jahren Mitglied des Vereins, leitet Hahn schon lange den Förderverein der Freiwilligen Feuerwehr Oberursel Mitte und hat so seine Qualitäten in der Vereinsführung viele Jahre unter Beweis gestellt. Besondere Anliegen sind dem neuen Ersten Vorsitzenden von Oberursels ältestem Karnevalsverein die Aufrechterhaltung der Vielfalt der Korporationen, die Kommunikation und Vernetzung der Vereinsmitglieder untereinander. Klares Ziel bleibt die Aufrechterhaltung des hohen Niveaus der Beiträge des Vereins zur Saal- und Straßenfastnacht. Ulfert Hahn dankte der Versammlung für seine Wahl. "Ich bin stolz, diesen Verein nach Größen wie Friedel Fischer, Karl-Heinz Barth und Stephan Remes als Erster Vorsitzender führen zu dürfen und freue mich unheimlich auf die große Aufgabe", so Hahn. Als Nachfolgerin von Detlev Unruh kann der Frohsinn nun erstmals eine Frau auf der Position des Zeugwarts präsentieren. Die Jahreshauptversammlung wählte Saskia Werner zur neuen Zeugwartin. Auf den übrigen Positionen wurden die Mitglieder des letzten geschäftsführenden Vorstands durch die Mitglieder des Vereins bestätigt. !Vereinsorden [img[http://www.karnevalverein-frohsinn.de/assets/images/vereinsorden-2022_175.jpg]] !Terminplan der Kampagne 2021/22 |Donnerstag|11.11.2021|11:11 Uhr|Ausrufung der Fastnacht|Fastnschtsbrunnen| |Samstag|13.11.2021|19:30 Uhr|Eröffnungssitzung|Vereinshaus| |Samstag|26.02.2022|14:11 Uhr|Kindermitmachsitzung|Vereinshaus| |Sonntag|27.02.2022|14:11 Uhr|Open Air Fastnacht|Vereinsgelände| |Mittwoch|02.03.2022| |Heringsessen|Vereinshaus| |Freitag|20.05.2022|20:10 Uhr|"Schlag auf Schlag" Die Ambosse Party|Vereinshaus| |Fr bis Mo|10. bis 13.06.2022| |Brunnenfest|Marktplatz| |Sa u. So|02. u. 03.07.2022| |Orschelrette|Vereinsgelände| |Sa u. So|09. u. 10.07.2022| |Orschelrette|Vereinsgelände| |Samstag|22.10.2022| |Ordensfest|Vereinshaus| !Eröffnungssitzung |Samstag |13.11.21|Eröffungssitzung|"HELAU ... Wir feiern" |Vereinshaus Frohsinn| [img[https://www.karnevalverein-frohsinn.de/assets/images/2021-vfopen_plakat_200.jpg]] |!Multimedia |!Titel |!Link | |Fotogalerie |Fotos von ... |https://www.karnevalverein-frohsinn.de/mob/galerie-2021-eroeffnungssitzung.html| |Presse | -keine- | | !08.12.2021 Ein besonderer Tag [img[https://www.karnevalverein-frohsinn.de/assets/images/autogen/vorstand-2021_3_300.jpg]] <br> Beim Karnevalverein Frohsinn 1890 e.V. erfolgte die Übergabe der Geschäfte von dem langjährigen ehemaligen 1. Vorsitzenden Stephan Remes an den amtierenden 1. Vorsitzenden Ulfert Hahn. Nach vielen Gesprächen und Abstimmungen seit der Wahl am 13.09.2021 des neuen 1. Vorsitzenden trafen sich die beiden Freunde an diesem Tag um die abschließende Übergabe der Geschäfts- unterlagen durchzuführen. Bei einem so großen Verein mit 500 Mitgliedern ist eine geordnete Übergabe bei diesem wichtigen Amt sehr wichtig. Besonders schön ist es für den KVF Oberursel zu wissen, dass Stephan Remes dem Verein erhalten bleibt und seine Erfahrung der 30-jährigen Tätigkeit im geschäftsführenden Vorstand sowie der 10-jährigen Dienstzeit als 1. Vorsitzender auch in Zukunft einbringt. !Gehofft bis zum Schluss Große Prunksitzungen des Karnevalverein Frohsinn müssen auch in diesem Jahr abgesagt werden „Bis zum Schluss haben wir gehofft, aber mit der Hotspot-Lage im Hochtaunuskreis kam die ernüchternde Gewissheit“ – so schildert es Ulfert Hahn, 1. Vorsitzender des KV Frohsinn Oberursel (KVF). „In Absprache mit der zuständigen Behörde muss nach dem Vorjahr auch die diesjährige Kampagne des KVF abgesagt werden. Trotz der Erstellung eines umfangreichen Schutz- und Hygienekonzepts für die Stadthalle durch den Verein und die Prüfung durch den Fachbereich Gesundheit des Hochtaunuskreises mussten wir zu diesem gemeinsamen Entschluss kommen. Die Entscheidung ist uns nicht leichtgefallen und wir sind wie viele andere Fastnachts-Vereine sehr traurig über die Situation“ erklärt Ulfert Hahn. Die Gesundheit hat aber Vorrang und so blieb am Ende keine andere Wahl als die Fastnachtsveranstaltungen des „Frohsinn“ abzusagen. Die Absage betrifft nicht nur die drei großen Prunksitzungen, sondern auch die in Kooperation mit der Stadt Oberursel geplante Familien- und Seniorensitzung in der Stadthalle. Auch die beliebte Kinder-Mitmach-Sitzung am 26.02.2022 sowie die „Oase“-Party mit der Band „Aber Hossa“ am 19.02.2022 im Vereinshaus des „Frohsinn“ fallen erneut der Corona-Pandemie zum Opfer. „Trotz dieser gemeinsamen Entscheidung möchte sich der KV Frohsinn beim Fachbereich Gesundheit des Hochtaunuskreis herzlich für die Unterstützung und die sehr nette Betreuung bedanken.“ Momentan ist die Stimmung am Tiefpunkt und allen Mitgliedern ist die große Enttäuschung anzusehen. Besonders für die Kindergruppen ist die Absage der Saalfastnacht sehr enttäuschend. Die Fastnacht steht fest im Kalender, genau wie Weihnachten und Ostern - man kann sie nicht einfach verschieben. Deswegen wird der KV Frohsinn das Brauchtum in der Fastnachtszeit pflegen und verschiedene Aktionen mit den kleinen und großen Aktiven des Vereins im Rahmen der Möglichkeiten unter Pandemiebedingungen durchführen. !"Der Frohsinn beim "Kleinen Rathaussturm" Auch, wenn es auch 2022 keine normale Fastnacht geben kann, ließ es sich das aktuelle Kinderprinzenpaar des BCV nicht nehmen, das Rathaus zu stürmen. Julius I. und Annabel I. konnten so am Freitag, den 18.02.2022 den Schlüssel des Rathauses erobern. Der KV Frohsinn 1890 e.V. war dabei natürlich auch vertreten. Erster Vorsitzender Ulfert Hahn und Schriftführerin Daniela Neuhäuser stürmten für uns auf Einladung das Rathuas. Im nächsten Jahr kann dann hoffentlich wieder öffentlich die Fastnacht gefeiert werden." [img[https://www.karnevalverein-frohsinn.de/mob/assets/images/2022-rathaussturm1-812x535.jpg]] <br><br> !Eins ist Gewiss, stimmt ganz genau, die Fassenacht lebt - dreifach Orschel Helau |!Link|https://youtu.be/dBZg6b3hvy0| <iframe width="750" height="422" src="https://www.youtube.com/embed/dBZg6b3hvy0" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe> <br><br> !Kinder-Mitmach-Sitzung wurde zum Eltern-Kind Tag |26.02.22|Fastnachts-Samstag |Vereinshaus Frohsinn | [img[https://www.karnevalverein-frohsinn.de/mob/assets/images/2021-22-kimisi-pressebild-1000x563.jpg]] ''Die beliebte Kinder-Mitmach-Sitzung des KV Frohsinn konnte in der gewohnten Form aufgrund der Pandemie und den Vorschriften nicht durchgeführt werden.'' Trotz der Pandemie und den schrecklichen Entwicklungen in der Ukraine hat sich der KVF dazu entschieden, seinen jüngsten Mitgliedern der Korporationen „Die Minis“ und „Tanzgarde“ die Möglichkeit zu geben, ihr Können auf der Bühne einem ausgewählten Publikum darzubieten. Es wurden Kuchen gebacken und ausreichend Getränke organisiert. "Herzlichen Dank bei allen Helfern für die klasse Organisation, das Kuchen backen und die perfekte Durchführung der Veranstaltung", freute sich Ulfert Hahn, 1. Vorsitzender des KV Frohsinn 1890 e.V. Vor den Eltern und Freunden traten beide Korporationen unter viel Applaus für ihre Darbietungen auf der Bühne des Vereinshauses auf. Moderator Jens Landefeld (2. Vorsitzender des KV Frohsinn 1890 e.V.) hatte keine Wahl: beide Korporationen durften die Bühne nicht ohne Zugaben verlassen. "Die Aufregung war bei unseren jungen Mitgliedern groß und besonders schön war es, die leuchtenden Augen der Kinder sowie das Lächeln nach dem Auftritt zu sehen", so 1. Vorsitzender Hahn. Und Nachwuchs braucht es auch weiterhin! Willkommen sind bei der Korporation „Die Minis“ Kinder im Alter von 5 bis 10 Jahren. Das Alter der Tänzer/-innen bei der „Tanzgarde“ liegt zwischen 11 und 16 Jahren. Nähere Informationen über die Korporationen und die Termine zur Probe gibt es hier... <br><br> !Stehender Fastnachtszug - Open Air Fastnacht |27.02.22|Fastnachts-Sonntag |Vereinsgelände Frohsinn | [img[https://www.karnevalverein-frohsinn.de/mob/assets/images/01-2022-kvf-fastnachtopenair-bcv-7-1600x811.jpeg]] Am Fastnachtssonntag konnte der berühmte Taunuskarnevalszug in Oberursel aufgrund der pandemischen Lage leider nicht durchgeführt werden. Trotz der Pandemie und den schrecklichen Ereignissen in der Ukraine hatte sich der Vorstand vom KVF entschieden einen stehenden Fastnachtszug als Open Air Veranstaltung für die Vereinsmitglieder und ein- geladene Freunde zu veranstalten. Neben den Kreppeln, welche zu der Fastnacht einfach dazu gehören, wurde sich gemeinsam mit Würsten vom Grill und Getränken auf dem Vereinsgelände mit ca. 200 Fastnachtlern getroffen. Insgesamt vier Hoheiten aus zwei befreundeten Carnevalsvereinen haben der Veranstaltung den würdigen Fastnachtsrahmen verliehen. Kinder-Prinzessin Annabel I. und Kinder-Prinz Julius I. vom Bommersheimer Carneval Verein (BCV) machten mit Ihrem Hofstaat den Auftakt des hoheitlichen Besuches und begeisterten die Kinder mit Süßigkeiten, welche getreu dem Karnevalsumzug geworfen wurden. Kinder-Prinzessin Amy-Julie I und Ihre Lieblichkeit Susanne II. vom Homburger Carneval Verein (HCV) und Ihr Hofstaat durften wir zum zweiten Mal nach der Kampagne-Eröffnung im November mit großen Helau und viel Freude begrüßen. Die Freundschaften zwischen den Vereinen ist besonders schön und auch außerhalb der Fastnacht wird es zu gemeinsamen Stunden kommen. Verabredungen zwischen Vorstand und Vereinsmitgliedern wurden bereits fest ausgemacht. Da es leider schon das dritte Mal in Folge ist, dass der närrische Lindwurm sich nicht durch unser schönes Orschel schlängeln konnte wurde kurzerhand durch eine Polonäse auf dem Hof an diesen gedacht. Wie es dabei üblich ist schlossen sich immer mehr Leute den Lindwurm an. Nach einer kurzen Zeit wurde dieser auch hoheitlich angeführt. Ein ganz besonderer Dank geht an die Organisatoren und alle Helfer, ohne die diese schöne Zeit nicht möglich gewesen ist. [img[https://www.karnevalverein-frohsinn.de/mob/assets/images/04-2022-kvf-fastnachtopenair-sk-10-644x483.jpg]] |!Multimedia |!Titel |!Link | |Fotogalerie |Fotos von ... |https://www.karnevalverein-frohsinn.de/mob/galerie-2022-karneval-openair.html| |Presse | | | <br><br> !''Im weißen Bembel am Maasgrundsee'' - Die Orschelrette |Sa u. So|02. u. 03.07.2022| |Orschelrette|Vereinsgelände| |Sa u. So|09. u. 10.07.2022| |Orschelrette|Vereinsgelände| [img[https://www.karnevalverein-frohsinn.de/mob/assets/images/2022-orschelrette-pic32-1900x814.jpg]] Pünktlich zur Sommersaison rückt der frisch aufbereitete Maasgrundweiher in den Mittelpunkt einer großen Produktion des Karnevalverein Frohsinn 1890 e.V. zusammen mit dem Musical-Ensemble „Voice:Ten“. <br><br> Mit einer Musical-Adaption der Operette „Im weissen Rössl“, bei der das Treiben rund um das berühmte Hotel am Wolfgangsee in unser schönes Oberursel verlegt wird und als „Orschelrette“ mit Lokalkolorit und unter dem Titel „Im weißen Bembel am Maasgrundsee“ daherkommt, wird der Karnevalverein Frohsinn im diesjährigen Sommer sein Publikum begeistern. <br><br> Die Hauptrollen in dieser Musikkomödie übernehmen die Mitglieder des Oberurseler Musicalensembles "Voice:ten" zusammen mit Aktiven aller Korporationen des KV Frohsinn. In den Rollen des Personals und der illustren Gästeschar des „Weißen Bembel“ werden über 120 Darstellerinnen und Darsteller auf der Bühne zu sehen und zu hören sein. <br><br> Zu insgesamt vier Veranstaltungen vor den Sommerfeiern am 02. und 03. Juli 2022, sowie am 09. und 10. Juli 2022 lädt der Karnevalverein Frohsinn auf sein Gelände im Frohsinn-Weg 1 ein, um mit uns bekannte Melodien, adaptierte Gassenhauer und hessisches Gebabbel in einer großen, bunten Inszenierung zu feiern. <br><br> [img[https://www.karnevalverein-frohsinn.de/assets/images/2022-Orschelrette_Plakat_200.jpg]] |!Multimedia |!Titel |!Link | |Flip|Programmheftchen|https://www.karnevalverein-frohsinn.de/assets/galerie-flip/2022-orschelrette-programheftche/index.html| |Homepage|https://www.karnevalverein-frohsinn.de/mob/orschelrette2022.html|https://www.orschelrette.de| |Fotogalerie |Fotos von ... (Auswahl) |https://www.karnevalverein-frohsinn.de/mob/orschelrette2022.html#content4-e2| |''Presse'' | | | |Oberurseler Woche 13.01.22|Frohsinn: Statt Prunksitzungen gibt es ein Musical|http://www.karnevalverein-frohsinn.de/22-01-13-tz-frohsinn-absage.pdf| |Oberurseler Woche 05.05.22|Wenn der Wolfgangsee einfach nach Orschel rückt|http://www.karnevalverein-frohsinn.de/22-05-05-ow-orschelrette.pdf| |Oberurseler Woche 19.05.22|Orschelrette wird beim Probenwochenende erkennbar|http://www.karnevalverein-frohsinn.de/2-05-19-ob-orschelrette-probe.pdf| |Oberurseler Woche 02.06.22|Kopf- und Schweißarbeit vor der "Orschelrette"-Premiere|http://www.karnevalverein-frohsinn.de/22-06-02-ow-orschelrette.pdf| |Oberurseler Woche 07.07.22|Stehende Ovationen fürs Bembel-Hotel|https://www.taunus-nachrichten.de/oberursel/nachrichten/oberursel/stehende-ovationen-fuers-bembel-hotel-id124323.html| |Taunus Zeitung 14.07.22|Im Weißen Bembel am Maasgrundsee|https://www.karnevalverein-frohsinn.de/22-07-14-tz-orschelrette.pdf| <br><br> !Karnevalverein Frohsinn feiert Max Kuntsche |So|24.07.2022|Vereinsgelände| [img[./data_pic/2022-Max80.jpg]] Am 24.07.2022 wurde Max Kuntsche 80 Jahre alt. Der Karnevalverein Frohsinn ließ sich es nicht nehmen, dieses schöne Ereignis bei schönsten Wetter mit Ihm zu feiern. <br> Das Max Kuntsche schon 80 Jahre alt wurde kann man kaum glauben, da er wesentlich jünger aussieht als in seinem Ausweis dokumentiert ist. Dies liegt wohl auch daran, dass immer wieder für Max Kuntsche die Entwicklungen und das Wohlergehen der Jüngsten im Fokus stand und steht sowie unermüdlich für den Verein wie eine fleißige Biene arbeitet, stellte der 1. Vorsitzender Ulfert Hahn in seiner Rede fest. <br> Max Kuntsche wollte eigentlich einen Tag mit seiner Frau und Sohn im Taunus verbringen als sein Sohn plötzlich abbog und ohne Vorwarnung zum Vereinsgelände fuhr. Dort erwarteten Max Kuntsche Vertreter aller Korporationen. Die Brassband spielte ihm zu Ehren auf und die Korporation Minis stand Spalier und übergaben ihm Blumen.<br> Ich war total geplättet. Auf so etwas war ich nicht vorbereitet. Diese Überraschung ist dem Verein wirklich gelungen. Alles einfach großartig und überwältigend für mich, so Max Kuntsche.<br> Der Empfang war von langer Hand federführend von Detlev Unruh vorbereitet und alle Vereinsmitglieder haben dicht gehalten was dazu führte, dass es zu einem einzigartigen Erlebnis für Max Kuntsche wurde. <br><br> !SCHÜSSEL Abschiedsgala |Fr|23.09.2022|Stadthalle Oberursel| Auftritte der BRASSBAND, MÄNNERBALLETT, FROHSINN-SÄNGER & Edu Keller [img[http://gallery.breitbartfotografie.de/Schuessel_Gala/slides/bIMG_1576.jpg]] |!Multimedia |!Titel |!Link |!Link online | |Fotogalerie Andy Breitbart|Abschiedsgala Schüssel |[[FG2022-schuesselgala]] |http://gallery.breitbartfotografie.de/Schuessel_Gala/index.html| |Video von Hr.Müllerleile |Schüssels Abschied | |https://www.youtube.com/watch?v=ZN6SDX4jG3Q | |''Presse'' | | | |Oberurseler Woche 29.09.22|https://www.taunus-nachrichten.de/oberursel/nachrichten/oberursel/schuessel-verabschiedet-hoehenflug-id129575.html| !Ordensfest 2022 |So|22.10.2022|Vereinshaus| |!Multimedia |!Titel |!Link | --- --- [[Nach oben...|Kampagne 2021/22]]<br> --- (c) 2022 by R.G.
|[[Archiv]]|[[Chronik]]|[[Zeitleiste]]| : : : |[[Kampagne 2021/22]]| < - > |[[Kampagne 2023/24]]| --- !''Kampagne 2022/23'' |!Link|https://www.karnevalverein-frohsinn.de/html/kvf-chronik-2022-23.html| |!Presse|[[Presse 2022/23]]| !Anmerkungen zur Kampagne [img[https://www.narrenrat-oberursel.de/assets/images/autogen/Corona_500color_.jpg]] <br> |!Multimedia |!Titel |!Link |! | |Presse OW |Frohsinn: Zukunftsorientiert aus Tradition. (Seite 11) |https://www.taunus-nachrichten.de/sites/default/files/content/epaper/2022/oberurseler_woche_131022.pdf | [img width=200 [https://www.karnevalverein-frohsinn.de/mob/assets/images/22-10-13-ow-frohsinn-600-600x452.jpg]] --- !JAHRES-HAUPT-VERSAMMLUNG 2022 |12.10.22|JHV 2021 |Vereinshaus Frohsinn | Beginn 19:30 Uhr| Trotz Pandemie gab es keine Veränderung hinsichtlich der Mitgliederzahl. Austritte wurden besonders durch Neuzugänge bei den Minis kompensiert.<br> Jens Landefeld und Jutta Eckard wurden als 2. Vorsitzender bzw. 2. Kassiererin erneut gewählt. Zum Pressesprecher des KV Frohsinn wurde erneut David Görge gewählt.<br> Ein anrührender Moment war die Ernennung von Stephan Remes zum Ehrenvorsitzenden.<br> Nach Friedel Fischer und Karl-Heinz Barth ist er nunmehr der Dritte im Bunde. !Vorstand der Kampagne 2022/23<br> [img[https://www.karnevalverein-frohsinn.de/assets/images/vorstand-2021_570.jpg]] <br> |1.Vorsitzender:|Ulfert Hahn| |1.Kassierer:|Michi Kukuruzovicz| |2.Vorsitzender:|Jens Landefeld| |2.Kassiererin:|Jutta Eckard| |Schriftführerin:|Daniela Neuhäuser| |Pressesprecher:|David Görke| |Zeugwart:|Saskia Werner| --- !Vereinsorden [img width=300 [https://www.karnevalverein-frohsinn.de/mob/assets/images/mob-vereinsorden-2023-1000x1000.jpg]] --- !Terminplan der Kampagne 2022/23 | Samstag | 05.11.2022 | 20:11 | Ambosse Party | Männerballett | Vereinshaus | | Freitag | 11.11.2022 | 11:11 | Fastnachtsauftakt | Narrenrat | Eselsbrunnen | | Freitag | 18.11.2022 | 18:30/20:00 | Kampagnenstart | KV Frohsinn | Vereinshaus | | Samstag | 19.11.2022 | 17:30/19:00 | Kampagnenstart | KV Frohsinn | Vereinshaus | | Freitag | 27.01.2023 | 19:11 | 1. Sitzung | KV Frohsinn | Stadthalle | | Samstag | 28.01.2023 | 18:31 | 2. Sitzung | KV Frohsinn | Stadthalle | | Samstag | 04.02.2023 | 18:31 | 3. Sitzung | KV Frohsinn | Stadthalle | | Sonntag | 05.02.2023 | 14:00 | Familiensitzung | KV Frohsinn | Stadthalle | | Samstag | 11.02.2023 | 20:11 | Oase Party | KV Frohsinn | Vereinshaus | | Samstag | 18.02.2023 | 14:11 | Kindermitmachsitzung | KV Frohsinn | Vereinshaus | | Sonntag | 19.02.2023 | 14:11 | Fastnachtszug | Vereinsring | Stadtgebiet | | Mittwoch | 22.02.2023 | | Heringsessen | KV Frohsinn | Vereinshaus | --- !Ambosse-Party |05.11.2022|Schlag auf Schlag|Vereinshaus|19:11 Uhr| [img width=300 [https://www.karnevalverein-frohsinn.de/mob/assets/images/2021-ambosseparty-plakat-absage-843x843.jpg]] ''KR-Männerballett kann den 11.11. nicht abwarten…''<br> … und startet bereits am Samstag, den 05. November 2022 mit ihrer nächsten „Schlag auf Schlag“-Party im Vereinshaus Frohsinn, Frohsinn-Weg 1, 61440 Oberursel, vor der kommenden Fassenachtskampagne.<br> Unter dem Motto “Wir kommen früher…” freut sich das Männerballett über alle Feierwütigen – egal ob Fastnachter, Musikfan, Nachtschwärmer oder Tanzmaus. Natürlich gerne in Verkleidung!<br> Die Filsbacher XXL, bekannt über die Grenzen Deutschlands hinaus, mit ihrem ganz speziellen Mix aus Partymusik, Rock-Klassikern, 90ern, Wies’nhits und NDW versprechen für beste Stimmung zu sorgen. |!Multimedia |!Titel |!Link | |Presse TZ |Frohsinn feiert sich warm... |https://www.karnevalverein-frohsinn.de/mob/assets/images/22-11-08-tz-ambosseparty-600-600x747.jpg | --- !Ausrufung der Fastnacht |11.11.2022|Ausrufung der Fastnacht|Fastnachtsbrunnen|11:11 Uhr| |!Multimedia |!Titel |!Link | |Presse |div. | | --- !Tollität |!Prinzessin |Fiona I. | The Ravens |[[Homepage der Prinzessin|https://www.narrenrat-oberursel.de/html/prinz2023.html]]|[[Facebook|https://www.facebook.com/profile.php?id=100086189433668]]| [img[https://www.narrenrat-oberursel.de/assets/images/2023-prinzessin-fiona1_200.jpg]]<br> --- !Eröffnung der Kampagne |Freitag |18.11.22|Eröffungssitzung|"...auf in die Wilden 20'er" |Vereinshaus Frohsinn| |Samstag |19.11.22|Eröffungssitzung|"...auf in die Wilden 20'er" |Vereinshaus Frohsinn| [img width=300 [https://www.karnevalverein-frohsinn.de/mob/assets/images/mob-vst-2022-frohsinnopen-plakat-1160x1640.jpg]] Die etwas andere Fassenachtsshow<br> ''...auf in die WILDEN 20er''<br> Erstes Highlight war die diesjährige Kampagneneröffnung. Aus den Grundideen der bekannten und beliebten Motto-Sitzungen des "Kleinen Rats" und der erfolgreichen Eröffnungssitzung des KV Frohsinn im letzten Jahr wurde ein neues Konzept für den Kampagnenstart gebaut. Am 18. Und 19.11. 2022 hieß es dann im Vereinshaus Frohsinn: „Auf in die wilden 20er – die etwas andere Fastnachtsshow“. Es war ein bunter Mix aus Show, Klamauk, Musik und frechem Mundwerk vor dem Hintergrund der 1920er und 2020er Jahre. Vor der Veranstaltung gab es leckere Gaumenfreuden und danach Augen-, Ohr- und Lachmuskeltraining". !!!Programmablauf |!lfd Nr. |!Programmpunkt |!Dauer |!Fr+Sa | | 1 | Willkommen Cabaret | 00:10 | 19:20 | | 2 | Begrüßung | 00:05 | 19:30 | | 3 | Die Prinz*essinen kommen | 00:15 | 19:35 | | 4 | Minis | 00:10 | 19:50 | | 5 | Protokoll Harald Michael | 00:15 | 20:00 | | 6 | Jugend Brassband | 00:15 | 20:15 | | 7 | Norman Vortrag Die Brille | 00:15 | 20:30 | | 8 | Song Duo Money, Money | 00:10 | 20:45 | | 9 | Tanzgarde | 00:10 | 20:55 | | 10 | Sänger 1920er Medley | 00:15 | 21:05 | | 11 | Pause | 00:30 | 21:20 | | 12 | Sketch Orschel Warrior Games | 00:10 | 21:50 | | 13 | Interview mit Winner und Loser | 00:05 | 22:00 | | 14 | Brassband | 00:20 | 22:05 | | 15 | Betty Vortrag Die E Bikerin | 00:15 | 22:25 | | 16 | Alte Mädels Ballett | 00:10 | 22:40 | | 17 | Matthias Die Klimaaktivistin | 00:15 | 22:50 | | 18 | Männerballett | 00:15 | 23:05 | | 19 | Sänger Karaoke Schlager | 00:10 | 23:20 | | 20 | Finale | 00:05 | 23:30 | [img width=19% [https://www.karnevalverein-frohsinn.de/mob/assets/images/2022-vfopenmob-1-1000x669.jpg]] [img width=19% [https://www.karnevalverein-frohsinn.de/mob/assets/images/2022-vfopenmob-2-1000x669.jpg]] [img width=19% [https://www.karnevalverein-frohsinn.de/mob/assets/images/2022-vfopenmob-3-1000x669.jpg]] [img width=19% [https://www.karnevalverein-frohsinn.de/mob/assets/images/2022-vfopenmob-4-1000x669.jpg]] [img width=19% [https://www.karnevalverein-frohsinn.de/mob/assets/images/2022-vfopenmob-5-1000x669.jpg]] |!Multimedia |!Quelle |!Titel |!Link | |Fotogalerie |Fotos von Sabine Kinkel | |[[Fotogalerie ansehen...|FOTOGALERIE 2022 Eroeffnungssitzung]]| |Presse 08.11.22 |Orscel2day|Karnevalverein Frohsinn startet ...|[[Online|https://www.facebook.com/groups/oberurseler.forum/permalink/5942107779154606]] |[[PDF|https://www.karnevalverein-frohsinn.de/22-11-08-O2D-Frohsinn.pdf]] | |Presse 21.11.22 |Taunus-Zeitung |Den "Wilden 20ern" kann sich niemand entziehen |[[Online|]] |[[PDF|http://www.karnevalverein-frohsinn.de/22-11-21-tz-frohsinn_ePaper.pdf]] | --- !Weihnachtsmarkt |Freitag bis Sonntag|24. bis 27.11.22|Stand auf dem Weihnachtsmarkt |Rathausplatz Oberursel | ''WILLKOMMEN BEIM FROHSINN-STAND''<br> Der Oberurseler Weihnachtsmarkt wird in diesem Jahr wieder traditionell am ersten Adventswochenende, von Donnerstag, den 24.11. bis Sonntag 27.11.2022, stattfinden. <br> --- !Prunksitzungen |Freitag |27.01.23|1. Prunksitzung |Stadthalle Oberursel | |Samstag |28.01.23|2. Prunksitzung |Stadthalle Oberursel | |Samstag |04.02.23|3. Prunksitzung |Stadthalle Oberursel | |Sonntag |05.02.23|Familien-Sitzung |Stadthalle Oberursel | !!!Programmablauf |!lfd Nr. |!Programmpunkt | | 1 | Eröffnung | | 2 | Minis | | 3 | Protokoll | | 4 | Tanzgarde | | 5 | Norman Dießner | | 6 | DK&JBB | | 7 | Betty Marris | | 8 | Tanzgarde II | | 9 | Sänger | | 10 | Pause | | 11 | Brassband | | 12 | Sektschwestern | | 13 | Marktweiber | | 14 | Ballett | | 15 | Matthias Decker | | 16 | Männerballett | | 17 | Nanga | | 18 | Finale Weißer Bembel | |!Multimedia |!Quelle |!Titel |!Link | |Fotogalerie |Fotos von | |https://......... | |Presse 30.01.23 |Taunus-Zeitung |Corona war gestern - Frohsinn ist angesagt |[[Online|]] |[[PDF|https://www.karnevalverein-frohsinn.de/23-01-30-tz-frohsinne-sitzung.pdf]] | |Presse 02.02.23 |Oberurseler Woche |Frauenpower mit Garden und Greta |[[Online|]] |[[PDF|https://www.karnevalverein-frohsinn.de/23-02-02-ow-sitzungen.pdf]] | --- !Karnevalszug |Sonntag |19.02.23|Taunus-Karnevals-Zug |Innenstadt Oberursel | [img width=19% [http://www.kvf1890.de/Taunuskarnevalsumzug_KVF/slides/cHN5A3282.jpg]] [img width=19% [http://www.kvf1890.de/Taunuskarnevalsumzug_KVF/slides/cHN5A3284.jpg]] [img width=19% [http://www.kvf1890.de/Taunuskarnevalsumzug_KVF/slides/cHN5A3285.jpg]] [img width=19% [http://www.kvf1890.de/Taunuskarnevalsumzug_KVF/slides/cHN5A3288.jpg]] [img width=19% [http://www.kvf1890.de/Taunuskarnevalsumzug_KVF/slides/cHN5A3291.jpg]] !!Preise ''OHLENSPIEGEL''<br> Die Jury hat den begehrten Preis an den KLEINEN RAT vergeben<br>mit dem Motto ''Zeitwende für Orschel - Epinayplatz endlich grün''<br> |!Multimedia |!Quelle |!Titel |!Link | |Fotogalerie Archiv |[[FOTOGALERIE 2023 Karnevalszug]]| |Fotogalerie |Andy Breitbart |Taunuskarnevalsumzug_KVF l |[[Fotos ansehen|http://www.kvf1890.de/Taunuskarnevalsumzug_KVF/]]| |Fotogalerie |Andy Breitbart |Taunuskarnevalszug2023 all |[[Fotos ansehen|http://www.kvf1890.de/Taunuskarnevalszug2023/index.html]]| |Video |Rainer Guth |Taunuskarnevalszug2023 |[[Video ansehen|https://youtu.be/woWKWKmHtmQ]]| |Video |Andy Breitbart |Taunuskarnevalszug2023 |[[Video ansehen|http://www.kvf1890.de/Taunuskarnevalsumzug_KVF/#img=FROHSINN2023.mp4]]| --- !Frohsinn in der Taunus-Sparkasse |Montag |20.02.23|Taunus-Sparkasse |Epinayplatz Oberursel | !!!Programmablauf |!lfd Nr. |!Programmpunkt | | 1 |Begrüßung durch den Leiter der Taunus-Sparkasse | | 2 |Ansprache vom Prinzessin Fiona, sowie Kinderprinzenpaar Prinz Julius & und Prinzessin Annabel I. | | 3 |Funkentanz von dem Karnevalsclub "The Ravens" aus Stierstadt | | 4 |Wort-Vortrag Stephan Remes KVF | | 5 |Frohsinn-Sänger | | 6 |Jugend-Brassband KVF | [img width=19% [http://www.karnevalverein-frohsinn.de/assets/galerie/2023-taunussparkasse/2023-taunussprakasse_01.jpg]] [img width=19% [http://www.karnevalverein-frohsinn.de/assets/galerie/2023-taunussparkasse/2023-taunussprakasse_07.jpg]] [img width=19% [http://www.karnevalverein-frohsinn.de/assets/galerie/2023-taunussparkasse/2023-taunussprakasse_02.jpg]] [img width=19% [http://www.karnevalverein-frohsinn.de/assets/galerie/2023-taunussparkasse/2023-taunussprakasse_03.jpg]] [img width=19% [http://www.karnevalverein-frohsinn.de/assets/galerie/2023-taunussparkasse/2023-taunussprakasse_04.jpg]] [img width=19% [http://www.karnevalverein-frohsinn.de/assets/galerie/2023-taunussparkasse/2023-taunussprakasse_05.jpg]] [img width=19% [http://www.karnevalverein-frohsinn.de/assets/galerie/2023-taunussparkasse/2023-taunussprakasse_06.jpg]] [img width=19% [http://www.karnevalverein-frohsinn.de/assets/galerie/2023-taunussparkasse/2023-taunussprakasse_08.jpg]] [img width=19% [http://www.karnevalverein-frohsinn.de/assets/galerie/2023-taunussparkasse/2023-taunussprakasse_09.jpg]] [img width=19% [http://www.karnevalverein-frohsinn.de/assets/galerie/2023-taunussparkasse/2023-taunussprakasse_10.jpg]] [img width=19% [http://www.karnevalverein-frohsinn.de/assets/galerie/2023-taunussparkasse/2023-taunussprakasse_11.jpg]] --- !BRUNNENKÖNIGIN FELICITAS I. & BRUNNENMEISTER STEFF --- !FAMILIENTAG der Brassband des KV Frohsinn |Sonntag |16.07.2023|Vereinshaus Frohsinn | [img width=19% [http://www.karnevalverein-frohsinn.de/assets/galerie/2023-familientag-brassband/2023-familientag-brassband_01.jpg]] [img width=19% [http://www.karnevalverein-frohsinn.de/assets/galerie/2023-familientag-brassband/2023-familientag-brassband_02.jpg]] [img width=19% [http://www.karnevalverein-frohsinn.de/assets/galerie/2023-familientag-brassband/2023-familientag-brassband_03.jpg]] [img width=19% [http://www.karnevalverein-frohsinn.de/assets/galerie/2023-familientag-brassband/2023-familientag-brassband_04.jpg]] [img width=19% [http://www.karnevalverein-frohsinn.de/assets/galerie/2023-familientag-brassband/2023-familientag-brassband_05.jpg]] [img width=19% [http://www.karnevalverein-frohsinn.de/assets/galerie/2023-familientag-brassband/2023-familientag-brassband_06.jpg]] [img width=19% [http://www.karnevalverein-frohsinn.de/assets/galerie/2023-familientag-brassband/2023-familientag-brassband_07.jpg]] --- !ORDENSFEST |Samstag |07.10.2023|Vereinshaus Frohsinn | --- --- [[Nach oben...|Kampagne 2022/23]]<br>
|[[Archiv]]|[[Chronik]]|[[Zeitleiste]]| : : : |[[Kampagne 2022/23]]| < - > |[[Kampagne 2024/25]]| --- !''Kampagne 2023/24'' |!Link|https://www.karnevalverein-frohsinn.de/html/kvf-chronik-2023-24.html| |!Presse|[[Presse 2023/24]]| !Anmerkungen zur Kampagne Die Tollitäten des Vereins sind das Herzstück des Vereins in der kommenden Kampagne. Die bezaubernde Brunnenkönigin Felicitas I. und der charismatische Karnevalsprinz Ulfert I.regieren über die ausgelassenen Feierlichkeiten und verzaubern die Menschen mit ihrer königlichen Pracht und ihrem Frohsinn. Sie repräsentieren den Geist des Karnevals und führen die bunte Parade mit Würde und Freude an.<br> Der Karnevalverein Frohsinn ist stolz darauf, ein Teil dieser wunderbaren Tradition zu sein und die Magie des Karnevals in Oberursel Jahr für Jahr zu entfachen. Die Mitglieder arbeiten hart, um ein abwechslungsreiches Programm auf die Beine zu stellen und den Menschen ein unvergessliches Erlebnis zu bieten.<br><br> --- !JAHRES-HAUPT-VERSAMMLUNG 2023 |13.09.23|JHV 2023 |Vereinshaus Frohsinn | Beginn 19:30 Uhr| !Vorstand der Kampagne 2023/2024 [img[https://www.karnevalverein-frohsinn.de/assets/images/vorstand-2023_500.jpg]]<br> |1.Vorsitzender:|Ulfert Hahn| |1.Kassierer:|Michi Kukuruzovicz| |2.Vorsitzender:|Jens Landefeld| |2.Kassiererin:|Jutta Eckard| |Schriftführerin:|Daniela Neuhäuser| |Pressesprecher:|David Görke| |Zeugwart:| | --- !Vereinsorden [img width=300 [https://www.karnevalverein-frohsinn.de/mob/assets/images/mob-vereinsorden-2024.jpg]] --- !Terminplan der Kampagne 2023/24 | Samstag | 11.11.2023 | 11:11 | Fastnachtsauftakt | Eselsbrunnen | Narrenrat | | Samstag | 11.11.2023 | 20:11 | Inthronisation Tollität | Stadthalle | Narrenrat | | Freitag | 17.11.2023 | 18:30/20:00 | Kampagnenstart | Vereinshaus | KV Frohsinn | | Samstag | 18.11.2023 | 17:30/19:00 | Kampagnenstart | Vereinshaus | KV Frohsinn | | Samstag | 13.01.2024 | 20:11 | Gala der Tollität | Elaya Hotel | Narrenrat | | Freitag | 19.01.2024 | 19:11 | 1. Sitzung | Stadthalle | KV Frohsinn | | Samstag | 20.01.2024 | 18:31 | 2. Sitzung | Stadthalle | KV Frohsinn | | Samstag | 27.01.2024 | 18:31 | 3. Sitzung | Stadthalle | KV Frohsinn | | Sonntag | 28.01.2024 | 14:00 | Familiensitzung | Stadthalle | KV Frohsinn | | Samstag | 03.02.2024 | 20:11 | Oase Party | Vereinshaus | KV Frohsinn | | Samstag | 03.02.2024 | 11:11 | Rathaussturm | Rathaus | Narrenrat | | Samstag | 10.02.2024 | 14:11 | Kindermitmachsitzung | Vereinshaus | KV Frohsinn | | Sonntag | 11.02.2024 | 14:11 | Fastnachtszug | Stadtgebiet | Vereinsring | | Dienstag | 13.02.2024 | | Tollitätenauskleidung | Vereinshaus | Narrenrat | | Mittwoch | 14.02.2024 | | Heringsessen | Vereinshaus | KV Frohsinn | --- !Ausrufung der Fastnacht |11.11.2023|Ausrufung der Fastnacht|Fastnachtsbrunnen|11:11 Uhr| |!Multimedia |!Titel |!Link | |Presse |div. | | --- [[Nach oben...|Kampagne 2023/24]]<br> --- --- !Tollität |!Prinzessin |Fiona I. | The Ravens |[[Homepage der Prinzessin|https://www.narrenrat-oberursel.de/html/prinz2023.html]]|[[Facebook|https://www.facebook.com/profile.php?id=100086189433668]]| [img[https://www.narrenrat-oberursel.de/assets/images/2023-prinzessin-fiona1_200.jpg]]<br> --- !Eröffnung der Kampagne |Freitag |18.11.22|Eröffungssitzung|"...auf in die Wilden 20'er" |Vereinshaus Frohsinn| |Samstag |19.11.22|Eröffungssitzung|"...auf in die Wilden 20'er" |Vereinshaus Frohsinn| [img width=300 [https://www.karnevalverein-frohsinn.de/mob/assets/images/mob-vst-2022-frohsinnopen-plakat-1160x1640.jpg]] Die etwas andere Fassenachtsshow<br> ''...auf in die WILDEN 20er''<br> Erstes Highlight war die diesjährige Kampagneneröffnung. Aus den Grundideen der bekannten und beliebten Motto-Sitzungen des "Kleinen Rats" und der erfolgreichen Eröffnungssitzung des KV Frohsinn im letzten Jahr wurde ein neues Konzept für den Kampagnenstart gebaut. Am 18. Und 19.11. 2022 hieß es dann im Vereinshaus Frohsinn: „Auf in die wilden 20er – die etwas andere Fastnachtsshow“. Es war ein bunter Mix aus Show, Klamauk, Musik und frechem Mundwerk vor dem Hintergrund der 1920er und 2020er Jahre. Vor der Veranstaltung gab es leckere Gaumenfreuden und danach Augen-, Ohr- und Lachmuskeltraining". !!!Programmablauf |!lfd Nr. |!Programmpunkt |!Dauer |!Fr+Sa | | 1 | Willkommen Cabaret | 00:10 | 19:20 | | 2 | Begrüßung | 00:05 | 19:30 | | 3 | Die Prinz*essinen kommen | 00:15 | 19:35 | | 4 | Minis | 00:10 | 19:50 | | 5 | Protokoll Harald Michael | 00:15 | 20:00 | | 6 | Jugend Brassband | 00:15 | 20:15 | | 7 | Norman Vortrag Die Brille | 00:15 | 20:30 | | 8 | Song Duo Money, Money | 00:10 | 20:45 | | 9 | Tanzgarde | 00:10 | 20:55 | | 10 | Sänger 1920er Medley | 00:15 | 21:05 | | 11 | Pause | 00:30 | 21:20 | | 12 | Sketch Orschel Warrior Games | 00:10 | 21:50 | | 13 | Interview mit Winner und Loser | 00:05 | 22:00 | | 14 | Brassband | 00:20 | 22:05 | | 15 | Betty Vortrag Die E Bikerin | 00:15 | 22:25 | | 16 | Alte Mädels Ballett | 00:10 | 22:40 | | 17 | Matthias Die Klimaaktivistin | 00:15 | 22:50 | | 18 | Männerballett | 00:15 | 23:05 | | 19 | Sänger Karaoke Schlager | 00:10 | 23:20 | | 20 | Finale | 00:05 | 23:30 | [img width=19% [https://www.karnevalverein-frohsinn.de/mob/assets/images/2022-vfopenmob-1-1000x669.jpg]] [img width=19% [https://www.karnevalverein-frohsinn.de/mob/assets/images/2022-vfopenmob-2-1000x669.jpg]] [img width=19% [https://www.karnevalverein-frohsinn.de/mob/assets/images/2022-vfopenmob-3-1000x669.jpg]] [img width=19% [https://www.karnevalverein-frohsinn.de/mob/assets/images/2022-vfopenmob-4-1000x669.jpg]] [img width=19% [https://www.karnevalverein-frohsinn.de/mob/assets/images/2022-vfopenmob-5-1000x669.jpg]] |!Multimedia |!Quelle |!Titel |!Link | |Fotogalerie |Fotos von Sabine Kinkel | |[[Fotogalerie ansehen...|FOTOGALERIE 2022 Eroeffnungssitzung]]| |Presse 08.11.22 |Orscel2day|Karnevalverein Frohsinn startet ...|[[Online|https://www.facebook.com/groups/oberurseler.forum/permalink/5942107779154606]] |[[PDF|https://www.karnevalverein-frohsinn.de/22-11-08-O2D-Frohsinn.pdf]] | |Presse 21.11.22 |Taunus-Zeitung |Den "Wilden 20ern" kann sich niemand entziehen |[[Online|]] |[[PDF|http://www.karnevalverein-frohsinn.de/22-11-21-tz-frohsinn_ePaper.pdf]] | --- !Weihnachtsmarkt |Freitag bis Sonntag|24. bis 27.11.22|Stand auf dem Weihnachtsmarkt |Rathausplatz Oberursel | ''WILLKOMMEN BEIM FROHSINN-STAND''<br> Der Oberurseler Weihnachtsmarkt wird in diesem Jahr wieder traditionell am ersten Adventswochenende, von Donnerstag, den 24.11. bis Sonntag 27.11.2022, stattfinden. <br> --- !Prunksitzungen |Freitag |27.01.23|1. Prunksitzung |Stadthalle Oberursel | |Samstag |28.01.23|2. Prunksitzung |Stadthalle Oberursel | |Samstag |04.02.23|3. Prunksitzung |Stadthalle Oberursel | |Sonntag |05.02.23|Familien-Sitzung |Stadthalle Oberursel | !!!Programmablauf |!lfd Nr. |!Programmpunkt | | 1 | Eröffnung | | 2 | Minis | | 3 | Protokoll | | 4 | Tanzgarde | | 5 | Norman Dießner | | 6 | DK&JBB | | 7 | Betty Marris | | 8 | Tanzgarde II | | 9 | Sänger | | 10 | Pause | | 11 | Brassband | | 12 | Sektschwestern | | 13 | Marktweiber | | 14 | Ballett | | 15 | Matthias Decker | | 16 | Männerballett | | 17 | Nanga | | 18 | Finale Weißer Bembel | |!Multimedia |!Quelle |!Titel |!Link | |Fotogalerie |Fotos von | |https://......... | |Presse 30.01.23 |Taunus-Zeitung |Corona war gestern - Frohsinn ist angesagt |[[Online|]] |[[PDF|https://www.karnevalverein-frohsinn.de/23-01-30-tz-frohsinne-sitzung.pdf]] | |Presse 02.02.23 |Oberurseler Woche |Frauenpower mit Garden und Greta |[[Online|]] |[[PDF|https://www.karnevalverein-frohsinn.de/23-02-02-ow-sitzungen.pdf]] | --- !Karnevalszug |Sonntag |19.02.23|Taunus-Karnevals-Zug |Innenstadt Oberursel | [img width=19% [http://www.kvf1890.de/Taunuskarnevalsumzug_KVF/slides/cHN5A3282.jpg]] [img width=19% [http://www.kvf1890.de/Taunuskarnevalsumzug_KVF/slides/cHN5A3284.jpg]] [img width=19% [http://www.kvf1890.de/Taunuskarnevalsumzug_KVF/slides/cHN5A3285.jpg]] [img width=19% [http://www.kvf1890.de/Taunuskarnevalsumzug_KVF/slides/cHN5A3288.jpg]] [img width=19% [http://www.kvf1890.de/Taunuskarnevalsumzug_KVF/slides/cHN5A3291.jpg]] !!Preise ''OHLENSPIEGEL''<br> Die Jury hat den begehrten Preis an den KLEINEN RAT vergeben<br>mit dem Motto ''Zeitwende für Orschel - Epinayplatz endlich grün''<br> |!Multimedia |!Quelle |!Titel |!Link | |Fotogalerie Archiv |[[FOTOGALERIE 2023 Karnevalszug]]| |Fotogalerie |Andy Breitbart |Taunuskarnevalsumzug_KVF l |[[Fotos ansehen|http://www.kvf1890.de/Taunuskarnevalsumzug_KVF/]]| |Fotogalerie |Andy Breitbart |Taunuskarnevalszug2023 all |[[Fotos ansehen|http://www.kvf1890.de/Taunuskarnevalszug2023/index.html]]| |Video |Rainer Guth |Taunuskarnevalszug2023 |[[Video ansehen|https://youtu.be/woWKWKmHtmQ]]| |Video |Andy Breitbart |Taunuskarnevalszug2023 |[[Video ansehen|http://www.kvf1890.de/Taunuskarnevalsumzug_KVF/#img=FROHSINN2023.mp4]]| --- !Frohsinn in der Taunus-Sparkasse |Montag |20.02.23|Taunus-Sparkasse |Epinayplatz Oberursel | !!!Programmablauf |!lfd Nr. |!Programmpunkt | | 1 |Begrüßung durch den Leiter der Taunus-Sparkasse | | 2 |Ansprache vom Prinzessin Fiona, sowie Kinderprinzenpaar Prinz Julius & und Prinzessin Annabel I. | | 3 |Funkentanz von dem Karnevalsclub "The Ravens" aus Stierstadt | | 4 |Wort-Vortrag Stephan Remes KVF | | 5 |Frohsinn-Sänger | | 6 |Jugend-Brassband KVF | [img width=19% [http://www.karnevalverein-frohsinn.de/assets/galerie/2023-taunussparkasse/2023-taunussprakasse_01.jpg]] [img width=19% [http://www.karnevalverein-frohsinn.de/assets/galerie/2023-taunussparkasse/2023-taunussprakasse_07.jpg]] [img width=19% [http://www.karnevalverein-frohsinn.de/assets/galerie/2023-taunussparkasse/2023-taunussprakasse_02.jpg]] [img width=19% [http://www.karnevalverein-frohsinn.de/assets/galerie/2023-taunussparkasse/2023-taunussprakasse_03.jpg]] [img width=19% [http://www.karnevalverein-frohsinn.de/assets/galerie/2023-taunussparkasse/2023-taunussprakasse_04.jpg]] [img width=19% [http://www.karnevalverein-frohsinn.de/assets/galerie/2023-taunussparkasse/2023-taunussprakasse_05.jpg]] [img width=19% [http://www.karnevalverein-frohsinn.de/assets/galerie/2023-taunussparkasse/2023-taunussprakasse_06.jpg]] [img width=19% [http://www.karnevalverein-frohsinn.de/assets/galerie/2023-taunussparkasse/2023-taunussprakasse_08.jpg]] [img width=19% [http://www.karnevalverein-frohsinn.de/assets/galerie/2023-taunussparkasse/2023-taunussprakasse_09.jpg]] [img width=19% [http://www.karnevalverein-frohsinn.de/assets/galerie/2023-taunussparkasse/2023-taunussprakasse_10.jpg]] [img width=19% [http://www.karnevalverein-frohsinn.de/assets/galerie/2023-taunussparkasse/2023-taunussprakasse_11.jpg]] --- !BRUNNENKÖNIGIN FELICITAS I. & BRUNNENMEISTER STEFF --- !FAMILIENTAG der Brassband des KV Frohsinn |Sonntag |16.07.2023|Vereinshaus Frohsinn | [img width=19% [http://www.karnevalverein-frohsinn.de/assets/galerie/2023-familientag-brassband/2023-familientag-brassband_01.jpg]] [img width=19% [http://www.karnevalverein-frohsinn.de/assets/galerie/2023-familientag-brassband/2023-familientag-brassband_02.jpg]] [img width=19% [http://www.karnevalverein-frohsinn.de/assets/galerie/2023-familientag-brassband/2023-familientag-brassband_03.jpg]] [img width=19% [http://www.karnevalverein-frohsinn.de/assets/galerie/2023-familientag-brassband/2023-familientag-brassband_04.jpg]] [img width=19% [http://www.karnevalverein-frohsinn.de/assets/galerie/2023-familientag-brassband/2023-familientag-brassband_05.jpg]] [img width=19% [http://www.karnevalverein-frohsinn.de/assets/galerie/2023-familientag-brassband/2023-familientag-brassband_06.jpg]] [img width=19% [http://www.karnevalverein-frohsinn.de/assets/galerie/2023-familientag-brassband/2023-familientag-brassband_07.jpg]] --- --- --- [[Nach oben...|Kampagne 2023/24]]<br><br>
|[[Der Frohsinn]]|[[Veranstaltungen]]|[[Bühnenaktive]]|[[Chronik]]| --- |[[Kampagne 2009/10]]|[[Chronik-Übersicht]]|[[Kampagne 2011/12]]| --- !Kampagne xxxx/xx !!Anmerkungen zur Kampagne |[[Homepage-Chronik|https://www.karnevalverein-frohsinn.de/html/vf-verein-chronik.html]]|[[Pressemeldungen 2010/11]]| <br> <br> !!Vorstand der Kampagne 2010/2011<br> |1.Vorsitzender:|[[Karl-Heinz-Barth]]| |2.Vorsitzender:|[[Stephan Remes]]| |Schriftführerin:|Daniela Neuhäuser| |1.Kassiererin:|Elke Dietz| |2.Kassiererin:|Jutta Eckard| |Zeugwart:|Max Kuntsche| |Zeugwart:|Detlef Unruh| |Pressesprecher:|Gerd Krämer| !!Anmerkungen zur JHV |xxxxxx |xx.xx.xx|JHV 2010 |Vereinshaus Frohsinn | <br> <br> <br> !!Terminkalender der Kampage 2010/2011 |xxxxxx |11.11.82|Ausrufung der Fastnacht|Fastnachtsbrunnen| |xxxxxx |11.11.82|Inthronisation der Tollität|Stadthalle Oberursel| |xxxxxx |xx.11.82|Eröffnungssitzung |Vereinshaus Frohsinn| |Samstag|16.01.82|1.Große Fremdensitzung |Stadthalle Oberursel| |Sonntag| 17.01.82|2.Große Fremdensitzung |Stadthalle Oberursel| |Samstag|23.01.82|3.Große Fremdensitzung |Stadthalle Oberursel| |Sonntag|24.01.82|Senioren & Familiensitzung |Stadthalle Oberursel| |Samstag|30.01.82|HauspartyOase |Vereinshaus Frohsinn| |Samstag|06.02.82|Prinzenball Prinzeninthronisation |Turnhalle Korfstraße| |Samstag|13.02.82|Kostümball der Ehrengarde |Turnhalle Korfstraße| <br> !!Eröffnung der Kampagne |Samstag |13.11.10|Eröffungssitzung|"Wetten das..." |Vereinshaus Frohsinn | |!Multimedia |!Titel |! Untertitel |!Link | |Homepage |Eröffnungssitzung 2010 "Wetten das..." |xxxxxxxxxx| |Fotogalerie |Fotos von... |xxxxxxxxxx |xxxxxxxxxx| |Video |xxxxxxxxxxx |xxxxxxxxxx |xxxxxxxxxx| |Presse |TZ 23.10.10 |xxxxxxxxxx |xxxxxxxxxx| <br> !!Sitzungen des Kleinen Rat |Freitag |20.11.2010|KR-Sitzung|"KRass in den Wechseljahren"|Vereinshaus Frohsinn| |Samstag |20.11.2010|KR-Sitzung|"KRass in den Wechseljahren"|Vereinshaus Frohsinn| |!Multimedia |!Titel |! Untertitel |!Link | |KR Chronik |KR Sitzung 2010 |xxxxxxxxxx |xxxxxxxxxx| |Fotogalerie |Fotos von... |xxxxxxxxxx |xxxxxxxxxx| |Video |xxxxxxxxxxx |xxxxxxxxxx |xxxxxxxxxx| |Presse |TZ 23.10.10 |xxxxxxxxxx |xxxxxxxxxx| <br> !!Prunksitzungen siehe->[[Prunksitzung 2011]] |Freitag |00.02.11|1.Prunksitzung|Stadthalle Oberursel | |Samstag |19.02.11|2.Prunksitzung|Stadthalle Oberursel | |Samstag |26.02.11|3.Prunksitzung|Stadthalle Oberursel | |Sonntag |27.02.11|Seniorensitzung|Stadthalle Oberursel | |!Multimedia |!Titel |! Untertitel |!Link | |Homepage |Prunksitzungen 2011 |xxxxxxxxxx |xxxxxxxxxx| |Fotogalerie |Fotos von... |xxxxxxxxxx |xxxxxxxxxx| |Video |xxxxxxxxxxx |xxxxxxxxxx |xxxxxxxxxx| |Presse |TZ 23.10.10 |xxxxxxxxxx |xxxxxxxxxx| <br> !!Hexensitzung |Freitag |18.02.11 |Hexensitzung 2011 |Stadthalle | ''Beiträge des KV-Frohsinn'' *Einzug & Begrüßung mit Prinz & Ehrengarde *KR-Männerballett "Summerfeeling" *Nanga *Brassband *Frohsinn-Ballett "Hairspray" |!Multimedia |!Titel |! Untertitel |!Link | |Homepage |Prunksitzungen 2011 |xxxxxxxxxx |xxxxxxxxxx| |Fotogalerie |Fotos von... |xxxxxxxxxx |xxxxxxxxxx| |Video |xxxxxxxxxxx |xxxxxxxxxx |xxxxxxxxxx| |Presse |TZ 23.10.10 |xxxxxxxxxx |xxxxxxxxxx| <br> !!Hausparty "Oase" |xxxxxx |25.02.11 |"Oase Reloaded 2011" |Vereinshaus Frohsinn | <br> |!Multimedia |!Titel |! Untertitel |!Link | |Homepage |Hausparty 2011 |xxxxxxxxxx |xxxxxxxxxx| |Fotogalerie |Fotos von... |xxxxxxxxxx |xxxxxxxxxx| |Video |xxxxxxxxxxx |xxxxxxxxxx |xxxxxxxxxx| |Presse | |xxxxxxxxxx |xxxxxxxxxx| <br> !!Rathausstrurm |Samstag |26.02.11 |Rathaussturm |Rathaus Oberursel | <br> |!Multimedia |!Titel |! Untertitel |!Link | |Homepage |Rathaussturm |xxxxxxxxxx |xxxxxxxxxx| |Fotogalerie |Fotos von... |xxxxxxxxxx |xxxxxxxxxx| |Video |xxxxxxxxxxx |xxxxxxxxxx |xxxxxxxxxx| |Presse |xxxxxxxxxxx |xxxxxxxxxx |xxxxxxxxxx| <br> !!Kinder-Mitmachsitzung |Samstag |26.02.11 |Kinfer-Mit-Mach-Sitzung |Vereinshaus Frohsinn | <br> |!Multimedia |!Titel |! Untertitel |!Link | |Homepage |Hausparty 2011 |xxxxxxxxxx |xxxxxxxxxx| |Fotogalerie |Fotos von... |xxxxxxxxxx |xxxxxxxxxx| |Video |xxxxxxxxxxx |xxxxxxxxxx |xxxxxxxxxx| |Presse | |xxxxxxxxxx |xxxxxxxxxx| <br> !!Taunus-Karnevalszug |Sonntag |27.02.11 |Taunus Karnevalszug 2011 |Innenstadt Oberursel | ''Zugplan Vereinsring Oberursel'' ''Preise'' *1. Fussgruppe: Kleiner Rat *4. Fussgruppe: Frohsinn Sänger & Minnis *Sonderpreis «Ohlenspiegel» für die politisch beste Zugnummer: Kleinen Rat *(Anm. Die Presse schrieb irrtümlich "Bei den Fußgruppen hatten die Sänger des Karnevalvereins Frohsinn die Nase vorn") <br> |!Multimedia |!Titel |! Untertitel |!Link | |Homepage |Karnevalszug xxxx |xxxxxxxxxx |xxxxxxxxxx| |Fotogalerie |Fotos von... |xxxxxxxxxx |xxxxxxxxxx| |Video |xxxxxxxxxxx |xxxxxxxxxx |xxxxxxxxxx| |Presse | |xxxxxxxxxx |xxxxxxxxxx| !!09.02.11 Fastnachtzug in Oberhöchstadt <br> !!09.02.11 Prinzenverabschiedung im "Schwanen" <br> !!10.02.11 Aschermittwoch : Herings-Essen im Vereinshaus <br> !!Ordensfest des KV Frohsinn |Samstag |13.02.11 |Ordensfest 2011 |Vereinshaus Frohsinn | Es wurden folgende Personen geehrt: Frohsinn-Sänger -> Stephan Käfer, Stephan Coy, Martin Müller -> alle für ihre 1. Kampagne -> mit dem ~Sänger-Bajazz Ehrengarde -> Werner Kunz -> für 25 Jahre Ehrengarde -> mit dem Sonderorden der Ehrengarde Winnie Dorn, Jennifer Serth, Sarah Bechthold -> alle für 10 Jahre aktiv Beate Voss, Brigitte Haub, Werner Kunz-> mit der Goldenen Flamme |!Multimedia |!Titel |! Untertitel |!Link | |Homepage |Ordensfest xxxx |xxxxxxxxxx |xxxxxxxxxx| |Fotogalerie |Fotos von... |xxxxxxxxxx |xxxxxxxxxx| |Video |xxxxxxxxxxx |xxxxxxxxxx |xxxxxxxxxx| |Presse | |xxxxxxxxxx |xxxxxxxxxx| <br> <br><br><br> [[Nach oben...|Kampagne Masterlayout]] --- |[[Kampagne 2009/10]]|[[Chronik-Übersicht]]|[[Kampagne 2011/12]]| --- |[[Der Frohsinn]]|[[Veranstaltungen]]|[[Bühnenaktive]]|[[Chronik]]| |(c) 2021 by R.G.|Status dieser Seite:| i.A.|
|[[Der Frohsinn]]|[[Veranstaltungen]]|[[Bühnenaktive]]|[[Chronik]]| --- |[[Der Frohsinn]]|[[Vorstand]]|[[Senatoren]]|[[Ausschüsse]]|[[Downloads]]|[[Satzung]]|[[Sponsoren]]|[[Partner]]|[[Kontakt]]| --- !! Kontakt Karnevalverein Frohsinn 1890 e.V.<br> Frohsinn-Weg 1<br> 61440 Oberursel Telefon: 06171-21199<br> Email: info@karnevalverein-frohsinn.de<br> <br> !! Kontakt Korporationen !!! Ballett Jessica Eich Handy: 0160 93468122 ballett@karnevalverein-frohsinn.de <br> !!! Brassband Marc Ladehoff Handy (0177) 42 52 569 Marc.Ladehoff@~BrassbandFrohsinn.de <br> !!!Ehrengarde Ehrengarde Sven Buhlmann ehrengarde@karnevalverein-frohsinn.de <br> !!!11'er Rat Klaus Müller Tel. 0160/96498496 <br> !!!Frohsinn-Sänger Dr. Michael Weber Tel. 06172-21802 saenger@karnevalverein-frohsinn.de <br> !!!Kleiner Rat ‘74 Sabine Kinkel info@kleinerrat.de <br> !!!Männerballett "AMBOSSE" Steffen Gennert maennerballett@kleinerrat.de <br> !!!Marktweiber Christine Steden marktweiber@kleinerrat.de <br> !!!Konfetti Dani Neuhäuser Telefon (0 61 71) 5 24 08 konfetti@karnevalverein-frohsinn.de <br> !!!Die Minis Michaela Rau Tel. 0172-2032380 minis@karnevalverein-frohsinn.de <br> !!!Tanzgarde Tanja Bingenheimer, Nadine Eich und Carolyn Wilkinson Mobil: 0171-2875314 tanzgarde@karnevalverein-frohsinn.de <br> !!!Vortragende vortragende@karnevalverein-frohsinn.de <br> <br> --- |[[Der Frohsinn]]|[[Vorstand]]|[[Senatoren]]|[[Ausschüsse]]|[[Downloads]]|[[Satzung]]|[[Sponsoren]]|[[Partner]]|[[Kontakt]]| --- |[[Der Frohsinn]]|[[Veranstaltungen]]|[[Bühnenaktive]]|[[Chronik]]| (c) 2021 by R.G.
!KORPORATIONEN DES KV FROHSINN |![[Korporationen]]| |![[Ballett|KorpBallett]]|![[Tanzgarde|KorpTanzgarde]]|![[Minis|KorpMinis]]|![[Männerballett|KorpMaennerballett]]| |![[Brassband|KorpBrassband]]|![[Ehrengarde|KorpEhrengarde]]|![[11er-Rat|KorpElferrat]]|![[Kleiner Rat|KorpKleinerRat]]|![[Konfetti|KorpKonfetti]]|![[Sänger|KorpSaenger]]| --- --- !''Das Frohsinn-Ballett'' [img[https://www.karnevalverein-frohsinn.de/mob/assets/images/mob-korp-toppic-ballett-1000x429.jpg]] Seit nunmehr 40 Jahren wird die Gruppe, die zur Zeit aus 16 Damen und 3 Männern besteht, von Peter Bohländer trainiert, der Jahr für Jahr atemberaubende Choreographien auf die Bühne zaubert. Großes Tanztheater wie “Magic Of Dancing”, “The Best Little Whorehouse in Texas” oder “Viva la Vida“ sowie bekannte Musicals wie "König der Löwen", "Wicked" und “Aladdin“ waren und sind ebenfalls absolute Highlights der Frohsinn-Veranstaltungen. Das Ballett präsentiert bei seinen Auftritten nicht nur allseits bekannte Klassiker. Es wird sich ebenfalls mit anderen Tanzarten auseinandergesetzt. Dabei werden unter anderem Ballett, Standard, Jazz, sowie latein-amerikanische Schrittkombinationen erlernt. Den Tänzern und deren Publikum wird jährlich ein neues aufregendes Spektakel geboten. Trotz der Vielzahl ihrer Proben zeigen die jungen Damen und Herren viel Engagement und sind begeistert bei der Sache. Der Erfolg gibt ihnen recht. <iframe src="https://www.karnevalverein-frohsinn.de/html/vf-korp-ballett.html" frameborder="0" width="1040" height="250"></iframe><br> Korporations-Seite (alt): https://www.karnevalverein-frohsinn.de/html/vf-korp-ballett.html !FOTOGALERIE (Alt) [img[https://www.karnevalverein-frohsinn.de/assets/images/korp-ballett_toppic.jpg]] [img[https://www.karnevalverein-frohsinn.de/assets/images/korp-ballett_toppic2014.jpg]] <iframe src="https://www.karnevalverein-frohsinn.de/html/vf-korp-ballett-impress.html" frameborder="0" width="900" height="3170"></iframe><br> --- --- [[Nach oben...|KorpBallett]]
!KORPORATIONEN DES KV FROHSINN |![[Korporationen]]| |![[Ballett|KorpBallett]]|![[Tanzgarde|KorpTanzgarde]]|![[Minis|KorpMinis]]|![[Männerballett|KorpMaennerballett]]| |![[Brassband|KorpBrassband]]|![[Ehrengarde|KorpEhrengarde]]|![[11er-Rat|KorpElferrat]]|![[Kleiner Rat|KorpKleinerRat]]|![[Konfetti|KorpKonfetti]]|![[Sänger|KorpSaenger]]| --- --- !''Die Minis'' [img[https://www.karnevalverein-frohsinn.de/mob/assets/images/mob-korp-toppic-minis-1000x429.jpg]] Wo die Kleinsten ganz groß sind 1987 wurde die Gruppe unter dem Namen “Mini-Majorettes“ gegründet. Ziel war den Tanznachwuchs des Vereins zu fördern. Die Kinder waren zwischen vier und zwölf Jahre alt und wurden betreut von Heike und Silke Bühler. Im Mai 1990 übernahm Elke Dietz die Ausbildung, ihr zur Seite standen Silke Bühler und Daniela Neuhäuser. Aufgrund des großen Altersunterschiedes entschied sich die Vereinsführung im Frühjahr 1996 die Gruppe zu teilen. Die jüngeren Mädchen zwischen 5 und 9 Jahren nannten sich von nun an „die Mini´s“. Mirjana Leibold und Christiane Eich zeigten sich bis zur Kampagne 2010 für die Tänze verantwortlich. Für die Betreuung der Gruppe konnte Petra Bingenheimer gewonnen werden. 2010 übernahmen Petra Ehegartner, Jeanine Hornung und Petra Sommer als Trainerteam die Ausbildung der "Mini's". Bis Kampagnenende 2019/2020 waren Alexandra Camus und Ana Veiga Gennert für die Ausbildung der Minis zuständig. Seit April 2020 gibt es ein neues Trainerteam; bestehend aus Carolin Unger, Lena Krostitz und Sabrina Talhofer. Die Betreuung der Gruppe liegt weiterhin bei Jenny Landefeld. Willkommen sind Jungen und Mädchen im Alter von 5 bis 10 Jahre. Seit Jahren erfreuen die Minis mit ihren Tänzen das närrische Publikum an den Prunksitzungen des Vereins. Immer wieder werden unsere Minis von befreundeten Vereinen für Auftritte eingeladen. Und vom Programm der Senioren- und Kinder-Mitmach-Sitzungen sind unsere kleinen Tänzerinnen und Tänzer nicht mehr weg zu denken.. Korporations-Seite (alt): https://www.karnevalverein-frohsinn.de/html/vf-korp-minis.html<br> <iframe src="https://www.karnevalverein-frohsinn.de/html/vf-korp-minis.html" frameborder="0" width="1040" height="250"></iframe><br> !FOTOGALERIE (alt) [img[https://www.karnevalverein-frohsinn.de/assets/images/korp-minis_toppic.jpg]] [img[2018|https://www.karnevalverein-frohsinn.de/assets/images/korp-minis_2018akt.jpg]] [img[2017|https://www.karnevalverein-frohsinn.de/assets/images/korp-minis_2017akt.jpg]] <br> <br> Die Minis auf der Kümmler Fastnacht in Neu-Isenburg 2015 (Fotos: Dirk Lange)<br> https://www.karnevalverein-frohsinn.de/assets/galerie/korporationen/korp_minis_2015_neuisenburg/index.html<br> <iframe src="http://www.karnevalverein-frohsinn.de/assets/galerie/korporationen/korp_minis_2015_neuisenburg/index.html" frameborder="0" width="600" height="500"></iframe><br> --- --- [[Nach oben...|KorpMinis]]
|[[Start]]|[[Der Frohsinn]]|[[Veranstaltungen]]|[[Bühnenaktive]]|[[Chronik]]| --- |[[Bühnenaktive]]|[[Vortragende]]|[[Korporationen]]| --- !KORPORATIONEN DES KV FROHSINN <iframe src="https://www.karnevalverein-frohsinn.de/mob/korporationen.html" frameborder="0" width="1040" height="250"></iframe><br> Link: https://www.karnevalverein-frohsinn.de/mob/korporationen.html |![[Ballett|KorpBallett]]|![[Tanzgarde|KorpTanzgarde]]|![[Minis|KorpMinis]]|![[Männerballett|KorpMaennerballett]]| |![[Brassband|KorpBrassband]]|![[Ehrengarde|KorpEhrengarde]]|![[11er-Rat|KorpElferrat]]|![[Kleiner Rat|KorpKleinerRat]]|![[Konfetti|KorpKonfetti]]|![[Sänger|KorpSaenger]]| Ehemalige Korporationen: (Am Ende dieser Seite)<br> Damenrat, Prinzengarde, Alter Kleiner Rat <br> --- |![[Ballett|KorpBallett]]| !''Frohsinn-Ballett'' Seit nunmehr 40 Jahren wird die Gruppe, die zur Zeit aus 16 Damen und 3 Männern besteht, von Peter Bohländer trainiert, der Jahr für Jahr atemberaubende Choreographien auf die Bühne zaubert. Großes Tanztheater wie “Magic Of Dancing”, “The Best Little Whorehouse in Texas” oder “Viva la Vida“ sowie bekannte Musicals wie "König der Löwen", "Wicked" und “Aladdin“ waren und sind ebenfalls absolute Highlights der Frohsinn-Veranstaltungen. Das Ballett präsentiert bei seinen Auftritten nicht nur allseits bekannte Klassiker. Es wird sich ebenfalls mit anderen Tanzarten auseinandergesetzt. Dabei werden unter anderem Ballett, Standard, Jazz, sowie latein-amerikanische Schrittkombinationen erlernt. Den Tänzern und deren Publikum wird jährlich ein neues aufregendes Spektakel geboten. Trotz der Vielzahl ihrer Proben zeigen die jungen Damen und Herren viel Engagement und sind begeistert bei der Sache. Der Erfolg gibt ihnen recht. Interessierte und begabte junge Menschen, männlich oder weiblich, die mindestens 16 Jahre alt sind, können sich gerne bei der Gruppe vorstellen. Übungsstunden: Jeden Dienstag ab 19:00 Uhr Vereinshaus Frohsinn Kontakt: Jessica Eich Handy: 0160 93468122 ballett@karnevalverein-frohsinn.de --- |![[Tanzgarde|KorpTanzgarde]]| !''Tanzgarde'' Im Jahre 1995 wurden die Dancing Girls ins Leben gerufen. Diese Korporation gründete sich aus den Mini - Majorettes, die in ihrer ursprünglichen Form von 1989 nicht mehr existierten. 12 Mädchen im Alter zwischen 10 und 14 Jahren waren in der Kampagne 1995/96 erstmalig an den großen Sitzungen des Vereins zu sehen. Trotz und gerade wegen großer Anstrengungen und knochenharter Trainingsarbeit, hatten die Dancing Girls im Laufe der vergangenen 4 Jahre viel Spaß und vor allem Erfolg. Im Jahr 2000 firmierte sich die Gruppe in „Tanzgarde“ des KV Frohsinn um und begeistert nun unter diesem Namen die Narren in der 5. Jahreszeit. Die Gruppe besteht aus Mädchen der Altersgruppe 11 bis 16 Jahren, schön wäre es auch, wenn sich Jungen, die Spaß am Gardetanz haben und dieser Altersgruppe angehören, melden würden. Trainiert wird von April bis Februar und neben ihren Auftritten an den Sitzungen, zählen die Teilnahme am Fastnachtsumzug in Oberursel, sowie Auftritte beim Rathaussturm und an Weihnachtsfeiern zum jährlichen Programm der Gruppe. Zum Intensivieren der aktuell einstudierten Tänze findet ein jährliches Trainingswochenende statt, welches auch der Geselligkeit zugute kommt und den Gruppenzusammenhalt fördert. Die Korporation Tanzgarde wird innerhalb der Vereinsstruktur als Sprungbrett für das Frohsinn Ballett gesehen. Übungsstunden: Donnerstag 17.30-19.00 Uhr Vereinshaus Frohsinn Kontakt: Tanja Bingenheimer Nadine Eich und Carolyn Wilkinson tanzgarde@karnevalverein-frohsinn.de --- |![[Minis|KorpMinis]]| !''Minis'' Wo die Kleinsten ganz groß sind 1987 wurde die Gruppe unter dem Namen “Mini-Majorettes“ gegründet. Ziel war den Tanznachwuchs des Vereins zu fördern. Die Kinder waren zwischen vier und zwölf Jahre alt und wurden betreut von Heike und Silke Bühler. Im Mai 1990 übernahm Elke Dietz die Ausbildung, ihr zur Seite standen Silke Bühler und Daniela Neuhäuser. Aufgrund des großen Altersunterschiedes entschied sich die Vereinsführung im Frühjahr 1996 die Gruppe zu teilen. Die jüngeren Mädchen zwischen 5 und 9 Jahren nannten sich von nun an „die Mini´s“. Mirjana Leibold und Christiane Eich zeigten sich bis zur Kampagne 2010 für die Tänze verantwortlich. Für die Betreuung der Gruppe konnte Petra Bingenheimer gewonnen werden. 2010 übernahmen Petra Ehegartner, Jeanine Hornung und Petra Sommer als Trainerteam die Ausbildung der „Mini's“. Bis Kampagnenende 2019/2020 waren Alexandra Camus und Ana Veiga Gennert für die Ausbildung der Minis zuständig. Seit April 2020 gibt es ein neues Trainerteam; bestehend aus Carolin Unger, Lena Krostitz und Sabrina Talhofer. Die Betreuung der Gruppe liegt weiterhin bei Jenny Landefeld. Willkommen sind Jungen und Mädchen im Alter von 5 bis 10 Jahre. Seit Jahren erfreuen die Minis mit ihren Tänzen das närrische Publikum an den Prunksitzungen des Vereins. Immer wieder werden unsere Minis von befreundeten Vereinen für Auftritte eingeladen. Und vom Programm der Senioren- und Kinder-Mitmach-Sitzungen sind unsere kleinen Tänzerinnen und Tänzer nicht mehr weg zu denken.. Übungsstunden: Dienstag 17:00 bis 18:30 Uhr Vereinshaus Frohsinn Kontakt: Jenny Landefeld Mobil: 0176-99172211 minis@karnevalverein-frohsinn.de --- !''Die Ambosse'' unser Männerballett und Talentschmiede vom Kleinen Rat einer Korporation des Karnevalverein Frohsinn Oberursel Schon seit 1979 bringen die begnadeten Tänzer jede Bühne nicht zum Einstürzen, aber definitiv zum Wackeln. Dank dem Regiment von wunderbaren Trainerinnen wurden die einstigen Rohdiamanten auf dem Amboss von Schlag zu Schlag zu Juwelen der Männertanzkunst. Egal ob Jung oder Alt, wer den Jungs zuschaut, bei dem bleibt kein Auge trocken und gute Stimmung ist garantiert. Training Mittwochs 20:00 Uhr Vereinshaus Frohsinn Kontakt: Steffen Gennert maennerballett@kleinerrat.de --- !''Brassband'' Die Brassband besteht seit nunmehr 60 Jahren und hat zurzeit 30 aktive Musiker. Für die Homogenität und die hervorragende Akzeptanz innerhalb der Korporation spricht u.a. der große Altersunterschied der einzelnen Musiker. Die Altersgrenze reicht vom jüngsten Mitglied mit 14 Jahren, bis zum ältesten Spielmann mit über 60 Jahren. Neben den vielen Auftritten in der Fassenacht, repräsentiert die Brassband den Verein pro Jahr bei über 30 Bühnen-, Stand und Marsch-Konzerten. Dabei wurden Auftritte u.a. in Österreich, Belgien, Frankreich und England absolviert. Das umfangreiche Repertoire beinhaltet Stücke von Glenn Miller über Schlager bis zu aktuellen Hits der heutigen Zeit. Die Brassband ist im Laufe der Jahre zum festen Bestandteil des kulturellen Lebens in Oberursel geworden und setzt durch ihre Musikalität immer wieder Glanzlichter. Für den Nachwuchs wurde 1995 eine Kinder-Schlagzeugergruppe gegründet. Die “Drumkids”. In dieser Formation werden die kleineren Kinder ab 7 Jahren an das gemeinsame Musizieren herangeführt, um später bei den “Großen” mitspielen zu können. Seit November 2007 gibt es bei der Korporation Brassband auch eine Jugend-Brassband für größere Kinder ab 10 Jahren. Die instrumentale Besetzung ist identisch mit der Besetzung der „großen“ Brassband. Kinder und Jugendliche, die Spaß an "selbst gemachter" Musik haben, sind herzlich eingeladen mitzumachen. Die Drumkids in der Kampagne 2013/14 Drumkids auf der Frohsinnbühne in der Stadthalle Oberursel Die Probetermine der “Drumkids” sind donnerstags von 18.30 Uhr bis 19.15 Uhr im Vereinshaus. Die Übungszeiten der Jugend-Brassband sind montags von 17.45 bis 19.30 Uhr, ebenfalls im Vereinshaus. Die Brassband probt hier dienstags und donnerstags jeweils von 20.00 Uhr bis 22.00 Uhr. Interessierte können sich zu den angegebenen Terminen gerne im Vereinshaus einfinden oder telefonisch mit dem Verantwortlichen Kontakt aufnehmen. Weiteres auf www.BrassbandFrohsinn.de Übungsstunden: Dienstag u. Donnerstag 20:00 bis 22:00 Uhr Jugendbrassband Montag 17:45-19:30 Donnerstag 18:00-19:30 Drumkids Donnerstag 18:30-19:15 Vereinshaus Frohsinn Kontakt: Korporationsführer: Marc Ladehoff Handy (0177) 42 52 569 Marc.Ladehoff@BrassbandFrohsinn.de --- !''Ehrengarde'' Eine Traditionsgarde für alle Fälle Die Ehrengarde ist seit fast 50 Jahren eine rührige Korporation im Karnevalverein Frohsinn. Sie wurde im Jahre 1957 gegründet und ist mit ihren Uniformträgern weit über die Stadtgrenzen hinaus bekannt. So besteht eine ihrer Aufgaben darin, den Großorscheler Karnevalsprinzen mit seinem Hofstaat auf all seinen Wegen und zu allen Terminen während der Kampagne zu begleiten. Selbstverständlich repräsentiert sie den Verein auch bei den Fassenachtsumzügen, und dass nicht nur in Oberursel, sondern auch in den Nachbarstädten Kronberg-Oberhöchstadt, Usingen und Eschborn. In der Kampagne 2006 / 2007 feiert die Ehrengarde ihr 50 Jähriges Jubiläum. Die Ehrengarde pflegt die Geselligkeit in Form von Ausflügen, Grillfesten und anderen Feierlichkeiten, wobei selbstverständlich die Familien integriert sind. Es gibt aber auch viel zu tun: Ob es um den Auf- und Abbau für die Sitzungen in der Stadthalle oder um das Brunnenfest geht, Bewirtungen im Vereinshaus oder andere Arbeiten. Mit der tatkräftigen Unterstützung der Männer der Ehrengarde immer zu rechnen. Junge Männer, die sich für die Aktivitäten der Ehrengarde interessieren, sind immer herzlich willkommen. Bedingung für den Beitritt ist allerdings die Bereitschaft, aktiv mitzumachen und auch die Uniform der Ehrengarde zu tragen. Kontakt: Sven Buhlmann ehrengarde@karnevalverein-frohsinn.de --- !''11'er Rat'' Die Salzsäulen der Orscheler Fassenacht Die Korporation 11‘er-Rat des KV-Frohsinns besteht aus Mitgliedern des Vereins welche sich dem Gedanken des Karnevals verschrieben haben und die Vereinsfarben und das Ansehen des Vereins nach Außen tragen und repräsentieren. Die Hauptaufgabe des 11‘er-Rates besteht in der aktiven Mitwirkung an den vom Verein veranstalteten Karnevalssitzungen und am Taunuskarnevalszug. Aktive Mitwirkung in Form der optischen Abrundung des jeweiligen Bühnenbildes der entsprechenden Sitzungen, - soll heißen dass jeweils 11 Mitglieder des 11‘er-Rates auf dem dafür vorgesehenem Podest die Sitzung begleiten und optisch abrunden. Hierbei ist ausdrücklich erwünscht, dass die entsprechenden Personen durch aktives Verhalten (immer im Rahmen der Maxime des Vereins KV-Frohsinn und der Interessengemeinschaft Mittelrheinischer Karneval 1946 e. V.) die gute Stimmung beim Publikum und auf der Bühne fördern. Eine weitere Hauptaufgabe des 11‘er-Rates liegt im Besuchen von anderen (befreundeten und neuen) Vereinen um den Karnevalverein-Frohsinn dort mit seinen Farben zu repräsentieren, sowie den Verein / Vorstand bei etwaigen Ehrungen und Jubilaren zu repräsentieren respektive zu vertreten. Um den Verein in seiner Gänze aufrecht zu erhalten veranstaltet der Verein über das Jahr verteilt einige Events oder nimmt an solchen teil. Im Zuge dieser Events fallen immer wieder Arbeitsdienste an die in gleichen Maßen auf die einzelnen Korporationen verteilt werden. Es ist wünschenswert, sich aktiv an diesen Arbeitsdiensten zu beteiligen, da Diese zum Wohle des Vereins sind. Die Korporation des 11’er-Rats besteht traditionell aus männlichen Mitgliedern. Um Mitglied im 11’er-Rat zu werden muss eine der beiden folgenden Voraussetzungen erfüllt werden: Es gibt einen personellen Vorschlag aus den Reihen des 11’er-Rates, die entsprechende Person stellt sich den Mitgliedern vor und es erfolgt eine EINSTIMMIGE Abstimmung zu Gunsten des Anwärters. Der Vorstand bittet um die Aufnahme eines langjährigen verdienten Mitgliedes aus einer anderen Korporation. Um die Symbolik und den Sinn des Karnevals mit seiner Narretei auch klar darzustellen ist die Schreibweise des 11’er-Rates auch immer in einer Zahl darzustellen und nicht in einem Wort. Der Ursprung hierfür liegt in der Erklärung, dass in der Zeit der Hofnarren (Ursprung der Narren-Schaft) diese es wie folgt definierten: Ein Narr steht einem Adligen gleichgestellt gegenüber, also 1 Narr wie 1 Adliger. 1 = 1 daraus folgt die 11. Die Korporationsführung liegt in den Händen von Klaus Müller Die Korporation trifft sich ganzjährig jeden 1. Mittwoch im Monat zu einem Stammtisch zwecks Gedankenaustausches und Planung der anstehenden Events im Restaurant Zum Schwanen ab 19:30 Uhr. Kontakt: Klaus Müller Tel.: 06172-962930 elferrat@karnevalverein-frohsinn.de --- !''Kleiner Rat'' .. denn Fastnacht geht auch anders Dieses Motto zieht sich wie ein roter Faden durch die Geschichte und das Leben des „KR“ – wie er in Kurzform genannt wird. Gegründet 1974 und damals (heute unglaublich) schon revolutionär: Frauen waren als gleichberechtige Mitglieder nicht nur erlaubt, sondern herzlich willkommen. Anfänglich und im Jugendrausch noch viel mit sich selbst beschäftigt, nahm die „Story of KR“ im Jahr 1979 richtig Fahrt auf. Noch bevor in Köln die Stunksitzung erfunden wurde, startete der KR mit seiner legendären „KR-Sitzung“: Kleinkunst, Sketche, Musik&Gesang, Klamauk&Karrikatur, Tanz&Ballett – auch mit Männern. Alles eingebettet in ein gemütliches Ambiente und am Ende ein fulminantes Finale mit „Viva Ursella“. Wir brauchen keinen 11er Rat und keine Blechorden, dafür gibt’s 'ne freche Moderation und Bierdeckelorden. Alternativer Karneval in seiner Bestform, der mittlerweile schon Kultstatus hat – aber immer noch familiär und waschecht. Ein weiterer Höhepunkt für den KR ist die Teilnahme am Taunuskarnevalszug. Von Anfang an karikierte der KR die große und die kleine Politik, griff Missstände “im Städtchen” auf und gab -nicht immer ganz ernst gemeinte- Tipps was man in Orschel besser machen könnte. Wann immer „der Zug“ lief, der KR war dabei und sammelte so manchen Preis der “Scharfrichter“. Aber das ist nicht alles. Der KR ist nicht nur im Karneval aktiv, sondern wirkt auch bei vielen Oberurseler (Vereins-) Veranstaltungen mit, z.B. Halloween, Autos in der Allee. Wenn am Aschermittwoch “alles vorbei ist”, beginnt beim KR keinesfalls der “Kampagnenschlaf” - die unruhigen Geister schlafen nicht: Ordensfest – mit original und individuell gestalteten Bierdeckelorden -, Sommerfest, Ausflugsfahrten und vieles mehr runden das Jahr ab. Der KR freut sich immer über neue Mitstreiter – meldet Euch bei Interesse doch einfach bei den unten aufgeführten Mitgliedern. Ihr seid herzlich willkommen. Alles weitere auf unserer Hompage www.kleinerrat.de Kontakt: Sabine Kinkel info@kleinerrat.de --- !''Konfetti'' Eine ursprünglich, einmalige Sache…… Am 08.04.1990 wurde die Korporation Konfetti aus der Taufe gehoben und realisiert seit diesem Zeitpunkt das Sitzungsfinale. Durch einen Vorstandsbeschluss im Jahre 1987, der die Neugestaltung des Finales beinhaltete, wurden einige junge Vereinsmitglieder beauftragt, diesen Beschluss umzusetzen. Der Erfolg ihres ersten Finales, ermöglichte den “jungen Wilden”, federführend sind an dieser Stelle Stephan Remes, Raimond Dorsch und Petra Sommer zu nennen, eine weitere Gestaltung ihrer kreativen Ideen im Folgejahr. Aufgrund dieser Erfolge erlangten sie Aufmerksamkeit und Anerkennung. Somit war der Weg frei für die Gründung einer eigenständigen Korporation. Darüber hinaus wurde im Jahr darauf ein großes Sommerfest auf dem Vereinsgelände organisiert. Nach 8 Jahren Konfetti und 10 Jahren Finale veränderte sich das Aufgabenspektrum der Korporation. Einige Jahre wurden die Gäste an unseren Sitzungen durch Mitglieder im Foyer begrüßt und persönlich an die Tische gebracht, später kam dann auch das Angebot eines Erinnerungsfotos hinzu, welches die Gäste bereits in der Pause aussuchen und kaufen konnten. Das Finale der Sitzungen wurde zwischenzeitlich wieder mit allen Aktiven des Vereins geplant und einstudiert, Mitglieder der Korporation haben aber auch heute noch die Möglichkeit, sich hier aktiv einzubringen. Heute, über 30 Jahre nach der Gründung der Korporation kann sich jeder bei Konfetti einbringen, der: Spaß an der Organisation einer Tombola hat, sich aktiv für die Brauchtumspflege unserer Jüngsten einsetzen will und bei der jährlich stattfinden Kindermitmachsitzung am Fastnachtsamstag mitgestalten möchte, wenn es um Dekorationsarbeiten geht einen kreativen Kopf hat und/oder handwerklich begabt ist, am Taunuskarnevalzug Teil einer großartigen Fußgruppe sein möchte oder einfach sich einfach nur regelmäßig gerne in geselliger Runde treffen möchte. Haben wir dein Interesse geweckt? Über 30 Konfettis würden sich auf neue Mitglieder sehr freuen. Kontakt: Dani Neuhäuser Telefon (0 61 71) 5 24 08 Ute Krostitz Tel. 0176-11555742 konfetti@karnevalverein-frohsinn.de --- !''Frohsinn Sänger'' Stimmgewaltige Männerpower auf der Bühne Im Jahre 1957 wurden die Frohsinn-Sänger aufgrund einer Initiative von Heinz Ohl und Friedel Fischer ins Leben gerufen. Diese beiden “Frohsinnler” wünschten sich eine stimmstarke Gesangsgruppe innerhalb des Vereins und sprachen damals den allseits geschätzten Musikdirektor und Chorleiter Hellmut Alexander Keller an. Herr Keller versprach eine Gesangsgruppe auszubilden, falls es ihnen gelänge, innerhalb von nur vier Tagen eine Truppe von mindestens 20 Sänger zusammen zu bringen. Die Herren Ohl und Fischer schafften es. Und somit fand im Jahre 1957 die erste Sängerprobe, der neu ins Leben gerufenen Frohsinn-Sänger statt. Ronald Fries, Jahrgang 1961, der heutige musikalische Leiter, wohnhaft in Offenbach-Bieber, ist ausgebildeter Diplom-Kapellmeister und diplomierter Pianist. Er erwarb sich bis heute einen hervorragenden Ruf als Interpret von klassischen Werken. Gerade als an Jahren noch recht junger musikalischer Leiter, garantiert seine schon sehr professionelle Einstellung seine ausgezeichnete Musikalität seit Jahren den Frohsinn-Sängern höchste Qualität im Chorsatz. Seine Handschrift ist von Beginn an unverkennbar und hat maßgeblichen Anteil am steten Erfolg der Gruppe während der letzten Jahre. In enger Zusammenarbeit mit dem Chorleiter wurden bisher und werden auch in diesem Jahr Themen und Melodien ausgesucht und zu einem anspruchsvollen Programmablauf zusammengeführt. Zu diesen Abläufen werden von der Gruppe Figuren, Kostüme, Requisiten und Showelemente erdacht, die Jahr für Jahr einen “Frohsinn-Sänger-typischen” Gesamtauftritt darstellen sollen. Eine Kampagne wird bei den Frohsinn-Sängern im Sommer geplant. Wenn andere Menschen sich noch in einem Schwimmbad räkeln, sitzen ein paar “Fassenachtsverrückte” zusammen und machen sich Gedanken, wie man im kommenden Januar oder Februar andere Leute zum Lachen und zum Nachdenken bringen kann. In der Regel reichen zwei bis drei Treffen aus, um einem neuen Programm die Richtschnur zu verpassen. Das heißt, die Programmverantwortlichen tragen Melodien und Themen zusammen, die entweder besonders aktuell oder aufgrund der ursprünglichen Aussage des Originals besonders passend sind, um ein Thema entsprechend umsetzen und darstellen zu können. Die Schwierigkeit besteht Jahr für Jahr darin, neue Melodien zu finden, die man nicht in den Jahren zuvor schon einmal verarbeitet hat. In 44 Jahren Chorgesang war und ist dies nicht immer einfach gewesen. Nachdem ein Gerüst an Themen und Melodien gefunden wurden, werden einzelne Stücke ausgearbeitet. Originalmelodien werden nach und nach und Silbe für Silbe mit einem Thema aus Sport, Politik und Weltgeschehen neu getextet. In der Regel ist ein Programm bis Ende November thematisch abgeschlossen, es sei denn, besondere aktuelle Geschehnisse ereignen sich, die nicht vernachlässigt werden dürfen. Danach beginnt die Ausarbeitung der Show, Kostüme und Requisiten und Bewegungen werden ausgedacht, besprochen und einstudiert. Aufgaben werden verteilt und Termine werden abgesprochen, damit die “Frohsinn-Sänger-Show” hundertprozentig auf der Bühne funktioniert. Nichts wird dem Zufall überlassen. Selbst die kleinste Kleinigkeit wird manchmal heftigst diskutiert. Doch die Erfahrung von 44 Jahren Bühnenspiel erweist sich immer wieder hilfreich. Aber aller Erfahrung zum Trotz, das Publikum ist die Meßlatte und gleichzeitig die Jury und erst dann kann man sagen, man lag diesmal wieder richtig. So war es immer und so wird es auch wieder in dieser Kampagne sein. Übungsstunden: (ab September) Jeden Mittwoch ab 20:00 Uhr Vereinshaus Frohsinn Stammtisch: (Aschermittwoch bis August) Jeden ersten Freitag im Monat ab 20 Uhr "Zum Adler" Kontakt: Dr. Michael Weber Tel. 06172-21802 saenger@karnevalverein-frohsinn.de <br><br><br><br> --- !''Ehemalige Korporationen'' --- !''Damenrat'' Am 10. Dezember 1947 trafen sich 20 Frauen im Wohnzimmer von Karl Affemann, und in geselliger Runde wurde der “Rat mit 20 Damen” gegründet. Was damals als normal galt, wäre heute undenkbar, war doch Frauen die Mitgliedschaft im Karnevalverein Frohsinn nicht erlaubt. Erst in den 70er Jahren wurde dieser Paragraph geändert und auch Frauen konnten Mitglied werden. Seit dieser Zeit, sind die Damen vom “Damenrat” unentbehrlich. Egal wo ihre Hilfe und Engagement benötigt wird, bei den Großen Sitzungen als Vortragende oder im Servicebereich beim Brunnenfest, stets sind sie mit Freude dabei. Die größte Freude lebt der Damenrat alljährlich an Fassenacht aus, wenn es gilt, eine Gruppe im Fassenachtszug zu stellen. Auch die Geselligkeit wird in dieser Korporation groß geschrieben. Im Abstand von 14 Tagen trifft man sich in der Stadthalle zum Kegeln, und einmal im Jahr unternimmt man eine Wochenendfahrt zum Spaßhaben und Auftanken. Gute Laune war beim Damenrat immer angesagt. Ansprechpartner: Heidemarie Kunz --- !''Prinzengarde'' 1928 stellten sich mutige Männer “dem Kampf gegen den Ernst und die Antinarretei” Zu diesem Zweck gründete sich die Prinzengarde. Mit einem Startkapital von 45,84 Reichsmark wurden damals 11 Gardisten mit “schickem Rock für Feste und Züge” eingekleidet. Die heutige Prinzengarde hat im Laufe eines Jahres verschiedenste Tätigkeitsbereiche. So gehören die Teilnahme an Faschingszügen und die Begleitung des Prinzen genauso zu ihren Aufgaben, wie auch Auf- und Abbauten bei diversen Veranstaltungen. Alleine am Oberurseler Brunnenfest bewegt die Truppe nicht weniger als 5 Tonnen Material in zwei LKWs. Auch an den großen Sitzungen in der Stadthalle sorgt die Prinzengarde für den Transport sowie für den Auf- und Abbau des Bühnenbildes und allen Dekorationen und Requisiten. 1998 baute die Korporation, anlässlich ihres 70. Jubiläums, eine Kanone. Seitdem unterstützt “Emma 33” die Garde bei allen Zügen und gibt darüber hinaus befreundeten Vereinen genügend Anlass, die Gruppe immer wieder einzuladen. Nach über 70 Jahren Prinzengarde ist natürlich in dieser Truppe ein “Rentenknick” festzustellen. Deshalb sucht man auch hier nach geeignetem Nachwuchs. Frei nach dem Motto: “Junge Männer und Neu-Fassenachter zur Garde”, möchten die Verantwortlichen ihre Korporation uneingeschränkt einsatzfähig halten. Ansprechpartner:<br> Joachim Würz “Kommandant”<br> Markus Reinheimer “Vize-Kommandant”<br> [img[./data-hp-old/korp-prinzengarde_files/prinzengarde2001.jpg]] [img[./data-hp-old/korp-prinzengarde_files/prinzengarde_orden.jpg]] [img[./data-hp-old/korp-prinzengarde_files/prinzengarde2001s.jpg]] <br><br> --- !''Ex-Prinzen'' !''Kleiner Rat vor 1974'' --- --- [[Nach oben...|Korporationen]]
!KORPORATIONEN DES KV FROHSINN |![[Korporationen]]| |![[Ballett|KorpBallett]]|![[Tanzgarde|KorpTanzgarde]]|![[Minis|KorpMinis]]|![[Männerballett|KorpMaennerballett]]| |![[Brassband|KorpBrassband]]|![[Ehrengarde|KorpEhrengarde]]|![[11er-Rat|KorpElferrat]]|![[Kleiner Rat|KorpKleinerRat]]|![[Konfetti|KorpKonfetti]]|![[Sänger|KorpSaenger]]| --- --- !''Tanzgarde'' [img[https://www.karnevalverein-frohsinn.de/mob/assets/images/mob-korp-toppic-tanzgarde-1000x429.jpg]] Im Jahre 1995 wurden die Dancing Girls ins Leben gerufen. Diese Korporation gründete sich aus den Mini - Majorettes, die in ihrer ursprünglichen Form von 1989 nicht mehr existierten. 12 Mädchen im Alter zwischen 10 und 14 Jahren waren in der Kampagne 1995/96 erstmalig an den großen Sitzungen des Vereins zu sehen. Trotz und gerade wegen großer Anstrengungen und knochenharter Trainingsarbeit, hatten die Dancing Girls im Laufe der vergangenen 4 Jahre viel Spaß und vor allem Erfolg. Im Jahr 2000 firmierte sich die Gruppe in „Tanzgarde“ des KV Frohsinn um und begeistert nun unter diesem Namen die Narren in der 5. Jahreszeit. Die Gruppe besteht aus Mädchen der Altersgruppe 11 bis 16 Jahren, schön wäre es auch, wenn sich Jungen, die Spaß am Gardetanz haben und dieser Altersgruppe angehören, melden würden. Trainiert wird von April bis Februar und neben ihren Auftritten an den Sitzungen, zählen die Teilnahme am Fastnachtsumzug in Oberursel, sowie Auftritte beim Rathaussturm und an Weihnachtsfeiern zum jährlichen Programm der Gruppe. Zum Intensivieren der aktuell einstudierten Tänze findet ein jährliches Trainingswochenende statt, welches auch der Geselligkeit zugute kommt und den Gruppenzusammenhalt fördert. Die Korporation Tanzgarde wird innerhalb der Vereinsstruktur als Sprungbrett für das Frohsinn Ballett gesehen. <iframe src="https://www.karnevalverein-frohsinn.de/html/vf-korp-tanzgarde.html" frameborder="0" width="1040" height="250"></iframe><br> Korporations-Seite (alt): https://www.karnevalverein-frohsinn.de/html/vf-korp-tanzgarde.html !FOTOGALERIE (Alt) [img[2018|https://www.karnevalverein-frohsinn.de/assets/images/korp-tanzgarde_pic2.jpg]] [img[2017|https://www.karnevalverein-frohsinn.de/assets/images/korp-tanzgarde_toppic.jpg]] [img[2014|https://www.karnevalverein-frohsinn.de/assets/galerie/korporationen/korp-tanzgarde_2014.jpg]] [img[2013|https://www.karnevalverein-frohsinn.de/assets/galerie/korporationen/korp-tanzgarde_2013.jpg]] [img[2012|https://www.karnevalverein-frohsinn.de/assets/galerie/korporationen/korp-tanzgarde_2012.jpg]] [img[2011|https://www.karnevalverein-frohsinn.de/assets/galerie/korporationen/korp-tanzgarde_2011.jpg]] [img[2010|https://www.karnevalverein-frohsinn.de/assets/galerie/korporationen/korp-tanzgarde_2010.jpg]] [img[2009|https://www.karnevalverein-frohsinn.de/assets/galerie/korporationen/korp-tanzgarde_2009.jpg]] [img[2008|https://www.karnevalverein-frohsinn.de/assets/galerie/korporationen/korp-tanzgarde_2008.jpg]] --- --- [[Nach oben...|KorpTanzgarde]]
<iframe width="560" height="315" src="https://www.youtube.com/embed/xubxoSVYJx4" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe> <iframe width="560" height="315" src="https://www.youtube.com/embed/YUschQrOCOo" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe> --- !1936 | Karneval in Oberursel |[[ Oberurseler Fastnacht 1936 bis 1980 |https://youtu.be/R6STmIYx5sk]]| H.Decher | !1967 | Karnevalszug |[[ 1967 Faschings Umzug in Oberursel |https://youtu.be/SWuOR4DrLK0]]| Harro Junk | !2008 | Brassband |[[ BrassBand Oberursel Umzug Oberursel 2008 |https://youtu.be/XNMYMwmWF0g]]| | !2010 | Brassband |[[ Brassband Beach Boys (Hessentag 2010 Stadtallendorf) |https://youtu.be/wcimm638IYU]]| | | Brassband |[[ JailHouseRock (GP Wiesbaden 2010) |https://youtu.be/iCBdG4Spsm4]]| | | Brassband |[[ Sixties (Hessentag 2010 Stadtallendorf) |https://youtu.be/cvyZTMJ3fRQ]]| | | Brassband |[[ Brassband Frohsinn Oberursel - Star Wars (GP Wiesbaden 2010) |https://youtu.be/Q8c1K9sWyPE]]| | | Karnevalszug |[[ Karnevalsumzug in Oberursel Ts. Teil. 1 |https://youtu.be/rYUCNNGH9vg]]| meli1641 | | Karnevalszug |[[ Karnevalsumzug in Oberursel Ts. Teil. 3 |https://youtu.be/gizkn_HpxY8]]| meli1641 | | Karnevalszug |[[ Karnevalsumzug in Oberursel Ts. Teil.2 |https://youtu.be/0yvBj7aWRyc]]| meli1641 | !2011 | Brassbaband |[[ Hessentag 2011 Festzug (ab 10:40min) |https://youtu.be/UePCA7zs8V8]]| Christoph Müllerleile | | Brassband |[[ Let me entertain you (Robbie Williams) |https://youtu.be/D3_w7dOpvM8]]| | | Karnevalszug |[[ Karneval 2011 |https://youtu.be/4M_7ol5BM3Y]]| weisserhund1 | | Kleiner Rat |[[ Frau Guntersblum & Frau Schwanheim |https://youtu.be/eery34tyAOg]]| frytrix112 | | Rathaussturm |[[ Rathaussturm Oberursel 2011 |https://youtu.be/5hDeCxC5vAM]]| Christoph Müllerleile | | Verein |[[ Karnevalverein Frohsinn 2011 |https://youtu.be/pxAFjHKDXMU]]| orschel1890 | !2012 | Brassband |[[ Musik im Skipper Kerb 2012 |https://youtu.be/GDlXxFj7A6Y]]| | | Karnevalszug |[[ Oberursel |https://youtu.be/OXHBQ59Ieq4]]| Marko Persic | | Karnevalszug |[[ Taunus - Karnevalszug 2012 |https://youtu.be/NJaeUEBq5_Q]]| Oberursel Impressionen | | Karnevalszug |[[ Taunus-Karnevalszug 2012 |https://youtu.be/DYh98ENxXm4]]| Christoph Müllerleile | | Karnevalszug |[[ Taunus-Karnevalszug 2012 |https://youtu.be/INOfykI8Jc0]]| Christoph Müllerleile | | Karnevalszug |[[ Taunus-Karnevalszug 2012 |https://youtu.be/jLXsJPf5DII]]| Christoph Müllerleile | | Minis |[[ Sitzung-2012-Minis |https://youtu.be/TQsGw1554zM]]| | !2013 | Karnevalszug |[[ Oberursel Taunus Karnevalszug 2013 |https://youtu.be/HUMX2E5-E9E]]| norbert0705 | | Kleiner Rat |[[ Make-Up-Taktik Tini a.d.FrohsinnBühne |https://youtu.be/gak7LQFV7B8]]| Berthold Schinke | | Männerballett |[[ Männerballett Oberursel 2013 |https://youtu.be/bQugZqngn7w]]| | | Männerballett |[[ Sitzung-2013-Männerballett |https://www.youtube.com/watch?v=bQugZqngn7w]]| | | Person Karlheinz Barth |[[ Sabine wird Exprinzessin |https://youtu.be/N1HmyPe4n7o]]| | !2014 | Ausruf der Fastnacht |[[ 2014-Ausruf-der-Fastnacht.flv |https://youtu.be/u3GBpnJ__og]]| orschelweb | | Brassband |[[ Brassband beim Laternenfest in Büdesheim 2014 |https://youtu.be/QXRPfebKWgs]]| | | Brassband |[[ Cold Water Challenge 2014 |https://youtu.be/Ai3jGIVuY0c]]| | | Karnevalszug |[[ 2014 kvf karnevalszug |https://youtu.be/zWO8HxDsFtA]]| orschelweb | | Karnevalszug |[[ Karneval in Oberursel |https://youtu.be/ItSeHiNr_yU]]| Pablo Fernandez | | Karnevalszug |[[ Oberursel Taunus Karnevalszug 2014 |https://youtu.be/EaUPOsHQtqo]]| norbert0705 | | Verein |[[ Ausrufung der Fastnacht 2014 |https://www.youtube.com/embed/u3GBpnJ__og]]| 2011/11 | !2015 | Brassband |[[ 125 Jahre Karnevalverein Frohsinn - Die Brassband tritt auf |https://youtu.be/4nl62kV1FVo]]| | | Brassband |[[ Brassband Frohsinn & MuShoBa in Büdesheim 2015 |https://youtu.be/E3g0Dhc4jp4]]| | | Brassband |[[ Brassband Frohsinn & MuShoBa in Büdesheim 2016 |https://youtu.be/ROyDfkC4cww]]| | | Brassband |[[ Brassband Frohsinn & MuShoBa in Büdesheim 2017 |https://youtu.be/ptCVcROljvY]]| | | Karnevalszug |[[ 2015 kvf karnevalszug |https://youtu.be/Ns2YwdvPOwA]]| orschelweb | | Karnevalszug |[[ Karneval Parade |https://youtu.be/0laA6KeVea8]]| Benjamin Poore | | Karnevalszug |[[ Oberursel Taunus Karnevalszug 2015 |https://youtu.be/P2Vj-Y9gFko]]| | | Karnevalszug |[[ Zug 2015 |https://www.karnevalverein-frohsinn.de/html/vf-galerie-2015zug.html]]| error | | Prinz |[[ Oberurseler Karnevalsprinz Jürgen I. singt |https://youtu.be/r4PIwKrmLOo]]| Christoph Müllerleile | !2016 | Karnevalszug |[[ Umzug Orschel |https://youtu.be/s2cFgcu66jU]]| Markus Wissel | | Kleiner Rat |[[ Die Nachteulen -- Ich tanz den Spatz |https://youtu.be/EQURE_0ZcxM]]| Berthold Schinke | | Kleiner Rat |[[ Die Nachteulen -- Net schon wieder Fassnacht |https://youtu.be/zfAF-V_jo40]]| Berthold Schinke | | Kleiner Rat |[[ Die Nachteulen -- So geht gute Laune |https://youtu.be/-0t9U03txPE]]| Berthold Schinke | | Minis |[[ Sitzung-2016-Minis |https://www.youtube.com/watch?v=IP-KCFbAVdc]]| | !2017 | Ballett |[[ Ballett Sitzung 2017 |http://www.breitbartfotografie.de/aladdin.mp4]]| | | Brassband |[[ Taunuskerb Oberursel 2017 |https://youtu.be/CMY_UmcsI_8]]| | | Brassband |[[ Kreismusikfest 2017 in Königstein |https://youtu.be/I65PsraICMw]]| Ralf Hofmann | | Karnevalszug |[[ Taunus-Karnevalszug 2017 KV-Frohsinn |https://youtu.be/4O41bztU048]]| orschel1890 | !2018 | Ausruf der Fastnacht |[[ Ausrufung der Fastnacht 2018 |https://youtu.be/aVAlCEHaQlU]]| orschel1890 | | Ballett |[[ Ballett Rosa Wölkchen 2018 |https://youtu.be/qmNcKTL-5iE]]| | | Brassband |[[ Brassband des KV Frohsinn (live @ Sommernachtsfest Bad Soden |https://youtu.be/50I877u9mEk]]| | | div. |[[ Kellner Wettstreit 2018 Oberurseler Brunnenfest |https://youtu.be/icHcov4lAF8]]| | | Männerballett / Kleiner Rat |[[ Oberursel Kleiner Rat Männerballett |https://youtu.be/PyrqUYEA3D0]]| KR-Sitzung 2018 | | Sänger / Kleiner Rat |[[ Oberursel Frohsinn-Sänger beim Kleinen Rat - David Görge |https://youtu.be/A3pKK2rAO-s]]| Christoph Müllerleile | | Sänger / Kleiner Rat |[[ Oberursel Frohsinn-Sänger beim Kleinen Rat - Lukas Fries |https://youtu.be/oYzB9FSD_Q4]]| Christoph Müllerleile | | Sänger / Kleiner Rat |[[ Oberursel Frohsinn-Sänger beim Kleinen Rat - Norman Dießner |https://youtu.be/zFz_gf2slq0]]| Christoph Müllerleile | !2019 | Ballett |[[ Ballett Rosa Wölkchen 2019 |https://youtu.be/xubxoSVYJx4]]| HR Fernsehen | | Brassband |[[ Brassband des KV Frohsinn - Büdesheimer Laternenfest 2019 |https://youtu.be/wqFsD8Q-3Pk]]| Ralf Hofmann | | Brassband |[[ Büdesheimer Laternenfest 2019 Platzkonzert |https://youtu.be/OWCqZ6J9Q90]]| Ralf Hofmann | | Brassband |[[ Jugend-Brassband und DrumKids vom KV Frohsinn Oberursel |https://youtu.be/BM7RMCp3F7o]]| | | Brassband |[[ Jugend-Brassband und DrumKids vom KV Frohsinn Oberursel |https://youtu.be/P2M7ZSQ9c2A]]| | | Brassband |[[ Jugend-Brassband und DrumKids vom KV Frohsinn Oberursel |https://youtu.be/WboS3S3gxlo]]| | | Karnevalszug |[[ Karnevals Zug 2019 |https://fb.watch/9nwUwNGcBl/]]| KV Frohsinn | | Karnevalszug |[[ Zug 2019 |https://www.karnevalverein-frohsinn.de/assets/multimedia/2019-karnevalszug-frohsinn.mp4]]| 2011/11 | | Kleiner Rat |[[ Kleiner Rat 2019 ~Wett-Café "Saure Sahne" |https://youtu.be/RLVKxgb8Enc]]| Christoph Müllerleile | | Kleiner Rat |[[ Kleiner Rat 2019 Orscheler Dialektschule" |https://youtu.be/p4XXBQsMGPo]]| Christoph Müllerleile | | Prinz |[[ exprinzen2019 |https://youtu.be/QiMooTwgccw]]| orschel1890 | | Rathaussturm |[[ Abmarsch zum Rathaussturm in Oberursel am 23 02 2019 |https://youtu.be/-R_N-HJC--U]]| H.Decher | !2020 | Ballett |[[ Ballett Rosa Wölkchen 2020 |https://youtu.be/YUschQrOCOo]]| HR Fernsehen | | Brassband |[[ Die Jugendbrassband beim Rathausturm 2020 in Oberursel |https://youtu.be/GkfHVgCY_8w]]| Alex Alt | | Brassband |[[ Die Jugendbrassband beim Rathausturm 2020 in Oberursel |https://youtu.be/Qr3JB26FOIc]]| Alex Alt | | Männerballett / Verein |[[ 2020 KVF BF1 |https://youtu.be/vrfv6pOonk4]]| orschel1890 | | Verein |[[ 11.11.20 Stephan Remes |https://fb.watch/9nx3ZhVMPi]]| KV Frohsinn | | Verein |[[ Karneval 11.11.2020 |https://youtu.be/JCciVVZ4vjA]]| orschel1890 | !2021 !2022 | Verein |[[ Die Fassenacht lebt |https://youtu.be/dBZg6b3hvy0]]| orschel1890 | --- ---
! LAYOUT - Archiv |![[Archiv]]||!Informatives |[[Pressearchiv]]|[[Vereinsfahne]]|[[Prinzen|Tollitäten]]|[[Orden]]|[[Vorstand]]|[[Satzung]]|[[Publikationen]]| | [[Der Frohsinn]] | --- --- --- --- [[Nach oben...|Seitennamen]] --- --- |[[Der Frohsinn]]|[[Veranstaltungen]]|[[Bühnenaktive]]|[[Chronik]]| --- |[[Der Frohsinn]]|[[Vorstand]]|[[Senatoren]]|[[Ausschüsse]]|[[Downloads]]|[[Satzung]]|[[Sponsoren]]|[[Partner]]|[[Kontakt]]| --- --- |[[Der Frohsinn]]|[[Vorstand]]|[[Senatoren]]|[[Ausschüsse]]|[[Downloads]]|[[Satzung]]|[[Sponsoren]]|[[Partner]]|[[Kontakt]]| --- |[[Der Frohsinn]]|[[Veranstaltungen]]|[[Bühnenaktive]]|[[Chronik]]| (c) 2021 by R.G. !Layout Chronik |[[Der Frohsinn]]|[[Veranstaltungen]]|[[Bühnenaktive]]|[[Chronik]]| |[[Chronik-Übersicht]]| --- --- |[[Chronik-Übersicht]]| |[[Chronik]]|[[Prunk-Sitzungen]]|[[Aktiven-Orden]]|[[Orscheler Karnevalsschlager]]| |[[Präsidenten & Vorstand]]|[[Fastnachtszüge]]|[[Vereins-Fahne]]|[[Fassenachts-Brunnen ]]| |[[Sitzungspräsidenten]]|[[Ohlenspiegel]]|[[Publikationen]]|[[Fassenacht]]| |[[Personen]]|[[Tollitäten]]|[[Vereinshaus]]|[[Oberursel]]| --- |[[Der Frohsinn]]|[[Veranstaltungen]]|[[Bühnenaktive]]|[[Chronik]]| (c) 2021 by R.G. <br> <br> --- !Layout Presse |[[Der Frohsinn]]|[[Veranstaltungen]]|[[Bühnenaktive]]|[[Chronik]]| --- |[[Presse 2010/11]]|[[Kampagne 2011/12]]|[[Presse 2012/13]]| --- !Pressemeldungen 2011/12 |Homepage-Presseseite|https://www.karnevalverein-frohsinn.de/html/vf-akt-presse2011-12.html| --- __ab hier noch zu bearbeiten:__ <br><br><br> [[Nach oben...|Presse 2011/12]] --- |[[Presse 2010/11]]|[[Kampagne 2011/12]]|[[Presse 2012/13]]| --- |[[Der Frohsinn]]|[[Veranstaltungen]]|[[Bühnenaktive]]|[[Chronik]]| (c) 2021 by R.G. Status: i.A. --- !ONLINE Infos https://tiddlywiki.com/languages/de-DE/index.html#WikiText --- !Formartierung ect.<br> Andere Wikiseite: http://bc.etkbooks.com/opac/ http://tiddlywiki.org/wiki/Main_Page |!<<slider chkSliderBriefePlot Vorstand "Plot 'Vorstand'">>||!<<slider chkSliderBriefePlot Chronik "Plot 'Chronik'">>| !Schnell Übersicht TiddlyWiki Syntax-Schnellfinder WikiWort ~KeinWikiWort [[erzwungenes Wiki Wort]] !Überschrift ''fetter Text''<br> ==durchgestrichen==<br> __unterstrichen__<br> //kursiv//<br> {{{Code}}}<br> 2^^3^^ = 8<br> a~~ij~~ = -a~~ji~~<br> @@hervorgehoben@@<br> @@color(red):rote Schrift@@<br> [[belieb. Text|WikiWort oder URL]]<br> [img[Bildbenennung|./data_pic/logo_frohsinn_chronik.jpg]]<br> [[Link auf eine Datei|./data_pic/logo_frohsinn_chronik.jpg]] waagerechte Linie:<br> --- *<br> ** nicht nummerierte Liste<br> #<br> ## nummerierte Liste<br> > Ebene 1<br> >> Ebene 2<br> |!Spalte 1|!Spalte 2|<br> |Zelle<br>
|[[Fastnacht von A-Z]]| !Links zum Thema Karneval !!__''Portale''__ http://www.karnevaldeutschland.de/<br> http://www.narrenwiki.de<br> http://de.wikipedia.org/wiki/Portal:Karneval<br> http://www.fastnacht-info.de/<br> http://www.karneval-vereine.de/<br> http://www.swr.de/fastnacht/<br> http://www.carnevalo.de/ !!__''Karneval in...''__ |Köln:|http://www.koelnerkarneval1.de|http://www.karneval.de| |Mainz:|http://www.mainzer-fastnacht.de| |Frankfurt:|http://www.grosser-rat.de|
--- __05.08.22 eMail von Ulfert__<br> Hallo Rainer, ich hoffe es geht Dir gut. Kannst Du bitte so gut sein und zwei zusätzliche E-Mail Adressen einrichten. vermietung@karnevalverein-frohsinn.de Bitte diese an Jens und mich weiterleiten. Da die Adresse auch die Moni beantworten soll, bräuchte ich dann auch hierfür die Zugangsdaten mit dem Passwort zum Anmelden. gesamtvorstand@karnevalverein-frohsinn.de Die Adressen zur Weiterleitung würde ich Dir noch zukommen lassen. Um aus dem Postfach zu schreiben bräuchte ich auch die Zugangsdaten und ein Passwort. Dann noch zwei Fragen: vorstand@karnevalverein-frohsinn.de Wer ist denn bei der E-Mailadresse hinterlegt bzw. bekommt eine Weiterleitung? Wenn ich hier auch die Zugangsdaten bekommen könnte wäre klasse. info@karnevalverein-frohsinn.de Pflegst Du das Postfach? Wäre es vielleicht möglich die Zugänge jeweils unter mein Passwort zu setzen (außer die Vermietung E-Mail, da bräuchten wir ein separates ) ? Das mit der E-Mail Adresse ulfert.hahn@karnevalverein-frohsinn funktioniert super. Falls Du noch etwas benötigst, las uns einfach kurz telefonieren. Danke und Gruß Uli __Anmerkung:__ erledigt am: 06.08.22 ---
!''ARCHIV - Fotogalerien'' |[[FOTOGALERIE 2022 Eroeffnungssitzung]]| |[[FOTOGALERIE 2023 Karnevalszug]]| --- --- [[Nach oben...|Multimedia-Fotogalerien]] --- --- --- |[[Start]]|[[Der Frohsinn]]|[[Veranstaltungen]]|[[Bühnenaktive]]|[[Chronik]]| --- |[[Multimedia-Online]]|[[Multimedia-Fotogalerien]]|[[Multimedia-Videos]]|[[Multimedia-Sounds]]| --- file:///C:/Data/GUTH--ONLINE/www-FROHSINN-OBERURSEL-DE/wiki/wiki-frohsinn-2022.ods | Fotogalerie | Online oder Lokal | Info | Last Check | | |!2010/11 | | | | * | | 2010 prinzeninthro | file:///C:/DATA/GUTH--ONLINE/www-NARRENRAT-DE/galerie/2010prinzeninthro/index.html | | | * | | 2011 prinzengala | file:///C:/DATA/GUTH--ONLINE/www-NARRENRAT-DE/galerie/2011prinzengala/index.html | | | * | | 2011 Prunksitzung | | http://www.jask.de/bilder/foto1/ (Marc Ladehoff) | 2021 | * | | 2011 Hexensitzung | file:///C:/DATA/GUTH--ONLINE/www-NARRENRAT-DE/galerie/2011hexensitzung/index.html | | | * | | 2011 Prinz-in-koeln | file:///C:/DATA/GUTH--ONLINE/www-NARRENRAT-DE/galerie/2011prinz-in-koeln/index.html | | | * | | | | | | * | |!2011/12 | | | | * | | 2011 prinzeninthro | file:///C:/DATA/GUTH--ONLINE/www-NARRENRAT-DE/galerie/2011prinzeninthro/index.html | | | * | | 2012 hexensitzung | | FEHLER: landet bei http://www.abartfoto.de/Hexen2015 | | * | | | | | | * | |!2012/13 | | | | * | | 2012 prinzeninthro | | FEHLER: Link not found | | * | | 2013 hexensitzung | | FEHLER: landet bei http://www.abartfoto.de/Hexen2015 | | * | | | | | | * | |!2013/14 | | | | * | | 2013 Ausrufung der Fastnacht | | | | * | | 2013 Prinzeninthro | | FEHLER: landet bei http://www.abartfoto.de/Prinz2016 | | * | | 2013 Eröffnungs-Sitzung | | | | * | | 2013 KR-Sitzung | | | | * | | 2014 Prunksitzung | file:///C:/DATA/GUTH--ONLINE/www-FROHSINN-OBERURSEL-DE/html/vf-galerie-2014prunksitzung.html | http://www.breitbartfotografie.de/Sitzung_2014 | | * | | 2014 Prunksitzung | file:///C:/DATA/GUTH--ONLINE/www-FROHSINN-OBERURSEL-DE/html/vf-galerie-2014prunksitzung.html | http://www.breitbartfotografie.de/Sitzung_2014 | | * | | 2014 Prunk-Sitzung Fotos von Andy Breitbart | Link defekt | http://www.breitbartfotografie.de/Sitzung_2014 | | * | | 2014 Prunksitzung – Frohsinn Saenger | https://my.hidrive.com/share/yaehoiktnc | | 2021/12 | * | | 2014 Hexensitzung | keine Fotos verfügbar | | | * | | 2014 Oaseparty | file:///C:/DATA/GUTH--ONLINE/www-FROHSINN-OBERURSEL-DE/html/vf-galerie-2014oasereloaded.html | Linkziel ist falsch | | * | | 2014 KiMiSi | | | | * | | 2014 Karnevalszug | file:///C:/DATA/GUTH--ONLINE/www-FROHSINN-OBERURSEL-DE/html/vf-galerie-2014zug.html file:///C:/DATA/GUTH--ONLINE/www-FROHSINN-OBERURSEL-DE/html/vf-galerie-2014zug1.html | https://plus.google.com/photos/114365844301771536664/albums/5989128006199300993?authkey=CJnlxcHXrYfe1AE https://plus.google.com/photos/114365844301771536664/albums/5989129779415735841?authkey=CNSHmZ-KxYCznwE http://plus.google.com/photos/109046272829692449957/albums/5988011608177983425?authkey=CPDJxLyf3fjTkQE https://plus.google.com/photos/107489786744533499305/albums/5995086326337041793?authkey=CKi5ucCJgoftXA https://youtu.be/zWO8HxDsFtA https://sharegallery.strato.com/u/WQCt-zcB/r8uE0xaR#karnevalszug-2014-a/photos/fluid | | * | | 2014 Karnevalszug (A) | https://my.hidrive.com/share/q4w3b8ne3g | | 2021/12 | * | | 2014 Ordensfest | | | | * | | 2014 1. Frohsinn Brunnenfest | file:///C:/DATA/GUTH--ONLINE/www-FROHSINN-OBERURSEL-DE/html/vf-galerie-2014brunnenfest.html | https://sharegallery.strato.com/u/WQCt-zcB/M6Wh5OAF#kv-frohsinn-bunnenfest-2014/photos/fluid | | * | | | | | | * | | ''ab hier sind die Fotogalerien auf der HP.....'' | ''ab hier sind die Fotogalerien auf der HP.....'' | | | * | |!2014/15 | | | | * | | 2014 Ausrufung der Fastnacht | file:///C:/DATA/GUTH--ONLINE/www-FROHSINN-OBERURSEL-DE/html/vf-galerie-2014ausrufderfastnacht.html | Fotos fehlen Video:https://youtu.be/u3GBpnJ__og | | * | | 2014 Inthronisation von Jürgen I. am 11.11.14 | http://www.narrenrat-oberursel.de/galerie/2014Prinzeninthro/index.html | | error | * | | 2014 Eröffnungs-Sitzung | http://www.breitbartfotografie.de/141115_Eroeffnungssitzung | Fotos von Andy Breitbart | error | * | | 2014 KR-Sitzung | div | Manni Optiz (Fr) | error | * | | 2014 KR-Sitzung | div | Sabine (Fr) | error | * | | 2014 KR-Sitzung | div | Sabine (Sa) | error | * | | 2014 KR-Sitzung | div | Gerd (Sa) | error | * | | 2014 KR-Sitzung | div | Henriette (Sa) | error | * | | 2015 Prunksitzung | http://www.abartfoto.de/Sitzung_2015/ | Fotos von Andy Breitbart | error | * | | 2015 Hexensitzung | http://www.abartfoto.de/Hexen2015 | Fotos von Andy Breitbart | error | * | | 2015 Hausparty “JUST GREEN” | http://www.abartfoto.de/justgreen2015 | Fotos von Andy Breitbart | error | * | | 2015 Rathaussturm | http://sharegallery.strato.com/u/WQCt-zcB/n3j7Dh5d#rathaussturm-2015/photos/fluid | Fotos von Dirk Lange | error | * | | 2015 Karnevalszug KV Frohsinn | https://my.hidrive.com/share/uxl.w85sdt | KV Frohsinn | 2021/12 | * | | 2015 Karnevalszug Sabine Kinkel | HiDrive Share Gallery | FOTOGALERIE Sabine Kinkel | error | * | | 2015 Karnevalszug Manni Opitz | HiDrive Share Gallery | FOTOGALERIE Manni Opitz | error | * | | 2015 Ordensfest | HiDrive Share Gallery | Fotos von Dirk Lange | error | * | | 2015 Brunnenfest | ??? | | | * | | 2015 JUBILÄUMSFEST Schlager-Party | http://www.abartfoto.de/JubiWE2015_SchlagerParty/ | Fotos von Conny & Sascha | 2021/11 | * | | 2015 JUBILÄUMSFEST Schlager-Party | https://static.hidrive.com/sharegallery/#schlager-party-2015-by-dirk-lange/photos/fluid | Fotos von Dirk Lange | error | * | | 2015 JUBILÄUMSFEST Schlager-Gala | http://www.abartfoto.de/JubiWE2015_MusicalGala/ | Fotos von Andy Breitbart | 2021/11 | * | | 2015 JUBILÄUMSFEST Schlager-Gala | https://static.hidrive.com/sharegallery/#musical-gala-2015-by-dirk-lange/photos/fluid | Fotos von Dirk Lange | error | * | | 2015 JUBILÄUMSFEST Schlager-Familien-Tag | http://www.abartfoto.de/JubiWE2015_FamilienTag/ | Fotos von Andy Breitbart | 2021/11 | * | | 2015 JUBILÄUMSFEST Schlager-Familien-Tag | https://static.hidrive.com/sharegallery/#wir-sind-frohhsin-2015-by-dirk-lange/photos/fluid | Fotos von Dirk Lange | error | * | | 2015 JUBILÄUMSFEST Schlager-Festkommers | http://www.abartfoto.de/150927Festkomers/ | Fotos von Andy Breitbart | 2021/11 | * | | | | | | * | |!2015/16 | | | | * | | 2015 Ausruf der Fastnacht | https://www.facebook.com/media/set/?set=a.977439648988213.1073741917.843510555714457&type=3 | Facebook-Fotoalbum Bunnenkönigin | 2021/11 | * | | 2015 Kampagnenstart Taunus-Sparkasse | https://my.hidrive.com/share/9.1ehd36ra | | 2021/12 | * | | 2015 Eröffnungs-Sitzung | https://my.hidrive.com/share/2c8umetwwo | Fotos von Stefan Ramert | 2021/12 | * | | 2015 Eröffnungs-Sitzung | ??? | Fotos von Andy Breitbart | | * | | 2015 KR-Sitzung | ??? | Manni Optiz (Sa) | | * | | 2015 KR-Sitzung | ??? | Sabine (Fr) | | * | | 2015 KR-Sitzung | ??? | Sabine (Sa) | | * | | 2015 KR-Sitzung | ??? | Henriette (Fr) | | * | | 2015 KR-Sitzung | ??? | Henriette (Sa) | | * | | 2016 Prunksitzungen | http://www.abartfoto.de/Sitzung_2016/ | Fotos von Andy Breitbart | 2021/11 | * | | 2017 Prunksitzungen Impressionen Diashow | https://www.karnevalverein-frohsinn.de/assets/galerie/2016-prunksitzungen-impressionen/index.html | Fotos von Andy Breitbart | 2021/11 | * | | 2016 Hexensitzung | http://www.abartfoto.de/Hexen_2016/ | Fotos von Andy Breitbart | 2021/11 | * | | 2016 Oase | http://www.abartfoto.de/oase2016 | Breitbart | 2021/11 | * | | 2016 Zug | https://static.hidrive.com/sharegallery/ | | error | * | | 2016 Ordensfest | https://static.hidrive.com/sharegallery/#ordensfest-2016/photos/fluid | Fotos von Dirk Lange & Stefan Coy | error | * | | | | | | * | |!2016/17 | | | | * | | 2016 Inthronisation Prinz Rüdiger I. | http://www.abartfoto.de/Prinz2016/ | Fotos von Andy Breitbart | 2021/12 | * | | 2016 VF-Open | http://www.abartfoto.de/Eroeffnung2016/ | Fotos von Andy Breitbart | 2021/12 | * | | 2016 KR-Sitzung | https://photos.google.com/share/AF1QipPZCi20S7zhGjZMsUaD5b8XLsv5xZ4HRr3sNfcr3Nxf4FLbpY3BGMo1u6CajpbV0Q?key=eklzTklTXzRWSzZwRnpFYy1kY0hDamkxazRyM1Fn | Fotos by Sabine (Freitag) | 2021/11 | * | | 2016 KR-Sitzung | https://photos.google.com/share/AF1QipPEgHRy7lwtgLT2BTl23L-udhCpWF2KnSAUNbteWPlLBZfTd5oOyX1UkoPB3rss3g?key=VEF1RW1DU1RiV1VCWDBrWFphSUhoNXExNWZadlR3 | Fotos by Sabine (Samstag) | 2021/11 | * | | 2016 KR-Sitzung | https://photos.google.com/share/AF1QipNy1PY_-pAwVcUWyz_RJbmtRJg2va20vJPICtdGVevN7Eo8AyYptc-eE-BM4gV87Q?key=LTU5Q0RGbnF3eFptUVJDdU9WMmFqdkN4M1diUkJ3 | Fotos by Henriette (Samstag) | 2021/11 | * | | 2016 KR-Sitzung | https://photos.google.com/share/AF1QipN62RnKaB_LkJkMejtBMTaOSKOYJW3XhyspbK6xzOWRze2Ml-ic4zvPUHy5FIDD8w?key=a1dKMm02d3BtUlBsRUJKNnlybWo5ckxxdmNkT0tR | Fotos by Jochen (Samstag) | 2021/11 | * | | 2017 Prunksitzungen | http://www.abartfoto.de/Sitzung_2017/ | Fotos von Conny & Andy Breitbart | 2021/11 | * | | 2017 Hexensitzung | http://www.abartfoto.de/Hexen_2017/ | Fotos von Andy Breitbart | 2021/11 | * | | 2017 Oase Just Green | http://www.breitbartfotografie.de/Oase2017 | Fotos von Andy Breitbart | error | * | | 2017 Kinder-Mitmach-Sitzung | http://www.breitbartfotografie.de/kimisi2017 | Fotos von Andy Breitbart | error | * | | 2017 Zug | http://www.abartfoto.de/zug2017 | Fotos von Andy Breitbart | 2021/12 | * | | 2017 Ordensfest | https://my.hidrive.com/share/2mpoccbeh9 | Fotos von Peter Riek | 2021/12 | * | | | | | | * | |!2017/18 | | | | * | | 2017 Prinzenintro | https://abartfoto.de/Prinzeninthro2017/ | http://breitbartfotografie.de/Prinzeninthro2017/ | 2021/12 | * | | 2017 VF-Open | http://www.kvf1890.de/Eroeffung2017/ | Fotos von Andy Breitbart | 2021/12 | * | | 2018 Prunksitzungen | http://www.abartfoto.de/Sitzung_2018/ | Fotos von Conny & Andy Breitbart | 2021/11 | * | | 2018 Hexensitzung | http://www.narrenrat-oberursel.de/gallery/2018-hexensitzung.html | | 2021/11 | * | | 2018 Zug | https://www.karnevalverein-frohsinn.de/assets/gallery/2018-zug-fb.html | Fotos KV rohsinn | 2021/11 | * | | 2018 Ordensfest | https://www.karnevalverein-frohsinn.de/assets/gallery/2018-ordensfest.html | Fotos von Sabine Kinkel | 2021/11 | * | | | | | | * | |!2018/19 | | | | * | | 2018 VF-Open | | 2021/11 | | * | | 2018 KR-Sitzung 1 | https://my.hidrive.com/share/msmhiiwm7x | Fotos von Sabine ? | 2021/11 | * | | 2018 KR-Sitzung 2 | https://my.hidrive.com/share/r89.ba.yvq | Fotos von Carrie ? | 2021/11 | * | | 2019 Prunksitzungen | http://www.abartfoto.de/Sitzung_2019/ | Fotos von Conny & Andy Breitbart | 2021/11 | * | | 2019 Oase Party | http://kvf1890.de/Oase2019/ | Fotos von Andy Breitbart | 2021/11 | * | | 2019 Zug | http://kvf1890.de/Umzug2019/ | Fotos von Andy Breitbart | 2021/11 | * | | 2019 Ordensfest | | | | * | | | | | | * | |!2019/20 | | | | * | | !2019 VF-Open | https://www.karnevalverein-frohsinn.de/assets/gallery/2019-open.html | Fotos von Peter Riek | 2021/11 | * | | 2019 KR-Sitzung | https://my.hidrive.com/share/y6u69n88lu#$/ | Fotos von Carrie | 2021/11 | * | | 2019 KR-Sitzung | https://my.hidrive.com/share/785cqsnz95#$/ | Fotos von Sabine | 2021/11 | * | | 2020 Prunksitzungen | http://www.kvf1890.de/Sitzung_2020/index.html | Fotos von Conny & Andy Breitbart | 2021/11 | * | | 2020 Zug (ausgefallen) | | | | * | |2020 Ordensfest |[[ARCHIV-Fotogalerie|FG2021-error]] |https://www.karnevalverein-frohsinn.de/assets/gallery/2020-ordensfest.html | Fotos von Peter Riek | 2021/11 | * | |2020 2.Brunnenfest Frohsinn |[[ARCHIV-Fotogalerie|FG2021-error]] |https://www.karnevalverein-frohsinn.de/assets/gallery/2020-vf-brunnenfest.html | Fotos von Max Kuntsche & Winni Dorn | 2021/11 | * | | | | | || * | |!2020/21 | | | || | | | | | || * | |!2021/22 | | | || | |2021 VF-Ausrufung der Fastnacht |[[ARCHIV-Fotogalerie|FG2021-error]] |https://www.karnevalverein-frohsinn.de/mob/galerie-2021-ausrufderfastnacht.html | |2022/08 | * | |2021 VF-Open |[[ARCHIV-Fotogalerie|FG2021-error]] |https://www.karnevalverein-frohsinn.de/mob/galerie-2021-eroeffnungssitzung.html | |2022/08 | * | |2022 Karneval ~OpenAir |[[ARCHIV-Fotogalerie|FG2022-karnevalopenair]] |https://www.karnevalverein-frohsinn.de/mob/galerie-2022-karneval-openair.html | |2022/08 | * | |2022 Orschelrette |[[ARCHIV-Fotogalerie|FG2022-orschelrette]] |https://www.karnevalverein-frohsinn.de/mob/fotogalerie.html | | 2022/08 | * | |2022 Abschiedsgala Schüssel |[[ARCHIV-Fotogalerie|FG2022-schuesselgala]] |http://gallery.breitbartfotografie.de/Schuessel_Gala/index.html| Fotos von Andy Breitbart | 2022/08 | * | | | | | | * | | HISTORY Frohsinn-Sänger | https://my.hidrive.com/share/i-oz3flp7b | div Fotos der Sänger i.Laufe der Jahre | 2021/12 | * | | | | | | * | | | | | | * | !DATEN (Fotogalerien auf der HP] ''__Pfad: www.karnevalverein-frohsinn.de/<assets/gallery/__''<br> https://www.karnevalverein-frohsinn.de/assets/gallery/2018-ordensfest.html <br> https://www.karnevalverein-frohsinn.de/assets/gallery/2018-zug.html <br> https://www.karnevalverein-frohsinn.de/assets/gallery/2018-zug-fb.html <br> https://www.karnevalverein-frohsinn.de/assets/gallery/2019-open.html <br> https://www.karnevalverein-frohsinn.de/assets/gallery/2020-ordensfest.html <br> https://www.karnevalverein-frohsinn.de/assets/gallery/2020-vf-brunnenfest.html <br> https://www.karnevalverein-frohsinn.de/assets/gallery/2020-vf-brunnenfest_mobil.html <br> https://www.karnevalverein-frohsinn.de/assets/gallery/2020-vf-brunnenfest-ohneVideo.html <br> ''__Pfad: www.karnevalverein-frohsinn.de/<assets/galerie/__''<br> 2011hessentag/<br> 2011-hessentaggrillstand/<br> 2011-hessentagzug/<br> 2011-vfbrunnenfest/<br> 2011vfsi-impressionen/<br> 2012-hexensitzung/<br> 2012-krrushmoor/<br> 2012-prunksitzungen/<br> 2012-vfsitzungen/<br> 2013-karnevalszug/<br> 2013-ordensfest/<br> 2013-vfopen/<br> 2013-vfopen2/<br> 2015-prunksitzungen-impressionen/<br> 2016-kr-aia/<br> 2016-prunksitzungen-impressionen/<br> 2017-prunksitzungen-impressionen/<br> 2018-ordensfest/<br> chronik-1928/<br> chronik-1972-liederheft/<br> chronik-2001-festschrift111/<br> chronik-2007-08/<br> chronik-2010-11/<br> chronik-2011-12/<br> chronik-2011-festschrift121/<br> chronik-2012-13/<br> chronik-2013-14/<br> chronik-2014-15/<br> chronik-2015-16/<br> chronik-2015-festschrift125/<br> chronik-2016-17/<br> chronik-prinzen/<br> chronik-vereinsorden/<br> galerie-zug2012/<br> galerie-zug2013/<br> korporationen/<br> --- |[[Multimedia-Online]]|[[Multimedia-Fotogalerien]]|[[Multimedia-Videos]]|[[Multimedia-Sounds]]| --- |[[Start]]|[[Der Frohsinn]]|[[Veranstaltungen]]|[[Bühnenaktive]]|[[Chronik]]|
|[[Start]]|[[Der Frohsinn]]|[[Veranstaltungen]]|[[Bühnenaktive]]|[[Chronik]]| --- |[[Archiv]]| |[[Multimedia-Online]]|[[Multimedia-Fotogalerien]]|[[Multimedia-Videos]]|[[Multimedia-Sounds]]| |[[Online-Seiten bei HP Frohsinn]]| --- !!! Der Verein |!HOMEPAGE|https://www.karnevalverein-frohsinn.de| |!FACEBOOK|https://www.facebook.com/karnevalverein.frohsinn| |!FACEBOOK Ort|https://www.facebook.com/pages/Vereinshaus-Frohsinn-Oberursel/181209958590760| |!INSTAGRAM|https://www.instagram.com/explore/locations/1027557312/karnevalverein-frohsinn-oberursel-1890-ev| __''Facebook App''__<br> http://KarnevalvereinFrohsinnOberursel1890eV.chayns.net<br> https://KarnevalvereinFrohsinnOberursel1890eV.chayns.net<br> https://karnevalvereinfrohsinnoberursel1890ev.chayns.net/tapp/index/91958 !!!Korporationen |Ehrengarde|https://www.facebook.com/Ehrengarde-des-Karnevalverein-Frohsinn-Oberursel-1890-eV-640309572763372/timeline/| |Tanzgarde|https://www.instagram.com/tanzgardekvf| |Brassband| --- |[[Multimedia-Online]]|[[Multimedia-Fotogalerien]]|[[Multimedia-Videos]]|[[Multimedia-Sounds]]| --- |[[Start]]|[[Der Frohsinn]]|[[Veranstaltungen]]|[[Bühnenaktive]]|[[Chronik]]|
!DATEN auf der HP https://www.karnevalverein-frohsinn.de/assets/multimedia/krsi2004-siebenhaar-weihnachtsritzambaa.mp3 https://www.karnevalverein-frohsinn.de/assets/multimedia/open_scroller.wav
|[[Start]]|[[Der Frohsinn]]|[[Veranstaltungen]]|[[Bühnenaktive]]|[[Chronik]]| xxx |[[Exportversion|kvf-multimedia-video-data]]| --- |[[Multimedia-Online]]|[[Multimedia-Fotogalerien]]|[[Multimedia-Videos]]|[[Multimedia-Sounds]]| --- !FACEBOOK Watch https://www.facebook.com/watch/karnevalverein.frohsinn/ !INSTAGRAM https://www.instagram.com/frohsinn1890<br> https://www.instagram.com/explore/locations/1027557312/karnevalverein-frohsinn-oberursel-1890-ev/ !Daten auf der HP https://www.karnevalverein-frohsinn.de/assets/multimedia/16-03-00-stammtich-frohsinn-saemger.mp4 https://www.karnevalverein-frohsinn.de/assets/multimedia/2015-kvf-taunussparkasse.mp4 https://www.karnevalverein-frohsinn.de/assets/multimedia/2015-musicalgala1.mp4 https://www.karnevalverein-frohsinn.de/assets/multimedia/2015-schlagerparty1.mp4 https://www.karnevalverein-frohsinn.de/assets/multimedia/2017-karnevalszug-frohsinn.mp4 https://www.karnevalverein-frohsinn.de/assets/multimedia/2017-karnevalszug-kleinerrat.mp4 https://www.karnevalverein-frohsinn.de/assets/multimedia/2019-karnevalszug-frohsinn.mp4 https://www.karnevalverein-frohsinn.de/assets/multimedia/2019-karnevalszug-kleinerrat.mp4 https://www.karnevalverein-frohsinn.de/assets/multimedia/2020-KVF-Brunnenfest1.mp4 https://www.karnevalverein-frohsinn.de/assets/multimedia/2021-Frohsinn-TSK.mp4 !VIDEOS auf ~YouTube |~YouTube-Suche|https://www.youtube.com/results?search_query=karnevalverein+frohsinn+oberursel&sm=12| ||https://www.youtube.com/results?search_query=brassband+frohsinn&sm=3| ||https://www.youtube.com/results?search_query=karneval+oberursel&sm=3| ||https://www.youtube.com/results?search_query=fasching+oberursel&sm=3| ||https://www.youtube.com/results?search_query=fastnacht+oberursel&sm=3| ||https://www.youtube.com/results?search_query=karnevalszug+oberursel&sm=3| !2012 |Sitzung-2012-Minis|https://www.youtube.com/watch?v=TQsGw1554zM| !2013 |Sitzung-2013-Männerballett|https://www.youtube.com/watch?v=bQugZqngn7w| !2014 |Ausrufung der Fastnacht 2014|https://www.youtube.com/embed/u3GBpnJ__og| 2011/11 | !2015 |Zug 2015 | auf Seite: https://www.karnevalverein-frohsinn.de/html/vf-galerie-2015zug.html | error | !2016 |Sitzung-2016-Minis|https://www.youtube.com/watch?v=IP-KCFbAVdc| <iframe width="560" height="315" src="https://www.youtube-nocookie.com/embed/IP-KCFbAVdc" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe> !2017 |Sitzung 2017 |Ballett |http://www.breitbartfotografie.de/aladdin.mp4 | error | !2018 |Ballett Rosa Wölkchen 2018|https://youtu.be/qmNcKTL-5iE| | <iframe width="560" height="315" src="https://www.youtube.com/embed/qmNcKTL-5iE" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe> !2019 |Brassband des KV Frohsinn - Büdesheimer Laternenfest|https://youtu.be/wqFsD8Q-3Pk|Ralf Hofmann| |Büdesheimer Laternenfest 2019 Platzkonzert|https://youtu.be/OWCqZ6J9Q90|Ralf Hofmann| |Kleiner Rat 2019 ~Wett-Café "Saure Sahne"|https://youtu.be/RLVKxgb8Enc|Christoph Müllerleile| |Kleiner Rat 2019 Orscheler Dialektschule"|https://youtu.be/p4XXBQsMGPo|Christoph Müllerleile| |Ballett Rosa Wölkchen 2019|https://youtu.be/xubxoSVYJx4|HR Fernsehen| |Karnevals Zug 2019|https://fb.watch/9nwUwNGcBl/|KV Frohsinn| |Zug 2019 |https://www.karnevalverein-frohsinn.de/assets/multimedia/2019-karnevalszug-frohsinn.mp4 | 2011/11 | <iframe width="560" height="315" src="https://www.youtube.com/embed/xubxoSVYJx4" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe> !2020 |Die Jugendbrassband beim Rathausturm 2020 in Oberursel|https://youtu.be/GkfHVgCY_8w|Alex Alt| |Die Jugendbrassband beim Rathausturm 2020 in Oberursel|https://youtu.be/Qr3JB26FOIc|Alex Alt| |Ballett Rosa Wölkchen 2020|https://youtu.be/YUschQrOCOo|HR Fernsehen| <iframe width="560" height="315" src="https://www.youtube.com/embed/YUschQrOCOo" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe> <br><br> |11.11.20 Stephan Remes|https://fb.watch/9nx3ZhVMPi|KV Frohsinn| <iframe src="https://www.facebook.com/plugins/video.php?height=476&href=https%3A%2F%2Fwww.facebook.com%2Fkarnevalverein.frohsinn%2Fvideos%2F2887128984857889%2F&show_text=false&width=267&t=0" width="267" height="476" style="border:none;overflow:hidden" scrolling="no" frameborder="0" allowfullscreen="true" allow="autoplay; clipboard-write; encrypted-media; picture-in-picture; web-share" allowFullScreen="true"></iframe> !2022 |Eins ist Gewiss, stimmt ganz genau, die Fassenacht lebt - dreifach Orschel Helau|| <iframe src="https://www.facebook.com/plugins/video.php?height=314&href=https%3A%2F%2Fwww.facebook.com%2Fkarnevalverein.frohsinn%2Fvideos%2F1403138423433759%2F&show_text=false&width=560&t=0" width="560" height="314" style="border:none;overflow:hidden" scrolling="no" frameborder="0" allowfullscreen="true" allow="autoplay; clipboard-write; encrypted-media; picture-in-picture; web-share" allowFullScreen="true"></iframe> <br><br> |Orschelrette - Probe 03.04.22|https://youtu.be/2TzW2hD3FEo|KV Frohsinn| <iframe width="560" height="315" src="https://www.youtube.com/embed/2TzW2hD3FEo" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe> |Abschiedsgala Schüssel 23.09.22|Video auf Facebook| <iframe src="https://www.facebook.com/plugins/post.php?href=https%3A%2F%2Fwww.facebook.com%2Fkarnevalverein.frohsinn%2Fposts%2Fpfbid0VgQEonN7yxZwwpNZR3wyKXzrG65WJ5FPGRAJtTT1kmzwib96RQ256EuqVtYAQ8oGl&show_text=false&width=500" width="500" height="282" style="border:none;overflow:hidden" scrolling="no" frameborder="0" allowfullscreen="true" allow="autoplay; clipboard-write; encrypted-media; picture-in-picture; web-share"></iframe> !2023 |Taunus-Karnevalszug 2023 |https://youtu.be/woWKWKmHtmQ| <iframe width="560" height="315" src="https://youtu.be/woWKWKmHtmQ" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe> --- --- !1936 | Karneval in Oberursel |[[ Oberurseler Fastnacht 1936 bis 1980 |https://youtu.be/R6STmIYx5sk]]| H.Decher | !1967 | Karnevalszug |[[ 1967 Faschings Umzug in Oberursel |https://youtu.be/SWuOR4DrLK0]]| Harro Junk | !2008 | Brassband |[[ BrassBand Oberursel Umzug Oberursel 2008 |https://youtu.be/XNMYMwmWF0g]]| | !2010 | Brassband |[[ Brassband Beach Boys (Hessentag 2010 Stadtallendorf) |https://youtu.be/wcimm638IYU]]| | | Brassband |[[ JailHouseRock (GP Wiesbaden 2010) |https://youtu.be/iCBdG4Spsm4]]| | | Brassband |[[ Sixties (Hessentag 2010 Stadtallendorf) |https://youtu.be/cvyZTMJ3fRQ]]| | | Brassband |[[ Brassband Frohsinn Oberursel - Star Wars (GP Wiesbaden 2010) |https://youtu.be/Q8c1K9sWyPE]]| | | Karnevalszug |[[ Karnevalsumzug in Oberursel Ts. Teil. 1 |https://youtu.be/rYUCNNGH9vg]]| meli1641 | | Karnevalszug |[[ Karnevalsumzug in Oberursel Ts. Teil. 3 |https://youtu.be/gizkn_HpxY8]]| meli1641 | | Karnevalszug |[[ Karnevalsumzug in Oberursel Ts. Teil.2 |https://youtu.be/0yvBj7aWRyc]]| meli1641 | !2011 | Brassbaband |[[ Hessentag 2011 Festzug (ab 10:40min) |https://youtu.be/UePCA7zs8V8]]| Christoph Müllerleile | | Brassband |[[ Let me entertain you (Robbie Williams) |https://youtu.be/D3_w7dOpvM8]]| | | Karnevalszug |[[ Karneval 2011 |https://youtu.be/4M_7ol5BM3Y]]| weisserhund1 | | Kleiner Rat |[[ Frau Guntersblum & Frau Schwanheim |https://youtu.be/eery34tyAOg]]| frytrix112 | | Rathaussturm |[[ Rathaussturm Oberursel 2011 |https://youtu.be/5hDeCxC5vAM]]| Christoph Müllerleile | | Verein |[[ Karnevalverein Frohsinn 2011 |https://youtu.be/pxAFjHKDXMU]]| orschel1890 | !2012 | Brassband |[[ Musik im Skipper Kerb 2012 |https://youtu.be/GDlXxFj7A6Y]]| | | Karnevalszug |[[ Oberursel |https://youtu.be/OXHBQ59Ieq4]]| Marko Persic | | Karnevalszug |[[ Taunus - Karnevalszug 2012 |https://youtu.be/NJaeUEBq5_Q]]| Oberursel Impressionen | | Karnevalszug |[[ Taunus-Karnevalszug 2012 |https://youtu.be/DYh98ENxXm4]]| Christoph Müllerleile | | Karnevalszug |[[ Taunus-Karnevalszug 2012 |https://youtu.be/INOfykI8Jc0]]| Christoph Müllerleile | | Karnevalszug |[[ Taunus-Karnevalszug 2012 |https://youtu.be/jLXsJPf5DII]]| Christoph Müllerleile | | Minis |[[ Sitzung-2012-Minis |https://youtu.be/TQsGw1554zM]]| | !2013 | Karnevalszug |[[ Oberursel Taunus Karnevalszug 2013 |https://youtu.be/HUMX2E5-E9E]]| norbert0705 | | Kleiner Rat |[[ Make-Up-Taktik Tini a.d.FrohsinnBühne |https://youtu.be/gak7LQFV7B8]]| Berthold Schinke | | Männerballett |[[ Männerballett Oberursel 2013 |https://youtu.be/bQugZqngn7w]]| | | Männerballett |[[ Sitzung-2013-Männerballett |https://www.youtube.com/watch?v=bQugZqngn7w]]| | | Person Karlheinz Barth |[[ Sabine wird Exprinzessin |https://youtu.be/N1HmyPe4n7o]]| | !2014 | Ausruf der Fastnacht |[[ 2014-Ausruf-der-Fastnacht.flv |https://youtu.be/u3GBpnJ__og]]| orschelweb | | Brassband |[[ Brassband beim Laternenfest in Büdesheim 2014 |https://youtu.be/QXRPfebKWgs]]| | | Brassband |[[ Cold Water Challenge 2014 |https://youtu.be/Ai3jGIVuY0c]]| | | Karnevalszug |[[ 2014 kvf karnevalszug |https://youtu.be/zWO8HxDsFtA]]| orschelweb | | Karnevalszug |[[ Karneval in Oberursel |https://youtu.be/ItSeHiNr_yU]]| Pablo Fernandez | | Karnevalszug |[[ Oberursel Taunus Karnevalszug 2014 |https://youtu.be/EaUPOsHQtqo]]| norbert0705 | | Verein |[[ Ausrufung der Fastnacht 2014 |https://www.youtube.com/embed/u3GBpnJ__og]]| 2011/11 | !2015 | Brassband |[[ 125 Jahre Karnevalverein Frohsinn - Die Brassband tritt auf |https://youtu.be/4nl62kV1FVo]]| | | Brassband |[[ Brassband Frohsinn & MuShoBa in Büdesheim 2015 |https://youtu.be/E3g0Dhc4jp4]]| | | Brassband |[[ Brassband Frohsinn & MuShoBa in Büdesheim 2016 |https://youtu.be/ROyDfkC4cww]]| | | Brassband |[[ Brassband Frohsinn & MuShoBa in Büdesheim 2017 |https://youtu.be/ptCVcROljvY]]| | | Karnevalszug |[[ 2015 kvf karnevalszug |https://youtu.be/Ns2YwdvPOwA]]| orschelweb | | Karnevalszug |[[ Karneval Parade |https://youtu.be/0laA6KeVea8]]| Benjamin Poore | | Karnevalszug |[[ Oberursel Taunus Karnevalszug 2015 |https://youtu.be/P2Vj-Y9gFko]]| | | Karnevalszug |[[ Zug 2015 |https://www.karnevalverein-frohsinn.de/html/vf-galerie-2015zug.html]]| error | | Prinz |[[ Oberurseler Karnevalsprinz Jürgen I. singt |https://youtu.be/r4PIwKrmLOo]]| Christoph Müllerleile | !2016 | Karnevalszug |[[ Umzug Orschel |https://youtu.be/s2cFgcu66jU]]| Markus Wissel | | Kleiner Rat |[[ Die Nachteulen -- Ich tanz den Spatz |https://youtu.be/EQURE_0ZcxM]]| Berthold Schinke | | Kleiner Rat |[[ Die Nachteulen -- Net schon wieder Fassnacht |https://youtu.be/zfAF-V_jo40]]| Berthold Schinke | | Kleiner Rat |[[ Die Nachteulen -- So geht gute Laune |https://youtu.be/-0t9U03txPE]]| Berthold Schinke | | Minis |[[ Sitzung-2016-Minis |https://www.youtube.com/watch?v=IP-KCFbAVdc]]| | !2017 | Ballett |[[ Ballett Sitzung 2017 |http://www.breitbartfotografie.de/aladdin.mp4]]| | | Brassband |[[ Taunuskerb Oberursel 2017 |https://youtu.be/CMY_UmcsI_8]]| | | Brassband |[[ Kreismusikfest 2017 in Königstein |https://youtu.be/I65PsraICMw]]| Ralf Hofmann | | Karnevalszug |[[ Taunus-Karnevalszug 2017 KV-Frohsinn |https://youtu.be/4O41bztU048]]| orschel1890 | !2018 | Ausruf der Fastnacht |[[ Ausrufung der Fastnacht 2018 |https://youtu.be/aVAlCEHaQlU]]| orschel1890 | | Ballett |[[ Ballett Rosa Wölkchen 2018 |https://youtu.be/qmNcKTL-5iE]]| | | Brassband |[[ Brassband des KV Frohsinn (live @ Sommernachtsfest Bad Soden |https://youtu.be/50I877u9mEk]]| | | div. |[[ Kellner Wettstreit 2018 Oberurseler Brunnenfest |https://youtu.be/icHcov4lAF8]]| | | Männerballett / Kleiner Rat |[[ Oberursel Kleiner Rat Männerballett |https://youtu.be/PyrqUYEA3D0]]| KR-Sitzung 2018 | | Sänger / Kleiner Rat |[[ Oberursel Frohsinn-Sänger beim Kleinen Rat - David Görge |https://youtu.be/A3pKK2rAO-s]]| Christoph Müllerleile | | Sänger / Kleiner Rat |[[ Oberursel Frohsinn-Sänger beim Kleinen Rat - Lukas Fries |https://youtu.be/oYzB9FSD_Q4]]| Christoph Müllerleile | | Sänger / Kleiner Rat |[[ Oberursel Frohsinn-Sänger beim Kleinen Rat - Norman Dießner |https://youtu.be/zFz_gf2slq0]]| Christoph Müllerleile | !2019 | Ballett |[[ Ballett Rosa Wölkchen 2019 |https://youtu.be/xubxoSVYJx4]]| HR Fernsehen | | Brassband |[[ Brassband des KV Frohsinn - Büdesheimer Laternenfest 2019 |https://youtu.be/wqFsD8Q-3Pk]]| Ralf Hofmann | | Brassband |[[ Büdesheimer Laternenfest 2019 Platzkonzert |https://youtu.be/OWCqZ6J9Q90]]| Ralf Hofmann | | Brassband |[[ Jugend-Brassband und DrumKids vom KV Frohsinn Oberursel |https://youtu.be/BM7RMCp3F7o]]| | | Brassband |[[ Jugend-Brassband und DrumKids vom KV Frohsinn Oberursel |https://youtu.be/P2M7ZSQ9c2A]]| | | Brassband |[[ Jugend-Brassband und DrumKids vom KV Frohsinn Oberursel |https://youtu.be/WboS3S3gxlo]]| | | Karnevalszug |[[ Karnevals Zug 2019 |https://fb.watch/9nwUwNGcBl/]]| KV Frohsinn | | Karnevalszug |[[ Zug 2019 |https://www.karnevalverein-frohsinn.de/assets/multimedia/2019-karnevalszug-frohsinn.mp4]]| 2011/11 | | Kleiner Rat |[[ Kleiner Rat 2019 ~Wett-Café "Saure Sahne" |https://youtu.be/RLVKxgb8Enc]]| Christoph Müllerleile | | Kleiner Rat |[[ Kleiner Rat 2019 Orscheler Dialektschule" |https://youtu.be/p4XXBQsMGPo]]| Christoph Müllerleile | | Prinz |[[ exprinzen2019 |https://youtu.be/QiMooTwgccw]]| orschel1890 | | Rathaussturm |[[ Abmarsch zum Rathaussturm in Oberursel am 23 02 2019 |https://youtu.be/-R_N-HJC--U]]| H.Decher | !2020 | Ballett |[[ Ballett Rosa Wölkchen 2020 |https://youtu.be/YUschQrOCOo]]| HR Fernsehen | | Brassband |[[ Die Jugendbrassband beim Rathausturm 2020 in Oberursel |https://youtu.be/GkfHVgCY_8w]]| Alex Alt | | Brassband |[[ Die Jugendbrassband beim Rathausturm 2020 in Oberursel |https://youtu.be/Qr3JB26FOIc]]| Alex Alt | | Männerballett / Verein |[[ 2020 KVF BF1 |https://youtu.be/vrfv6pOonk4]]| orschel1890 | | Verein |[[ 11.11.20 Stephan Remes |https://fb.watch/9nx3ZhVMPi]]| KV Frohsinn | | Verein |[[ Karneval 11.11.2020 |https://youtu.be/JCciVVZ4vjA]]| orschel1890 | !2021 !2022 | Verein |[[ Die Fassenacht lebt |https://youtu.be/dBZg6b3hvy0]]| orschel1890 | | Brassband |[[ Abschiedsgala der Schüssel 23.09.22. Stadthalle Oberursel |https://youtu.be/Qr3JB26FOIc]]| Andy Breitbart | | |<iframe src="https://www.facebook.com/plugins/post.php?href=https%3A%2F%2Fwww.facebook.com%2Fkarnevalverein.frohsinn%2Fposts%2Fpfbid0VgQEonN7yxZwwpNZR3wyKXzrG65WJ5FPGRAJtTT1kmzwib96RQ256EuqVtYAQ8oGl&show_text=false&width=500" width="500" height="282" style="border:none;overflow:hidden" scrolling="no" frameborder="0" allowfullscreen="true" allow="autoplay; clipboard-write; encrypted-media; picture-in-picture; web-share"></iframe>|| --- --- | Ausruf der Fastnacht |[[ 2014-Ausruf-der-Fastnacht.flv | https://youtu.be/u3GBpnJ__og ]]| orschelweb | | Ausruf der Fastnacht |[[ Ausrufung der Fastnacht 2018 | https://youtu.be/aVAlCEHaQlU ]]| orschel1890 | | Ballett |[[ Ballett Sitzung 2017 | http://www.breitbartfotografie.de/aladdin.mp4 ]]| | | Ballett |[[ Ballett Rosa Wölkchen 2018 | https://youtu.be/qmNcKTL-5iE ]]| | | Ballett |[[ Ballett Rosa Wölkchen 2019 | https://youtu.be/xubxoSVYJx4 ]]| HR Fernsehen | | Ballett |[[ Ballett Rosa Wölkchen 2020 | https://youtu.be/YUschQrOCOo ]]| HR Fernsehen | | Brassbaband |[[ Hessentag 2011 Festzug (ab 10:40min) | https://youtu.be/UePCA7zs8V8 ]]| Christoph Müllerleile | | Brassband |[[ BrassBand Oberursel Umzug Oberursel 2008 | https://youtu.be/XNMYMwmWF0g ]]| | | Brassband |[[ Brassband Beach Boys (Hessentag 2010 Stadtallendorf) | https://youtu.be/wcimm638IYU ]]| | | Brassband |[[ JailHouseRock (GP Wiesbaden 2010) | https://youtu.be/iCBdG4Spsm4 ]]| | | Brassband |[[ Sixties (Hessentag 2010 Stadtallendorf) | https://youtu.be/cvyZTMJ3fRQ ]]| | | Brassband |[[ Brassband Frohsinn Oberursel - Star Wars (GP Wiesbaden 2010) | https://youtu.be/Q8c1K9sWyPE ]]| | | Brassband |[[ Let me entertain you (Robbie Williams) | https://youtu.be/D3_w7dOpvM8 ]]| | | Brassband |[[ Musik im Skipper Kerb 2012 | https://youtu.be/GDlXxFj7A6Y ]]| | | Brassband |[[ Brassband beim Laternenfest in Büdesheim 2014 | https://youtu.be/QXRPfebKWgs ]]| | | Brassband |[[ Cold Water Challenge 2014 | https://youtu.be/Ai3jGIVuY0c ]]| | | Brassband |[[ 125 Jahre Karnevalverein Frohsinn - Die Brassband tritt auf | https://youtu.be/4nl62kV1FVo ]]| | | Brassband |[[ Brassband Frohsinn & MuShoBa in Büdesheim 2015 | https://youtu.be/E3g0Dhc4jp4 ]]| | | Brassband |[[ Brassband Frohsinn & MuShoBa in Büdesheim 2016 | https://youtu.be/ROyDfkC4cww ]]| | | Brassband |[[ Brassband Frohsinn & MuShoBa in Büdesheim 2017 | https://youtu.be/ptCVcROljvY ]]| | | Brassband |[[ Taunuskerb Oberursel 2017 | https://youtu.be/CMY_UmcsI_8 ]]| | | Brassband |[[ Kreismusikfest 2017 in Königstein | https://youtu.be/I65PsraICMw ]]| Ralf Hofmann | | Brassband |[[ Brassband des KV Frohsinn (live @ Sommernachtsfest Bad Soden | https://youtu.be/50I877u9mEk ]]| | | Brassband |[[ Brassband des KV Frohsinn - Büdesheimer Laternenfest 2019 | https://youtu.be/wqFsD8Q-3Pk ]]| Ralf Hofmann | | Brassband |[[ Büdesheimer Laternenfest 2019 Platzkonzert | https://youtu.be/OWCqZ6J9Q90 ]]| Ralf Hofmann | | Brassband |[[ Jugend-Brassband und DrumKids vom KV Frohsinn Oberursel | https://youtu.be/BM7RMCp3F7o ]]| | | Brassband |[[ Jugend-Brassband und DrumKids vom KV Frohsinn Oberursel | https://youtu.be/P2M7ZSQ9c2A ]]| | | Brassband |[[ Jugend-Brassband und DrumKids vom KV Frohsinn Oberursel | https://youtu.be/WboS3S3gxlo ]]| | | Brassband |[[ Die Jugendbrassband beim Rathausturm 2020 in Oberursel | https://youtu.be/GkfHVgCY_8w ]]| Alex Alt | | Brassband |[[ Die Jugendbrassband beim Rathausturm 2020 in Oberursel | https://youtu.be/Qr3JB26FOIc ]]| Alex Alt | | div. |[[ Kellner Wettstreit 2018 Oberurseler Brunnenfest | https://youtu.be/icHcov4lAF8 ]]| | | Karneval in Oberursel |[[ Oberurseler Fastnacht 1936 bis 1980 | https://youtu.be/R6STmIYx5sk ]]| H.Decher | | Karnevalszug |[[ 1967 Faschings Umzug in Oberursel | https://youtu.be/SWuOR4DrLK0 ]]| Harro Junk | | Karnevalszug |[[ Karnevalsumzug in Oberursel Ts. Teil. 1 | https://youtu.be/rYUCNNGH9vg ]]| meli1641 | | Karnevalszug |[[ Karnevalsumzug in Oberursel Ts. Teil. 3 | https://youtu.be/gizkn_HpxY8 ]]| meli1641 | | Karnevalszug |[[ Karnevalsumzug in Oberursel Ts. Teil.2 | https://youtu.be/0yvBj7aWRyc ]]| meli1641 | | Karnevalszug |[[ Karneval 2011 | https://youtu.be/4M_7ol5BM3Y ]]| weisserhund1 | | Karnevalszug |[[ OBERURSEL | https://youtu.be/OXHBQ59Ieq4 ]]| Marko Persic | | Karnevalszug |[[ Taunus - Karnevalszug 2012 | https://youtu.be/NJaeUEBq5_Q ]]| Oberursel Impressionen | | Karnevalszug |[[ Taunus-Karnevalszug 2012 | https://youtu.be/DYh98ENxXm4 ]]| Christoph Müllerleile | | Karnevalszug |[[ Taunus-Karnevalszug 2012 | https://youtu.be/INOfykI8Jc0 ]]| Christoph Müllerleile | | Karnevalszug |[[ Taunus-Karnevalszug 2012 | https://youtu.be/jLXsJPf5DII ]]| Christoph Müllerleile | | Karnevalszug |[[ Oberursel Taunus Karnevalszug 2013 | https://youtu.be/HUMX2E5-E9E ]]| norbert0705 | | Karnevalszug |[[ 2014 kvf karnevalszug | https://youtu.be/zWO8HxDsFtA ]]| orschelweb | | Karnevalszug |[[ Karneval in Oberursel | https://youtu.be/ItSeHiNr_yU ]]| Pablo Fernandez | | Karnevalszug |[[ Oberursel Taunus Karnevalszug 2014 | https://youtu.be/EaUPOsHQtqo ]]| norbert0705 | | Karnevalszug |[[ 2015 kvf karnevalszug | https://youtu.be/Ns2YwdvPOwA ]]| orschelweb | | Karnevalszug |[[ Karneval Parade | https://youtu.be/0laA6KeVea8 ]]| Benjamin Poore | | Karnevalszug |[[ Oberursel Taunus Karnevalszug 2015 | https://youtu.be/P2Vj-Y9gFko ]]| | | Karnevalszug |[[ Zug 2015 | https://www.karnevalverein-frohsinn.de/html/vf-galerie-2015zug.html ]]| error | | Karnevalszug |[[ 2016 02 07 Umzug Orschel | https://youtu.be/s2cFgcu66jU ]]| Markus Wissel | | Karnevalszug |[[ Taunus-Karnevalszug 2017 KV-Frohsinn | https://youtu.be/4O41bztU048 ]]| orschel1890 | | Karnevalszug |[[ Karnevals Zug 2019 | https://fb.watch/9nwUwNGcBl/ ]]| KV Frohsinn | | Karnevalszug |[[ Zug 2019 | https://www.karnevalverein-frohsinn.de/assets/multimedia/2019-karnevalszug-frohsinn.mp4 ]]| 2011/11 | | Kleiner Rat |[[ Frau Guntersblum & Frau Schwanheim | https://youtu.be/eery34tyAOg ]]| frytrix112 | | Kleiner Rat |[[ Make-Up-Taktik Tini a.d.FrohsinnBühne | https://youtu.be/gak7LQFV7B8 ]]| Berthold Schinke | | Kleiner Rat |[[ Die Nachteulen -- Ich tanz den Spatz | https://youtu.be/EQURE_0ZcxM ]]| Berthold Schinke | | Kleiner Rat |[[ Die Nachteulen -- Net schon wieder Fassnacht | https://youtu.be/zfAF-V_jo40 ]]| Berthold Schinke | | Kleiner Rat |[[ Die Nachteulen -- So geht gute Laune | https://youtu.be/-0t9U03txPE ]]| Berthold Schinke | | Kleiner Rat |[[ Kleiner Rat 2019 ~Wett-Café "Saure Sahne" | https://youtu.be/RLVKxgb8Enc ]]| Christoph Müllerleile | | Kleiner Rat |[[ Kleiner Rat 2019 Orscheler Dialektschule" | https://youtu.be/p4XXBQsMGPo ]]| Christoph Müllerleile | | Männerballett |[[ Männerballett Oberursel 2013 | https://youtu.be/bQugZqngn7w ]]| | | Männerballett |[[ Sitzung-2013-Männerballett | https://www.youtube.com/watch?v=bQugZqngn7w ]]| | | Männerballett / Kleiner Rat |[[ Oberursel Kleiner Rat Männerballett | https://youtu.be/PyrqUYEA3D0 ]]| KR-Sitzung 2018 | | Männerballett / Verein |[[ 2020 KVF BF1 | https://youtu.be/vrfv6pOonk4 ]]| orschel1890 | | Minis |[[ Sitzung-2012-Minis | https://youtu.be/TQsGw1554zM ]]| | | Minis |[[ Sitzung-2016-Minis | https://www.youtube.com/watch?v=IP-KCFbAVdc ]]| | | Person Karlheinz Barth |[[ Sabine wird Exprinzessin | https://youtu.be/N1HmyPe4n7o ]]| | | Prinz |[[ Oberurseler Karnevalsprinz Jürgen I. singt | https://youtu.be/r4PIwKrmLOo ]]| Christoph Müllerleile | | Prinz |[[ exprinzen2019 | https://youtu.be/QiMooTwgccw ]]| orschel1890 | | Rathaussturm |[[ Rathaussturm Oberursel 2011 | https://youtu.be/5hDeCxC5vAM ]]| Christoph Müllerleile | | Rathaussturm |[[ Abmarsch zum Rathaussturm in Oberursel am 23 02 2019 | https://youtu.be/-R_N-HJC--U ]]| H.Decher | | Sänger / Kleiner Rat |[[ Oberursel Frohsinn-Sänger beim Kleinen Rat - David Görge | https://youtu.be/A3pKK2rAO-s ]]| Christoph Müllerleile | | Sänger / Kleiner Rat |[[ Oberursel Frohsinn-Sänger beim Kleinen Rat - Lukas Fries | https://youtu.be/oYzB9FSD_Q4 ]]| Christoph Müllerleile | | Sänger / Kleiner Rat |[[ Oberursel Frohsinn-Sänger beim Kleinen Rat - Norman Dießner | https://youtu.be/zFz_gf2slq0 ]]| Christoph Müllerleile | | Verein |[[ Karnevalverein Frohsinn 2011 | https://youtu.be/pxAFjHKDXMU ]]| orschel1890 | | Verein |[[ Ausrufung der Fastnacht 2014 | https://www.youtube.com/embed/u3GBpnJ__og ]]| 2011/11 | | Verein |[[ 11.11.20 Stephan Remes | https://fb.watch/9nx3ZhVMPi ]]| KV Frohsinn | | Verein |[[ Karneval 11.11.2020 | https://youtu.be/JCciVVZ4vjA ]]| orschel1890 | | Verein |[[ Die Fassenacht lebt | https://youtu.be/dBZg6b3hvy0 ]]| orschel1890 | --- --- --- --- [img[./data_pic/Screenshot-YouTube-videos.jpg]] --- |[[Multimedia-Online]]|[[Multimedia-Fotogalerien]]|[[Multimedia-Videos]]|[[Multimedia-Sounds]]| --- |[[Start]]|[[Der Frohsinn]]|[[Veranstaltungen]]|[[Bühnenaktive]]|[[Chronik]]|
!Daten-Übernahme vom alten Frohsinn-Wikki ''Müssen gecheckt werden und ins Neue Wiki eingefügt werden'' --- !Weihnachtsvideo http://youtu.be/8LZpBjnOMYY <iframe width="480" height="360" src="http://www.youtube.com/embed/8LZpBjnOMYY?rel=0" frameborder="0" allowfullscreen></iframe> !Programmierung: !!!iframe video (youtube) <p><iframe src="http://www.youtube.com/embed/AADK5pMY3uE?rel=0&hd=1" frameborder="0" width="560" height="315"></iframe></p> !!!automatische download der akt.version <head> <meta http-equiv="refresh" content="5; URL=index.html"> ... andere Angaben im Dateikopf ... </head> oder <head> <meta http-equiv="expires" content="0"> <!-- ... andere Angaben im Dateikopf ... > </head> !Karnevalsschlager http://www.cc-200.de/Jetzt_ist_Karneval__CC_200.mp3 !Brunnenfest __Text STEPHAN (2019)__ ''Herzlich willkommen am Stand des Karnevalverein Frohsinn auf dem diesjährigen Brunnenfest!'' Beim Frohsinn bieten wir Ihnen traditionell leckere Grill-Spezialitäten, kühles Radeberger Pils und erlesene Weine. Die gemütliche Atmosphäre unter den Arkaden der Stadtbücherei sowie die beste zentrale Lage in mitten des Festgebietes am Marktplatz, machen den Frohsinn-Stand zum perfekten Treffpunkt auf dem Brunnenfest. Wir freuen uns auf Ihren Besuch. !Ordensfest 2013 Bilder von Peter Riek: https://www.dropbox.com/sh/zw0f4hspahv6qnn/PtVt4kd13H !Zug 2013 Die Preisträger des „Ohlenspiegels“ 2013 Die Frohsinn-Sänger und das Frohsinn-Ballett haben beim diesjährigen Karnevalszug, für das Thema „STEP = StädtischeErlebnisPoklitik“, den „Ohlenspiegel“ gewonnen. Der „Ohlenspiegel“ gilt als renommiertester Preis der Jury und wird jährlich, erstmalig 1997, für das „beste lokal-politische Thema im Zug“ verliehen. Gestaltet wurde die Skulptur vom bekannten Oberursel Künstler Hendoc. Initiator und Stifter des Preises ist der Oberurseler Rechtsanwalt Bernhard Kempermann. Die Frohsinn-Sänger wurden mittlerweile zum fünften Mal mit dem „Ohlenspiegel“ ausgezeichnet und zählen, zusammen mit dem Kleinen-Rat des KV Frohsinn, somit zu den erfolgreichsten Preisträgern dieser Trophäe. !Sitzungen 2013 Bilder von Andy http://abartfoto.de/Sitzung_2013/ !Orschler Kerb Brassbandvideo http://www.youtube.com/watch?v=GDlXxFj7A6Y&feature=relmfu !!KR on Tour 2012 - Rushmoor Bilder online Samantha Ruppel: https://picasaweb.google.com/105981899721019328477/England2012_1?authkey=Gv1sRgCKuO99WA_JfHQQ&feat=email# !!Zug 2012 http://www.youtube.com/user/videowolfi http://www.youtube.com/watch?v=INOfykI8Jc0 (Vereins Kunstgriff) http://www.youtube.com/watch?v=jLXsJPf5DII (Müllerleihe) http://www.youtube.com/watch?v=DYh98ENxXm4 http://www.youtube.com/watch?v=XBwp00K4dCU (Frohsinnsänger unter Beobachtung) Frankfurter Rundschau http://www.fr-online.de/fastnacht-in-rhein-main,11633356,11669762.html Taunus-Zeiltung http://www.fnp.de/tz/region/lokales/vordertaunus/da-bebt-ganz-orschel-50000-feiern-fassenacht_rmn01.c.9615101.de.html# Rainer Guth: https://picasaweb.google.com/guth.vision/2012KarnevalsZugOberuselKleinerRat?authuser=0&authkey=Gv1sRgCOybgK_dlOj5GA&feat=directlink http://www.allthingsgerman.net/ticker/oberursel/2012/02/carnival-2012-kv-frohsinn/ !!Oase http://www.abartfoto.de/oase2012 !!Rathaussturm 2012 http://www.youtube.com/user/videowolfi http://www.oberursel.de/nc/tourismus/information/oberursel-videos/rathaussturm http://www.oberursel.de/uploads/tx_nonverblasterflashplayer/rathaussturm_2012.flv http://www.youtube.com/watch?v=HwWP4of2aoE !!Hexensitzung 2012 Online-Bilder Andy: http://www.abartfoto.de/Hexen2012/ !!Prunksitzungen 2012 Bildergalerie von Andy Breitbart: http://www.abartfoto.de/Prunksitzung2012/ Video von Auftritt der Minnis: http://www.youtube.com/watch?v=TQsGw1554zM !!Frohsinn Ballett Video von Auftritt in ??? http://www.youtube.com/watch?v=9kDIcuHVoJ8 !!Eröffnung der Kampagne 2011/2012 Online-Bilder: https://picasaweb.google.com/107494301919399610359/2011EroffnungDerKampagne?authuser=0&authkey=Gv1sRgCPrTx6-fgNuNZQ&feat=directlink !!Woodstock Party 24.09.11 erste Bilder: https://picasaweb.google.com/guth.vision/Woodstockparty2011?authuser=0&authkey=Gv1sRgCMPgrLm6n9uAJA&feat=directlink http://www.pzwoherborn.de/veranstaltung-eintragen/details/1439-candy-from-a-stranger-live-in-oberursel.html !!JHV Mi 14.09.11 Von: rainerguth@t-online.de An: Neuhäuser, Daniela Betreff: Re: Mailadresse Frohsinn Datum: 21.09.2011, 09:52 Guten Morgen Dani, wird prompt erledigt. Zur Info: eine Domain "www.frohsinn.de" haben wir leider nicht. nur www.karnevalverein-frohsinn.de und www.frohsinn-oberursel.de Desweiteren bitte um Terminklärung der Kinder-Mitmach-Sitzung. Welcher Termin ist richtig ? 12.02.11 oder 18.02.11 LG Rainer Von: "Neuhaeuser, Daniela" <daniela.neuhaeuser@oberursel.de> An: <rainerguth@t-online.de> Cc: "Remes, Stephan" <stephan.remes@oberursel.de>, "Elke Dietz" <Elke.Dietz@barth-galvanik.de>, "Michael Kukuruzovic" <mkukuruzovic@daytonprogress.de>, <gerd.kraemer@email.de> Betreff: Mailadresse Frohsinn Datum: Wed, 21 Sep 2011 08:17:53 +0200 Hallo Rainer, wir hatten gestern eine Arbeitssitzung mit dem neuen und alten Geschäftsführenden Vorstand um die Übergabedinge zu klären. Nimm doch bitte die Elke aus dem System unserer Internetmailadresse raus. Bitte leite die Mails von info@frohsinn.de in Zukunft an die Mailadresse von Gerd weiter: gerd.kraemer@email.de gleichzeitig kannst du bitte die Mailadresse festausschuss@frohsinn.de löschen. Danke und liebe Grüße Dani !!Frohsinn Brunnenfest Presentation für Sponsoren, Senatoren ect. * Grundriss Vereinshausgelände mit den eingezeichneten Hütten ect * 360 grad Bild mit eingeblendeten Häusern wie Altes Rathaus, Schwanen ect. __Online:__ http://www.fbparty.de/brunnenfest-beim-frohsinn-i174262.html ''__ONLINE BILDER__'' http://www.oberurselerstadtkurier.de/startseite/bildergalerie/bilder-vom-jubiläumsfest-2011-des-kv-frohsinn/ http://oberurselerstadtkurier.de/startseite/bildergalerie/bilder-vom-jubil%C3%A4umsfest-2011-des-kv-frohsinn/ http://www.facetoface-online.de/#Mainpagehttp://oberurselerstadtkurier.de/startseite/bildergalerie/bilder-vom-jubil%C3%A4umsfest-2011-des-kv-frohsinn/ !!Hessentag 2011 __Auftritte beim Hessentag:__ Freitag, 10. Juni 2011: Karneval-Verein Frohsinn 1890 mit dem Frohsinn-Ballett und den „Minis“ 17:00 Uhr bis 19:30 Uhr, Süwag-Bühne, Weindorf, Rushmoor-Park Samstag, 11. Juni 2011 Brassband und Jugendbrassband des Karnevalvereins Frohsinn 1890 15:00 Uhr bis 16:00 Uhr, Raiffeisenbank Oberursel-Bühne, Platz der Vereine, Marktplatz Video: Hessentagspärchen in Oberursel http://www.youtube.com/watch?v=FlLExph5aQo http://www.youtube.com/watch?v=5usMxOwGpog&feature=related Video: Orschel by running http://www.youtube.com/watch?v=0Roly3EMe1U Grillstand Einsatzplan online: http://www.karnevalverein-frohsinn.de/html/hessentageinsatzplan.html http://www.youtube.com/watch?v=eoLwj52BpqE !!Frohsinn-Ballett Das Ballett hat am Samstag (4.6.11) in Mannheim die Deutsche Meisterschaft im Showtanz gewonnen Deutsche DAT Meisterschaften (Offen & Geschlossen) & WDCAL International Dance Masters Mannheim __~Online-Bilder:__ http://www.deutsches-amateur-turnieramt.de/bilder-der-mmotion-2011 http://www.deutsches-amateur-turnieramt.de/images/stories/bilder/galerie/110605motions2011/bdt_m-motion_173.jpg http://www.deutsches-amateur-turnieramt.de/images/stories/bilder/galerie/110605motions2011/bdt_m-motion_174.jpg http://www.deutsches-amateur-turnieramt.de/images/stories/bilder/galerie/110605motions2011/bdt_m-motion_175.jpg http://www.deutsches-amateur-turnieramt.de/images/stories/bilder/galerie/110605motions2011/bdt_m-motion_176.jpg http://www.m-motion-mannheim.de/index.html __Texte:__ DAT Meisterschaften und International Dance Masters Mannheim ist seit langem schon ein Mekka für ~Tanz-Enthusiasten aus aller Welt. Nach den sensationellen Erfolgen 2007, 2008, 2009 und 2010 freuen wir uns, Sie auch 2011 nach Mannheim einladen zu dürfen. 4. und 5. Juni 2011 Congress Center Rosengarten Mannheim (Germany) Ganz gleich, welchem Verband oder welcher Organisation Sie auch angehören, unsere Turniere stehen, ganz dem Olympischen Gedanken folgend, jedem Tanzsportler offen. m)))motion ist "open to the world". Sie erwartet nicht einfach ein herkömmliches Turnier. Sie nehmen teil an einem wahren Fest des Tanzes: über 100 Turniere in verschiedenen Disziplinen, International Dance Masters, mannigfaltige Opens Amateure in verschiedenenen Altersklassen aus aller Welt und junge, dynamische Disziplinen wie HipHop, Salsa oder Discofox. International renommierte Wertungsrichter warten genauso auf Sie wie das begeisterungsfähige Mannheimer Publikum. Das International Dance Festival m)))motion 2011 wird wieder ein Ereignis voller kultureller Vielfalt und mitreißendem Esprit. !!Karnevalszug Oberursel 2011 http://www.hessentag2011.de/home/aktuell/videos-2011/index.html http://www.youtube.com/watch?v=NYtw_0mG http://www.youtube.com/watch?v=G9zC2JG-stw http://www.youtube.com/watch?v=4M_7ol5BM3Y http://www.youtube.com/watch?v=NYtw_0mGpnk http://www.myheimat.de/oberursel/kultur/taunuskarneval-mit-dem-hessentagsteam-d1529852.html http://www.oberurselerstadtkurier.de/startseite/bildergalerie/bilder-vom-taunus-karnevals-zug-2011/ http://www.fr-online.de/rhein-main/bad-homburg/fotostrecken-bad-homburg/-/4352214/7767632/-/index.html !!Rathhaussturm 2011 http://www.hessentag2011.de/home/aktuell/videos-2011/index.html http://www.youtube.com/watch?v=WdeDGThyacw&feature=related http://www.youtube.com/watch?v=5hDeCxC5vAM http://www.youtube.com/watch?v=NYtw_0mGpnk&feature=related !!~Prunk-Sitzungen Brassband: http://www.youtube.com/watch?v=D3_w7dOpvM8 ~Slideshow-Sitzungen 2011: http://www.youtube.com/watch?v=pxAFjHKDXMU !!Hausparty "oase reloaded" Gruppe: WEAP http://www.werners-partyband.de/ !!~Kinder-Mitmach-Sitzung !!Grand Prix der strammen Waden" http://www.osthessen-news.de/beitrag_H.php?id=1194354 http://www.osthessen-news.de/beitrag_H.php?id=1194360 Bitte , bitte an alle die mit in Fulda waren, keine Infos weitergeben über das Abschneiden unseres Männerballettes beim Grand Prix der Strammen Waden. Es wäre Schade für unsere Rosenmontags Party im Rühl, wo wir doch alle gespannt sind, wer der Sieger ist!!! Nur so viel vorab. Unser Männerballett, hat sich super geschlagen, klasse getanzt und Oberursel aufs Feinste vertreten. Über 100 Hundert Fans waren begeistert, Prinz Freddy mit Hofstaat war aus dem Häuschen. Ich bedanke mich für diese Superleistung bei allen Tänzern und vor allem bei den sicherlich genervten aber absolut erfolgreichen Betreuerinnen für ihre Leistung, einen generationsüberschreitenden „Männerhaufen“ zur Höchstleistung zu führen ! Herzlichen Dank Euer Jörg Wer nun bei dem großen "Grand Prix 2011" gewonnen hat, sehen Sie am Rosenmontag (7. März) ab 22:45 Uhr im TV-Programm des Hessischen Rundfunks (HR). Die Siegermannschaften stehen zwar schon fest, aber "osthessen-news" will - nach entsprechenden Absprachen mit der hr-Produktionsleitung - die Spannung bei den Zuschauern bis zur Ausstrahlung halten. Deswegen berichten wir am Fastnachtsdienstag noch einmal ausführlich mit den Siegerbildern vom "Grand Prix der strammen Waden" aus der osthessischen Narrenhochburg. !Orschel http://www.buddlet.de/oberursel/ !!Videos über Orschel http://www.youtube.com/watch?v=tWNtPQogHYs http://www.youtube.com/watch?v=d2Yy1NRpFbc&feature=related http://tripwow.tripadvisor.it/slideshow/germany/oberursel-taunus.html |Hessentagslied|http://www.youtube.com/watch?v=Mhpbh3e3dMg&feature=related| |Hessentag 2011 Oberursel Film|http://www.youtube.com/watch?v=iDT7r1FRhqo| |Oberursel und der Taunus - Geschichten aus Hessen - Hessischer Rundfunk|http://www.youtube.com/watch?v=RSxUFhrEjuA| |Bilderbuch (HR): Oberursel und der Taunus (1 von 3)|http://www.youtube.com/watch?v=90Josw7tj9E|2011| |Bilderbuch (HR): Oberursel und der Taunus (2 von 3)|http://www.youtube.com/watch?v=nErJouFy8Nc| |Bilderbuch (HR): Oberursel und der Taunus (3 von 3)|http://www.youtube.com/watch?v=rLd_MY3AZHc| |Orschel is ...|(Minirockmemographie zweier Cousins (Ochs'nOchs) der schönsten Stadt der Welt:|http://www.youtube.com/watch?v=mLF_K3gyn8I| |2010-Imagefilm der Stadt:|http://www.oberursel.de/tourismus/information/oberursel-im-film| |St.Ursula - Glockengeläut|http://www.youtube.com/watch?v=nnDeJKHBjSc| |dito...|http://www.youtube.com/watch?v=u1opAHjuov8| --- [[Nach oben...|Neues 1]]
|[[Der Frohsinn]]|[[Veranstaltungen]]|[[Bühnenaktive]]|[[Chronik]]| --- |[[Chronik]]|[[Chronik-Übersicht]]| --- [img[https://www.karnevalverein-frohsinn.de/kleinerrat/assets/images/ohlenspiegel_02_200.jpg]] !Der Ohlenspiegel Er wurde von Hendoc geschaffen und zeigt zwei Gesichter von Heinz Ohl – lachend und ernst, getrennt durch einen Spiegel (als Zeichen der Ambivalenz der Fassenacht). Der „OHLENSPIEGEL“ wurde von RA & Notar Bernhard Kempermann gestiftet. Dieser Preis wird jährlich an die Gruppe verliehen, die am besten ein kommunalpolitisches Thema umgesetzt hat. Dadurch wird an den 1995 (oder war es 1996?) zu früh verstorbenen Orscheler Ur-Karnevalisten erinnert. <br> |!Info zu Heinz Ohl:|[[Personen]]| --- |[[Chronik-Übersicht]]| |[[Chronik]]|[[Prunk-Sitzungen]]|[[Aktiven-Orden]]|[[Orscheler Karnevalsschlager]]| |[[Präsidenten & Vorstand]]|[[Fastnachtszüge]]|[[Vereins-Fahne]]|[[Fassenachts-Brunnen ]]| |[[Sitzungspräsidenten]]|[[Ohlenspiegel]]|[[Publikationen]]|[[Fassenacht]]| |[[Personen]]|[[Tollitäten]]|[[Vereinshaus]]|[[Oberursel]]| --- |[[Der Frohsinn]]|[[Veranstaltungen]]|[[Bühnenaktive]]|[[Chronik]]|
! ARCHIV des Karnevalverein Frohsinn 1890 e.V. --- |[[Archiv]]| |[[Multimedia-Online]]|[[Multimedia-Fotogalerien]]|[[Multimedia-Videos]]|[[Multimedia-Sounds]]| |[[Online-Seiten bei HP Frohsinn]]| --- !Online-Seiten bei HP Frohsinn |!https://www.karnevalverein-frohsinn.de| !Daten auf der Homepage *dir *.html *dir *.galerie *dir *.gallery *dir *.pdf --- !dir *.html https://www.karnevalverein-frohsinn.de/html/vf-ak_altt.html<br> https://www.karnevalverein-frohsinn.de/html/vf-akt_alt_video.html<br> https://www.karnevalverein-frohsinn.de/html/vf-akt_elke.html<br> https://www.karnevalverein-frohsinn.de/html/vf-akt_umleitung-html5.html<br> https://www.karnevalverein-frohsinn.de/html/vf-akt-11x11-brunnenfest.html<br> https://www.karnevalverein-frohsinn.de/html/vf-akt-11x11.html<br> https://www.karnevalverein-frohsinn.de/html/vf-akt-11x11aktionen.html<br> https://www.karnevalverein-frohsinn.de/html/vf-akt-11x11festausschuss.html<br> https://www.karnevalverein-frohsinn.de/html/vf-akt-11x11quiz.html<br> https://www.karnevalverein-frohsinn.de/html/vf-akt-11x11zeitung.html<br> https://www.karnevalverein-frohsinn.de/html/vf-akt-berichte.html<br> https://www.karnevalverein-frohsinn.de/html/vf-akt-berichte09michelle.html<br> https://www.karnevalverein-frohsinn.de/html/vf-akt-berichte10brunnenkoenig.html<br> https://www.karnevalverein-frohsinn.de/html/vf-akt-berichte10brunnenkoenigin2010.htm https://www.karnevalverein-frohsinn.de/html/vf-akt-berichte11jhv.html<br> https://www.karnevalverein-frohsinn.de/html/vf-akt-berichte11jubilaeum.html<br> https://www.karnevalverein-frohsinn.de/html/vf-akt-berichte11khbart.html<br> https://www.karnevalverein-frohsinn.de/html/vf-akt-berichte11kurtriedel.html<br> https://www.karnevalverein-frohsinn.de/html/vf-akt-berichte11musical.html<br> https://www.karnevalverein-frohsinn.de/html/vf-akt-berichte11strammewaden.html<br> https://www.karnevalverein-frohsinn.de/html/vf-akt-berichte12-saenger.html<br> https://www.karnevalverein-frohsinn.de/html/vf-akt-berichte12gemeinsamakti.html<br> https://www.karnevalverein-frohsinn.de/html/vf-akt-berichte12gemeinsamaktiv.html<br> https://www.karnevalverein-frohsinn.de/html/vf-akt-berichte12khbarth.html<br> https://www.karnevalverein-frohsinn.de/html/vf-akt-berichte12krontour.html<br> https://www.karnevalverein-frohsinn.de/html/vf-akt-berichte12ordensfest.html<br> https://www.karnevalverein-frohsinn.de/html/vf-akt-berichte13-ordensfest.html<br> https://www.karnevalverein-frohsinn.de/html/vf-akt-berichte13-portefaix.html<br> https://www.karnevalverein-frohsinn.de/html/vf-akt-berichte14-bk.html<br> https://www.karnevalverein-frohsinn.de/html/vf-akt-berichte14-kr1.html<br> https://www.karnevalverein-frohsinn.de/html/vf-akt-berichte14-ordensfest.html<br> https://www.karnevalverein-frohsinn.de/html/vf-akt-berichte15-ordensfest.html<br> https://www.karnevalverein-frohsinn.de/html/vf-akt-berichte16-jhv.html<br> https://www.karnevalverein-frohsinn.de/html/vf-akt-berichte17-musicalnacht.html<br> https://www.karnevalverein-frohsinn.de/html/vf-akt-berichte19-ordensfest.html<br> https://www.karnevalverein-frohsinn.de/html/vf-akt-berichte19-rosawoelkchen.html<br> https://www.karnevalverein-frohsinn.de/html/vf-akt-berichte20-rosawoelkchen.html<br> https://www.karnevalverein-frohsinn.de/html/vf-akt-bfest-personalplan.html<br> https://www.karnevalverein-frohsinn.de/html/vf-akt-bfest2012einsatzplan.html<br> https://www.karnevalverein-frohsinn.de/html/vf-akt-facebook.html<br> https://www.karnevalverein-frohsinn.de/html/vf-akt-gaestefotos1.html<br> https://www.karnevalverein-frohsinn.de/html/vf-akt-gaestefotos2.html<br> https://www.karnevalverein-frohsinn.de/html/vf-akt-gaestefotos3.html<br> https://www.karnevalverein-frohsinn.de/html/vf-akt-hausparty2011.html<br> https://www.karnevalverein-frohsinn.de/html/vf-akt-hessentag2011.html<br> https://www.karnevalverein-frohsinn.de/html/vf-akt-kalender2011.html<br> https://www.karnevalverein-frohsinn.de/html/vf-akt-onlineticket1.html<br> https://www.karnevalverein-frohsinn.de/html/vf-akt-onlineticket2.html<br> https://www.karnevalverein-frohsinn.de/html/vf-akt-presse_alt.html<br> https://www.karnevalverein-frohsinn.de/html/vf-akt-presse.html<br> https://www.karnevalverein-frohsinn.de/html/vf-akt-presse2007-08-remes.html<br> https://www.karnevalverein-frohsinn.de/html/vf-akt-presse2007-08.html<br> https://www.karnevalverein-frohsinn.de/html/vf-akt-presse2008-09.html<br> https://www.karnevalverein-frohsinn.de/html/vf-akt-presse2009-10.html<br> https://www.karnevalverein-frohsinn.de/html/vf-akt-presse2010-11.html<br> https://www.karnevalverein-frohsinn.de/html/vf-akt-presse2010-111.html<br> https://www.karnevalverein-frohsinn.de/html/vf-akt-presse2011-12.html<br> https://www.karnevalverein-frohsinn.de/html/vf-akt-presse2012-13.html<br> https://www.karnevalverein-frohsinn.de/html/vf-akt-presse2013-14.html<br> https://www.karnevalverein-frohsinn.de/html/vf-akt-presse2014-15.html<br> https://www.karnevalverein-frohsinn.de/html/vf-akt-presse2015-16.html<br> https://www.karnevalverein-frohsinn.de/html/vf-akt-presse2016-17.html<br> https://www.karnevalverein-frohsinn.de/html/vf-akt-presse2017-18.html<br> https://www.karnevalverein-frohsinn.de/html/vf-akt-presse2018-19.html<br> https://www.karnevalverein-frohsinn.de/html/vf-akt-presse2019-20.html<br> https://www.karnevalverein-frohsinn.de/html/vf-akt-strammewaden.html<br> https://www.karnevalverein-frohsinn.de/html/vf-akt-termine_alt.html<br> https://www.karnevalverein-frohsinn.de/html/vf-akt-termine_onlineanmeldung.html<br> https://www.karnevalverein-frohsinn.de/html/vf-akt-termine.html<br> https://www.karnevalverein-frohsinn.de/html/vf-akt.html<br> https://www.karnevalverein-frohsinn.de/html/vf-aktalt.html<br> https://www.karnevalverein-frohsinn.de/html/vf-az.html<br> https://www.karnevalverein-frohsinn.de/html/vf-chronik-2011-vfbrunnenfest.html<br> https://www.karnevalverein-frohsinn.de/html/vf-chronik-2011-vfbrunnenfest1.html<br> https://www.karnevalverein-frohsinn.de/html/vf-chronik-2011-vfbrunnenfest2.html<br> https://www.karnevalverein-frohsinn.de/html/vf-datenschutz.html<br> https://www.karnevalverein-frohsinn.de/html/vf-disclaimer.html<br> https://www.karnevalverein-frohsinn.de/html/vf-fassenacht-brunnen.html<br> https://www.karnevalverein-frohsinn.de/html/vf-fassenacht-brunnen1.html<br> https://www.karnevalverein-frohsinn.de/html/vf-fassenacht-brunnen2.html<br> https://www.karnevalverein-frohsinn.de/html/vf-fassenacht-brunnen3.html<br> https://www.karnevalverein-frohsinn.de/html/vf-fassenacht-links.html<br> https://www.karnevalverein-frohsinn.de/html/vf-fassenacht-news.html<br> https://www.karnevalverein-frohsinn.de/html/vf-fassenacht-orden.html<br> https://www.karnevalverein-frohsinn.de/html/vf-fassenacht-prinzen_alt.html<br> https://www.karnevalverein-frohsinn.de/html/vf-fassenacht-prinzen.html<br> https://www.karnevalverein-frohsinn.de/html/vf-fassenacht-schlager.html<br> https://www.karnevalverein-frohsinn.de/html/vf-fassenacht.html<br> https://www.karnevalverein-frohsinn.de/html/vf-gaerie-2015-11-11-tsk_video.html<br> https://www.karnevalverein-frohsinn.de/html/vf-gaerie-2015-11-11-tsk.html<br> https://www.karnevalverein-frohsinn.de/html/vf-gaerie-2015kampagnenstart.html<br> https://www.karnevalverein-frohsinn.de/html/vf-gaestebuch.html<br> https://www.karnevalverein-frohsinn.de/html/vf-galerie_alt.html<br> https://www.karnevalverein-frohsinn.de/html/vf-galerie-2010brunnenfest.html<br> https://www.karnevalverein-frohsinn.de/html/vf-galerie-2010exprinzenausflu.html<br> https://www.karnevalverein-frohsinn.de/html/vf-galerie-2010exprinzenausflug.html<br> https://www.karnevalverein-frohsinn.de/html/vf-galerie-2010hessentag.html<br> https://www.karnevalverein-frohsinn.de/html/vf-galerie-2010krsi.html<br> https://www.karnevalverein-frohsinn.de/html/vf-galerie-2010prinzeninthro.html<br> https://www.karnevalverein-frohsinn.de/html/vf-galerie-2010vfopen.html<br> https://www.karnevalverein-frohsinn.de/html/vf-galerie-2011gaestefotos.html<br> https://www.karnevalverein-frohsinn.de/html/vf-galerie-2011gaestefotos1.html<br> https://www.karnevalverein-frohsinn.de/html/vf-galerie-2011gaestefotos2.html<br> https://www.karnevalverein-frohsinn.de/html/vf-galerie-2011gaestefotos3.html<br> https://www.karnevalverein-frohsinn.de/html/vf-galerie-2011hessentaggrills.html<br> https://www.karnevalverein-frohsinn.de/html/vf-galerie-2011hessentaggrillstand.html<br> https://www.karnevalverein-frohsinn.de/html/vf-galerie-2011hessentagzug.html<br> https://www.karnevalverein-frohsinn.de/html/vf-galerie-2011hexensitzung.html<br> https://www.karnevalverein-frohsinn.de/html/vf-galerie-2011kindersitzung.html<br> https://www.karnevalverein-frohsinn.de/html/vf-galerie-2011ordensfest.html<br> https://www.karnevalverein-frohsinn.de/html/vf-galerie-2011prinzengala.html<br> https://www.karnevalverein-frohsinn.de/html/vf-galerie-2011prinzeninthro.html<br> https://www.karnevalverein-frohsinn.de/html/vf-galerie-2011prunksitzung-impress.html<br> https://www.karnevalverein-frohsinn.de/html/vf-galerie-2011strammewaden.html<br> https://www.karnevalverein-frohsinn.de/html/vf-galerie-2011vfbrunnenfest.html<br> https://www.karnevalverein-frohsinn.de/html/vf-galerie-2011vfopen.html<br> https://www.karnevalverein-frohsinn.de/html/vf-galerie-2011vfsi.html<br> https://www.karnevalverein-frohsinn.de/html/vf-galerie-2011vfsislideshow.html<br> https://www.karnevalverein-frohsinn.de/html/vf-galerie-2011zug.html<br> https://www.karnevalverein-frohsinn.de/html/vf-galerie-2011zugvideo.html<br> https://www.karnevalverein-frohsinn.de/html/vf-galerie-2012hexensitzung.html<br> https://www.karnevalverein-frohsinn.de/html/vf-galerie-2012krsitzung.html<br> https://www.karnevalverein-frohsinn.de/html/vf-galerie-2012mw-aia.html<br> https://www.karnevalverein-frohsinn.de/html/vf-galerie-2012oase.html<br> https://www.karnevalverein-frohsinn.de/html/vf-galerie-2012open.html<br> https://www.karnevalverein-frohsinn.de/html/vf-galerie-2012prunkditzungen.html<br> https://www.karnevalverein-frohsinn.de/html/vf-galerie-2012prunksitzungen.html<br> https://www.karnevalverein-frohsinn.de/html/vf-galerie-2012prunksitzungen2.html<br> https://www.karnevalverein-frohsinn.de/html/vf-galerie-2012zug.html<br> https://www.karnevalverein-frohsinn.de/html/vf-galerie-2013hexensitzung.html<br> https://www.karnevalverein-frohsinn.de/html/vf-galerie-2013krsitzung.html<br> https://www.karnevalverein-frohsinn.de/html/vf-galerie-2013open.html<br> https://www.karnevalverein-frohsinn.de/html/vf-galerie-2013open2.html<br> https://www.karnevalverein-frohsinn.de/html/vf-galerie-2013prunksitzung.html<br> https://www.karnevalverein-frohsinn.de/html/vf-galerie-2013zug.html<br> https://www.karnevalverein-frohsinn.de/html/vf-galerie-2014ausrufderfastnacht.html<br> https://www.karnevalverein-frohsinn.de/html/vf-galerie-2014brunnenfest.html<br> https://www.karnevalverein-frohsinn.de/html/vf-galerie-2014oasereloaded.html<br> https://www.karnevalverein-frohsinn.de/html/vf-galerie-2014prinzeninthro.html<br> https://www.karnevalverein-frohsinn.de/html/vf-galerie-2014prunksitzung-ba.html<br> https://www.karnevalverein-frohsinn.de/html/vf-galerie-2014prunksitzung-sa.html<br> https://www.karnevalverein-frohsinn.de/html/vf-galerie-2014prunksitzung.html<br> https://www.karnevalverein-frohsinn.de/html/vf-galerie-2014rathaussturm.html<br> https://www.karnevalverein-frohsinn.de/html/vf-galerie-2014vfopen.html<br> https://www.karnevalverein-frohsinn.de/html/vf-galerie-2014zug.html<br> https://www.karnevalverein-frohsinn.de/html/vf-galerie-2014zug1.html<br> https://www.karnevalverein-frohsinn.de/html/vf-galerie-2015festkommers.html<br> https://www.karnevalverein-frohsinn.de/html/vf-galerie-2015hausparty.html<br> https://www.karnevalverein-frohsinn.de/html/vf-galerie-2015hexensitzung.html<br> https://www.karnevalverein-frohsinn.de/html/vf-galerie-2015jubi-familientag.html<br> https://www.karnevalverein-frohsinn.de/html/vf-galerie-2015jubi-familientag2.html<br> https://www.karnevalverein-frohsinn.de/html/vf-galerie-2015jubi-musicalgala.html<br> https://www.karnevalverein-frohsinn.de/html/vf-galerie-2015jubi-musicalgala2.html<br> https://www.karnevalverein-frohsinn.de/html/vf-galerie-2015jubi-schlagerparty.html<br> https://www.karnevalverein-frohsinn.de/html/vf-galerie-2015jubi-schlagerparty2.html<br> https://www.karnevalverein-frohsinn.de/html/vf-galerie-2015kimasi.html<br> https://www.karnevalverein-frohsinn.de/html/vf-galerie-2015ordensfest.html<br> https://www.karnevalverein-frohsinn.de/html/vf-galerie-2015prunksitzung.html<br> https://www.karnevalverein-frohsinn.de/html/vf-galerie-2015rathaussturm.html<br> https://www.karnevalverein-frohsinn.de/html/vf-galerie-2015vfopen.html<br> https://www.karnevalverein-frohsinn.de/html/vf-galerie-2015vfopen2.html<br> https://www.karnevalverein-frohsinn.de/html/vf-galerie-2015zug.html<br> https://www.karnevalverein-frohsinn.de/html/vf-galerie-2015zug1.html<br> https://www.karnevalverein-frohsinn.de/html/vf-galerie-2015zug2.html<br> https://www.karnevalverein-frohsinn.de/html/vf-galerie-2015zug3.html<br> https://www.karnevalverein-frohsinn.de/html/vf-galerie-2015zug5.html<br> https://www.karnevalverein-frohsinn.de/html/vf-galerie-2016hausparty.html<br> https://www.karnevalverein-frohsinn.de/html/vf-galerie-2016hexensitzung.html<br> https://www.karnevalverein-frohsinn.de/html/vf-galerie-2016inthronisation.html<br> https://www.karnevalverein-frohsinn.de/html/vf-galerie-2016ordensfest.html<br> https://www.karnevalverein-frohsinn.de/html/vf-galerie-2016prunksitzung.html<br> https://www.karnevalverein-frohsinn.de/html/vf-galerie-2016vfopen.html<br> https://www.karnevalverein-frohsinn.de/html/vf-galerie-2016zug.html<br> https://www.karnevalverein-frohsinn.de/html/vf-galerie-2017hausparty.html<br> https://www.karnevalverein-frohsinn.de/html/vf-galerie-2017hexensitzung.html<br> https://www.karnevalverein-frohsinn.de/html/vf-galerie-2017kimasi.html<br> https://www.karnevalverein-frohsinn.de/html/vf-galerie-2017musicalnacht.html<br> https://www.karnevalverein-frohsinn.de/html/vf-galerie-2017ordensfest.html<br> https://www.karnevalverein-frohsinn.de/html/vf-galerie-2017prunksitzung.html<br> https://www.karnevalverein-frohsinn.de/html/vf-galerie-2017vfopen.html<br> https://www.karnevalverein-frohsinn.de/html/vf-galerie-2017zug-kr.html<br> https://www.karnevalverein-frohsinn.de/html/vf-galerie-2017zug.html<br> https://www.karnevalverein-frohsinn.de/html/vf-galerie-2018ordensfest.html<br> https://www.karnevalverein-frohsinn.de/html/vf-galerie-2018prunksitzung.html<br> https://www.karnevalverein-frohsinn.de/html/vf-galerie-2018zug.html<br> https://www.karnevalverein-frohsinn.de/html/vf-galerie-2019oase.html<br> https://www.karnevalverein-frohsinn.de/html/vf-galerie-2019prunksitzung.html<br> https://www.karnevalverein-frohsinn.de/html/vf-galerie-2019vfopen.html<br> https://www.karnevalverein-frohsinn.de/html/vf-galerie-2019zug-kr.html<br> https://www.karnevalverein-frohsinn.de/html/vf-galerie-2019zug.html<br> https://www.karnevalverein-frohsinn.de/html/vf-galerie-2020brunnenfest.html<br> https://www.karnevalverein-frohsinn.de/html/vf-galerie-2020ordensfest.html<br> https://www.karnevalverein-frohsinn.de/html/vf-galerie-2020prunksitzung.html<br> https://www.karnevalverein-frohsinn.de/html/vf-galerie.html<br> https://www.karnevalverein-frohsinn.de/html/vf-impressum_alt.html<br> https://www.karnevalverein-frohsinn.de/html/vf-impressum.html<br> https://www.karnevalverein-frohsinn.de/html/vf-jubilaeum123-vereinshaus.html<br> https://www.karnevalverein-frohsinn.de/html/vf-jubilaeum125-aktionen.html<br> https://www.karnevalverein-frohsinn.de/html/vf-jubilaeum125-bk.html<br> https://www.karnevalverein-frohsinn.de/html/vf-jubilaeum125-familientag.html<br> https://www.karnevalverein-frohsinn.de/html/vf-jubilaeum125-festausschuss.html<br> https://www.karnevalverein-frohsinn.de/html/vf-jubilaeum125-festschrift.html<br> https://www.karnevalverein-frohsinn.de/html/vf-jubilaeum125-hausparty.html<br> https://www.karnevalverein-frohsinn.de/html/vf-jubilaeum125-jubiwochenende.html<br> https://www.karnevalverein-frohsinn.de/html/vf-jubilaeum125-musicalgala.html<br> https://www.karnevalverein-frohsinn.de/html/vf-jubilaeum125-prinz.html<br> https://www.karnevalverein-frohsinn.de/html/vf-jubilaeum125-schlagerparty.html<br> https://www.karnevalverein-frohsinn.de/html/vf-jubilaeum125-sponsoren.html<br> https://www.karnevalverein-frohsinn.de/html/vf-jubilaeum125.html<br> https://www.karnevalverein-frohsinn.de/html/vf-kontakt.html<br> https://www.karnevalverein-frohsinn.de/html/vf-korp_alt.html<br> https://www.karnevalverein-frohsinn.de/html/vf-korp-ballett_alt.html<br> https://www.karnevalverein-frohsinn.de/html/vf-korp-ballett-impress.html<br> https://www.karnevalverein-frohsinn.de/html/vf-korp-ballett.html<br> https://www.karnevalverein-frohsinn.de/html/vf-korp-brassband.html<br> https://www.karnevalverein-frohsinn.de/html/vf-korp-damenrat.html<br> https://www.karnevalverein-frohsinn.de/html/vf-korp-ehrengarde.html<br> https://www.karnevalverein-frohsinn.de/html/vf-korp-elferrat.html<br> https://www.karnevalverein-frohsinn.de/html/vf-korp-exprinzen-data.html<br> https://www.karnevalverein-frohsinn.de/html/vf-korp-exprinzen.html<br> https://www.karnevalverein-frohsinn.de/html/vf-korp-grossegarde-data.html<br> https://www.karnevalverein-frohsinn.de/html/vf-korp-grossegarde.html<br> https://www.karnevalverein-frohsinn.de/html/vf-korp-kleinerrat.html<br> https://www.karnevalverein-frohsinn.de/html/vf-korp-konfetti.html<br> https://www.karnevalverein-frohsinn.de/html/vf-korp-maennerballett.html<br> https://www.karnevalverein-frohsinn.de/html/vf-korp-minis_alt.html<br> https://www.karnevalverein-frohsinn.de/html/vf-korp-minis-data.html<br> https://www.karnevalverein-frohsinn.de/html/vf-korp-minis.html<br> https://www.karnevalverein-frohsinn.de/html/vf-korp-prinzengarde.html<br> https://www.karnevalverein-frohsinn.de/html/vf-korp-saenger_alt.html<br> https://www.karnevalverein-frohsinn.de/html/vf-korp-saenger.html<br> https://www.karnevalverein-frohsinn.de/html/vf-korp-saengerX.html<br> https://www.karnevalverein-frohsinn.de/html/vf-korp-tanzgarde.html<br> https://www.karnevalverein-frohsinn.de/html/vf-korp-vortragende-data.html<br> https://www.karnevalverein-frohsinn.de/html/vf-korp-vortragende.html<br> https://www.karnevalverein-frohsinn.de/html/vf-korp.html<br> https://www.karnevalverein-frohsinn.de/html/vf-mobil-akt.html<br> https://www.karnevalverein-frohsinn.de/html/vf-netzwerk_branchen.html<br> https://www.karnevalverein-frohsinn.de/html/vf-netzwerk_mitglieder.html<br> https://www.karnevalverein-frohsinn.de/html/vf-netzwerk.html<br> https://www.karnevalverein-frohsinn.de/html/vf-presse-100315-tz.html<br> https://www.karnevalverein-frohsinn.de/html/vf-presse-100318-ow.html<br> https://www.karnevalverein-frohsinn.de/html/vf-presse-100329-tz1.html<br> https://www.karnevalverein-frohsinn.de/html/vf-presse-100329-tz2.html<br> https://www.karnevalverein-frohsinn.de/html/vf-pressestelle-archiv.html<br> https://www.karnevalverein-frohsinn.de/html/vf-pressestelle.html<br> https://www.karnevalverein-frohsinn.de/html/vf-start_impressionen.html<br> https://www.karnevalverein-frohsinn.de/html/vf-start-01.html<br> https://www.karnevalverein-frohsinn.de/html/vf-start.html<br> https://www.karnevalverein-frohsinn.de/html/vf-verein-chronik-1890.html<br> https://www.karnevalverein-frohsinn.de/html/vf-verein-chronik-1946.html<br> https://www.karnevalverein-frohsinn.de/html/vf-verein-chronik-2007-08.html<br> https://www.karnevalverein-frohsinn.de/html/vf-verein-chronik-2010-11.html<br> https://www.karnevalverein-frohsinn.de/html/vf-verein-chronik-2011-12.html<br> https://www.karnevalverein-frohsinn.de/html/vf-verein-chronik-2013-14.html<br> https://www.karnevalverein-frohsinn.de/html/vf-verein-chronik-2014-15.html<br> https://www.karnevalverein-frohsinn.de/html/vf-verein-chronik-2015-16.html<br> https://www.karnevalverein-frohsinn.de/html/vf-verein-chronik-2016-17.html<br> https://www.karnevalverein-frohsinn.de/html/vf-verein-chronik-2017-18.html<br> https://www.karnevalverein-frohsinn.de/html/vf-verein-chronik-2018-19.html<br> https://www.karnevalverein-frohsinn.de/html/vf-verein-chronik-2019-20.html<br> https://www.karnevalverein-frohsinn.de/html/vf-verein-chronik-prinz-2017.html<br> https://www.karnevalverein-frohsinn.de/html/vf-verein-chronik-prinz-2018.html<br> https://www.karnevalverein-frohsinn.de/html/vf-verein-chronik-prinzen_alt.html<br> https://www.karnevalverein-frohsinn.de/html/vf-verein-chronik-prinzen-Alt.html<br> https://www.karnevalverein-frohsinn.de/html/vf-verein-chronik-prinzen.html<br> https://www.karnevalverein-frohsinn.de/html/vf-verein-chronik-prinzen2006.html<br> https://www.karnevalverein-frohsinn.de/html/vf-verein-chronik-prinzen2011.html<br> https://www.karnevalverein-frohsinn.de/html/vf-verein-chronik-prinzen2011s.html<br> https://www.karnevalverein-frohsinn.de/html/vf-verein-chronik-prinzen2012.html<br> https://www.karnevalverein-frohsinn.de/html/vf-verein-chronik-prinzen2012s.html<br> https://www.karnevalverein-frohsinn.de/html/vf-verein-chronik-prinzvorschau.html<br> https://www.karnevalverein-frohsinn.de/html/vf-verein-chronik-publikatione.html<br> https://www.karnevalverein-frohsinn.de/html/vf-verein-chronik-publikationen.html<br> https://www.karnevalverein-frohsinn.de/html/vf-verein-chronik-stadtarchiv1.html<br> https://www.karnevalverein-frohsinn.de/html/vf-verein-chronik-vereinsfahne.html<br> https://www.karnevalverein-frohsinn.de/html/vf-verein-chronik-vereinsorden.html<br> https://www.karnevalverein-frohsinn.de/html/vf-verein-chronik.html<br> https://www.karnevalverein-frohsinn.de/html/vf-verein-downloads.html<br> https://www.karnevalverein-frohsinn.de/html/vf-verein-haus.html<br> https://www.karnevalverein-frohsinn.de/html/vf-verein-satzung.html<br> https://www.karnevalverein-frohsinn.de/html/vf-verein-senatoren_uralt.html<br> https://www.karnevalverein-frohsinn.de/html/vf-verein-senatoren-alt.html<br> https://www.karnevalverein-frohsinn.de/html/vf-verein-senatoren.html<br> https://www.karnevalverein-frohsinn.de/html/vf-verein-vorstand-2010.html<br> https://www.karnevalverein-frohsinn.de/html/vf-verein-vorstand-2014.html<br> https://www.karnevalverein-frohsinn.de/html/vf-verein-vorstand.html<br> https://www.karnevalverein-frohsinn.de/html/vf-verein.html<br> https://www.karnevalverein-frohsinn.de/html/vf-welt.html<br> https://www.karnevalverein-frohsinn.de/html/vfakt.html<br> --- Verzeichnis von <br>''www.karnevalverein-frohsinn.de\assets\galerie'' <br> DIR 2012-hexensitzung <br> DIR 2012-krrushmoor <br> DIR 2012-prunksitzungen <br> DIR 2012-vfsitzungen <br> DIR 2013-karnevalszug <br> DIR 2013-ordensfest <br> DIR 2013-vfopen <br> DIR 2013-vfopen2 <br> DIR 2015-prunksitzungen-impressionen <br> DIR 2016-kr-aia <br> DIR 2016-prunksitzungen-impressionen <br> DIR 2017-prunksitzungen-impressionen <br> DIR 2018-ordensfest <br> DIR chronik-19 <br> DIR chronik-1972-liederheft <br> DIR chronik-2001-festschrift111 <br> DIR chronik-2007-08 <br> DIR chronik-2010-11 <br> DIR chronik-2011-12 <br> DIR chronik-2011-festschrift121 <br> DIR chronik-2012-13 <br> DIR chronik-2013-14 <br> DIR chronik-2014-15 <br> DIR chronik-2015-16 <br> DIR chronik-2015-festschrift125 <br> DIR chronik-2016-17 <br> DIR chronik-prinzen <br> DIR chronik-vereinsorden <br> DIR galerie-zug2012 <br> DIR galerie-zug2013 <br> DIR korporationen <br> <br> --- Verzeichnis von <br>''www.karnevalverein-frohsinn.de\assets\gallery'' <br> DIR 2018-ordensfest <br> DIR 2018-zug-fb <br> DIR 2019-open <br> DIR 2020-ordensfest <br> DIR 2020-vf-brunnenfest <br> 2018-ordensfest.html <br> 2018-zug-fb.html <br> 2018-zug.html <br> 2019-open.html <br> 2020-ordensfest.html <br> 2020-vf-brunnenfest_mobil.html <br> 2020-vf-brunnenfest-ohneVideo.html <br> 2020-vf-brunnenfest.html <br> <br> --- !dir *.pdf Verzeichnis von <br>''www.karnevalverein-frohsinn.de\'' <br> 09-04-00-lz.pdf <br> 09-04-09-ow-kr.pdf <br> 09-05-11-tz-jhv.pdf <br> 09-05-28-Oberurseler_Woche_frohsinn.pdf <br> 09-06-10-tz-hessentagswagen.pdf <br> 09-09-09-tz-woodstockparty.pdf <br> 09-09-10-ow-woodstockparty.pdf <br> 09-09-29-tz-woodstockparty.pdf <br> 09-10-01-ow-woodstockparty.pdf <br> 09-10-12-tz-brassband.pdf <br> 09-10-15-ow-brassband.pdf <br> 09-11-16-tz-vfopen.pdf <br> 09-11-19-ow-kr-auf-grosser-fahrt.pdf <br> 09-11-24-tz-krsitzung.pdf <br> 09-11-26-ow-krsitzung.pdf <br> 10-01-14-ow-elferrat.pdf <br> 10-01-21-ow-ballett_kr_residenz.pdf <br> 10-01-28-ow-vfsitzung.pdf <br> 10-02-04-ow-schneeschippen.pdf <br> 10-02-04-ow-seniorensitzung.pdf <br> 10-02-11-ow-frohsinn-haiti.pdf <br> 10-02-11-ow-kleinerrat-wagen.pdf <br> 10-02-18-ow-kindersitzung.pdf <br> 10-02-18-ow-zug.pdf <br> 10-02-18-ow-zugpreise.pdf <br> 10-02-25-ow-ordensfest.pdf <br> 11-05-14-vf-aktuelles-hessentag-einsatzplan.pdf <br> 11-05-14-vf-aktuelles-hessentag.pdf <br> 11-05-14-vf-aktuelles-presse.pdf <br> 11-05-14-vf-aktuelles.pdf <br> 11-05-14-vf-galerie.pdf <br> 11-06-20-vf-aktuelles.pdf <br> 17-11-13-tz-prinz-karsten.pdf <br> 17-11-21-tz-frohsinn-open.pdf <br> 18-01-22-TZ-FrohsinnSitzung.pdf <br> 18-02-22-tz-ordensfest-frohsinn.pdf <br> 18-11-19-tz-frohsinn.pdf <br> 19-02-11-tz-frohsinn-sitzung.pdf <br> 19-09-07-tz-frohsinn-jhv.pdf <br> 19-10-10-ow-vorstand.pdf <br> 19-11-18-tz-kvf-open.pdf <br> 19-11-25-tz-kr-sitzung.pdf <br> 19-12-05-ow-kr-sitzung.pdf <br> 20-01-29-tz-frohsinn.pdf <br> 20-01-31-tz-frohsinnn-garde.pdf <br> 20-02-03-tz-frohsinnsitzung.pdf <br> 20-02-06-ow-frohsinnsitzung.pdf <br> 20-02-06-tz-kh-barth.pdf <br> 20-02-08-tz-kr-zugvorbereitungen.pdf <br> 20-02-27-ow-kr-zug.pdf <br> 20-02-27-ow-taunussparkasse.pdf <br> 2015taunussparkase-folder.pdf <br> 21-01-21-ow-frohsinn.pdf <br> 21-01-23-tz-frohsinn.pdf <br> 21-02-10-tz-frohsinn-tsk.pdf <br> 21-02-11-ow-frohsinn-tsk.pdf <br> 21-09-23-tz-frohsinn-jhv.pdf <br> 21-10-01-tz-jugendbrassband.pdf <br> 21-10-07-ow-frohsinn-jvh.pdf <br> KV-Frohsinn_Aufnahmeantrag.pdf <br> KV-Frohsinn_Einwilligungserklaerung-Internet.pdf <br> <br> --- [[Nach oben...|Online-Seiten bei HP Frohsinn]]
|![[Archiv]]||!Informatives |[[Pressearchiv]]|[[Vereinsfahne]]|[[Prinzen|Tollitäten]]|[[Orden]]|[[Vorstand]]|[[Satzung]]|[[Publikationen]]| | [[Der Frohsinn]] | --- --- !Die Vereinsorden des Verein Frohsinn !!Vereinsorden Der Verein verleiht jedes Jahr zum Ordensfest für besondere Leistung innerhalb der Vereinsarbeit den "Vereinsorden", der in seiner Gestaltung jährlich geändert wird. [img[Vereinsorden 2011|./data_pic/vereinsorden-2011.jpg]] [img[Vereinsorden 2010|./data_pic/vereinsorden-2010.jpg]][img[Vereinsorden 2009|./data_pic/vereinsorden-2009.jpg]] [img[Vereinsorden 2008|./data_pic/vereinsorden-2008.jpg]] Vereinsorden auf der Homepage: https://www.karnevalverein-frohsinn.de/html/kvf-info-orden.html<br> Vereinsorden auf der Classic- Homepage: https://www.karnevalverein-frohsinn.de/html/vf-verein-chronik-vereinsorden.html <br><br> !!Ritter vom "Goldenen Vlies" Die höchste Auszeichnung in der Fastnacht ist das "Goldene Vlies". Der Orden wurde im Jahre 1429 gestiftet und später von den Karnevalisten übernommen. Ursprünglich war er burgundischer, später dann bis 1918 österreichischer und anschließend bis zum Jahre 1931 ein hoher spanischer Orden. Die Narren dachten sich die Ordensverleiheung als Persiflage auf das höfische Zeremoniell in der Zeit vor der französischen Revolution. Der Verein Frohsinn verleicht diese hohe Auszeichnung an seine Aktiven nach 25-jähriger aktiver Vereinsarbeit. !!Goldene Flamme Die "Goldene Flamme"ist die zweithöchste Auszeichnung des Vereins und wird für 10-jährige aktive Vereinsarbeit verliehen. !!Prinzenorden Der Prinzenorden, in I. und II. Klasse eingeteilt, wird von dem jeweils amtierenden Taunus-Karneval-Prinzen an verdiente Mitglieder, sowie auch außenstehende Persönlichkeiten verliehen !!Korporations-Orden Daneben werden von den einzelnen Korporationen besondere Orden verliehen. Gardistenspange, Kleiner-Rats-Orden, Frohsinn-Sänger-Orden, Brassband-Orden ect. !!Silberen Flamme Die silberne Flamme wird nur an außenstehende Karneval-Freunde verliehen, als Dank für besondere Unterstützung unserer Vereinsarbeit <br> <br> !Vereins-Sonderorden: !!Ehrenorden des Karnevalverein Frohsinn Als erster Träger erhielt 1999 der frühere 1.Vorsitzende [[Eckard Dittmar]] diese Auszeichnung. !!Der Goldene Ehren Ring Für besondere Verdienste, die über den karnevalistischen Rahmen hinausgehen, verleiht der Verein den ''Goldenen Ehrenring'' Träger des Rings sind: [[Lorenz Caprano]], [[Friedel Fischer]], [[Max Reichel]]<br><br><br><br> --- !HINTERGRUND-INFO Karnevalsorden (regional auch: "Fastnachtsorden") sind Auszeichnungen, die in der Zeit des Karneval meist im Rahmen einer Prunksitzung vergeben werden. ''Geschichte'' Die Geschichte der Karnevalsorden begann mit dem organisierten Karneval in Köln. Dort wollten die Kölner sich gegen die preußische Obrigkeit auflehnen. Ursprünglich symbolisierte der Karnevalsorden eine Geringschätzung militärischen Benehmens und Pomps. Er stellte damals eine Persiflage auf die staatlichen und militärischen Orden, Schärpen und Brustbänder der Preußen dar. Aus alten Protokollen geht hervor, dass eine Karnevalsprinzessin im Jahre 1824 auf einem Besuch einen Orden mitbrachte und aus Dank ebenfalls einen Orden bekam. Alte Bilder zeigen bereits Sitzungspräsidenten, die viele Orden übereinandertrugen. Schon früh wurde Geschichte als Thema auf den Orden dargestellt. Im Laufe der Zeit wurden Themen wie Politik, Ortsgeschichte, Gebäude usw. aufgegriffen. Aber auch Zeitgeschichte wurde auf den Orden dargestellt. Selbst Persönlichkeiten aus Kirche, Politik und Karneval boten sich als Motiv an. Die Aussage der Orden variiert also bis heute zwischen Spott, graphischer Aussage und Ehrbezeugung. Heute ist der Orden ein fester Bestandteil des Karnevals geworden und Karnevalisten in den verschiedensten Karnevalshochburgen sehen ihn als Belohnung für ihr Engagement in der närrischen Zeit an. So hat der Orden, der anfangs als Persiflage gedacht war, seine ursprüngliche Bedeutung ins Gegenteil verkehrt. Im Rheinland werden die Karnevalsorden häufig von den Vereinen verkauft, um die Session zu finanzieren. In anderen Teilen Deutschlands (z. B. Hessen) werden sie ausschließlich für Verdienste um die Session verliehen. __''Ordensklassen:''__ ''Sessionsorden'' Der Sessionsorden wird eigens für das Jahr entworfen, in dem er vergeben wird. Er wird an Aktive eines Karnevalsvereins, oder lokale Prominente verliehen. ''Verbandsorden'' Der Verbandsorden wird an langjährige aktive Mitglieder eines dem jeweiligen Karnevalsverband angeschlossenen Vereins vergeben. Ebenso wie der Sessionsorden wird dieser jedes Jahr neu entworfen. Einzelpersonen, die Mitglied eines Verbandes sind, bekommen diesen Orden jedes Jahr ''Verdienstorden'' Der Verdienstorden wird an besonders verdiente Mitglieder eines dem vergebenden Karnevalsverband angeschlossenen Vereins vergeben. [img[Goldenes Flies|./data_pic/orden_Goldenes_Vlies_h300.jpg]]<br> ''Das Goldene Vlies''<br> Nach der griechischen Sage ist das „Goldene Vlies“ das Fell eines Widders, auf welchem Phrixos und Helle vor ihrer Stiefmutter Ino über den Hellespont flüchteten. Argonauten, Helden der griechischen Sage, fuhren unter der Führung Jasons mit dem Schiff Argo nach Kolchis am schwarzen Meer und holten mit Medeas Hilfe das von einem Drachen bewachte „Goldene Vlies“ nach Griechenland zurück. Das „Goldene Vlies“, seit 1429 höchster burgundischer Orden, von den Habsburgern als Erbe des burgundischen Reiches in Spanien bis 1931 und in Österreich bis 1918 verliehen, wurde später von karnevalistischen Vereinigungen als Persiflage auf das höfische Zeremoniell vor der französischen Revolution übernommen. Die Verleihung geht normalerweise mit dem Ritterschlag einher. <br> <br> [img[Goldene Flamme|./data_pic/orden_Goldene_Flamme_h200.jpg]] ''Die Goldene Flamme'' [img[Silberne Flamme|./data_pic/orden_Silberne_Flamme_h200.jpg]] ''Die Silberne Flamme'' <br> <br> ''Spezielle Orden''<br> Ein spezieller Orden wird jedes Jahr einmalig, in der Regel an eine ausgewählte Persönlichkeit, verliehen, welche die, dem speziellen Orden entsprechenden, Voraussetzung in besonderem Maße erfüllt hat. Die Verleihung wird zuweilen in einem regelrechten Staatsakt vorgenommen.<br> Quelle: Wikipedia <br> <br> --- --- [[Nach oben...|Orden]]
|[[Der Frohsinn]]|[[Veranstaltungen]]|[[Bühnenaktive]]|[[Chronik]]| |[[Chronik-Übersicht]]| --- !Orscheler Karnevalsschlager Musik: Georg Lang + 1953<br> Text: Fritz Bauer, gefallen 1940<br> [img[ |https://www.karnevalverein-frohsinn.de/assets/images/noten01.gif]] E Städtche lieht im Taunus drin,<br> Sein Name ist bekannt.<br> Die Faßnacht zieht do widder in<br> Wie ins gelobte Land.<br> Ihr wißt es all, ihr liewe Leut’,<br> Daß des nur Orschel is.<br> Drum kommt zu uns, ihr Fremde, heut,<br> Trinkt, lacht, liebt und genießt: __''Refrain:''__<br> Mer haww’n widder, den Karneval,<br> Heut hört mer’s lache iwwerall.<br> Mir Orschler sinn so froh!<br> Die Fassenacht is do. [img[ |https://www.karnevalverein-frohsinn.de/assets/images/noten01.gif]] Es lacht das Herz vor Fraude uns,<br> Was is denn nur gescheh?<br> Soviel Tara, soviel Gebumms<br> Hat Orschel nie geseh’!<br> Es freut sich alles, Groß und Klaa,<br> Mer sieht kaa mies Gesicht,<br> Die älteste Leut’ sin uff de Baa<br> un jeder davon spricht: __''Refrain:''__<br> Mer haww’n widder... [img[ |https://www.karnevalverein-frohsinn.de/assets/images/noten01.gif]] Im Klaaderschrank werd jetzt gewüihlt,<br> Dehaam steht alles Kopp,<br> Jed’ Stickche Stoff des werd befiehlt,<br> Selbst’s Klaadche von de Bopp.<br> Die scheenste Sticker wer’n geschnappt,<br> Dann werd’ gleich aaprowiert,<br> E Hietche uff de Kopp gebabbt,<br> Des geht der wie geschmiert.<br> __''Refrain:''__<br> Mer haww’n widder... [img[ |https://www.karnevalverein-frohsinn.de/assets/images/noten01.gif]] Aamol im Jahr ganz närrisch soi,<br> Des is heut’ die Parol,<br> In jeden Kopp muß es enoi,<br> Drum macht de größte Kohl.<br> De Babba sächt zum Bübche klaa:<br> Heut’ sin mer all verrickt.<br> Do fängt de Knirps zu singe aa,<br> Un is ganz hochbeglickt. __''Refrain:''__<br> Mer haww’n widder... --- |[[Chronik-Übersicht]]| |[[Chronik]]|[[Prunk-Sitzungen]]|[[Aktiven-Orden]]|[[Orscheler Karnevalsschlager]]| |[[Präsidenten & Vorstand]]|[[Fastnachtszüge]]|[[Vereins-Fahne]]|[[Fassenachts-Brunnen ]]| |[[Sitzungspräsidenten]]|[[Ohlenspiegel]]|[[Publikationen]]|[[Fassenacht]]| |[[Personen]]|[[Tollitäten]]|[[Vereinshaus]]|[[Oberursel]]| --- |[[Der Frohsinn]]|[[Veranstaltungen]]|[[Bühnenaktive]]|[[Chronik]]| (c) 2021 by R.G.
|[[Der Frohsinn]]|[[Veranstaltungen]]|[[Bühnenaktive]]|[[Chronik]]| |[[Chronik-Übersicht]]| --- !< Karl-Heinz Barth >< Heinz Ohl > --- !Karl-Heinz Barth --- !Heinz Ohl |!Info: |[[Ohlenspiegel]]| <br> __''Frankfurter Rundschau Online vom 21.05.2010''__<br> ''Orscheler Original<br> Späte Ehre für Heinz Ohl''<br> "Schön, mal wieder mit Ihnen plaudern zu dürfen." Wenn er mit diesem Satz zu später Stunde die Narrenbühne des Karnevalvereins Frohsinn enterte und den Mitternachtsblues ankündigte, dann kochte der Saal meist schnell. Heinz Ohl in seinen späten Jahren, das war allerfeinster Humor und allein den Besuch der ~Frohsinn-Sitzungen wert. Der Altmeister war eine Schlüsselfigur des Oberurseler Karnevals und lange Zeit deren wichtigster Protagonist. Nun will ihm die Oberurseler Bürgergemeinschaft (OBG) ein Denkmal setzen, eine Straße oder ein Gebäude in der Stadt nach ihm benennen. Um eines der letzten Oberurseler Originale zu ehren, einen Mann, der nicht nur der "Ohl vom Frohsinn" war, sondern das gesamte Vereinsleben der Stadt entscheidend mitgeprägt hat. Als Gründer des Vereinsrings im Jahr 1961 etwa, als Vorsitzender des Stadtjugendrings, des Fußballclubs 04 Oberursel in besseren Zeiten, des Festausschusses der 1200-Jahr- Feier Oberursel und als Mitgründer und in der Anfangsphase wichtigster Macher des Brunnenfestes. Schelm mit Selbstironie So konservativ und traditionsbewusst sein Denken war, so war er auch bereit für neue Strukturen. Durch ihn erhielt der Vereinsring mit Marianne Borgfeld erstmals eine Frau als Vorsitzende, in seinen Lokalglossen für örtliche Blätter ließ er den Schelm durchblicken, der sich auch selbst auf den Arm nehmen kann. Dass die OBG den Mann mit der riesigen Nase, der herausragenden Physiognomie und der markanten tiefen Stimme jetzt wiederentdeckt, hat mit zwei Jahrestagen zu tun. Im Februar wäre Heinz Ohl 80 Jahre alt geworden, vor 15 Jahren wachte er eines Abends auf seiner Ruhecouch nicht mehr auf. Über den OBG-Antrag wurde gestern Abend im Stadtparlament verhandelt. Die Sitzung war bei Redaktionsschluss noch nicht beendet. (jüs) <br> <br> !!!Online Quellen: http://www.1gcg-griesheim.de/kampagnen/dateien/1965_Darmst%C3%A4dter%20Tagblatt_zu%20Gast%20in%20Bessungen.pdf <br> Bericht des Darmstädter Tagblatt vom 18.....1965<br> über die Sitzung der 1. Griesheimer Carneval Gesellschaft<br> ''//Heinz Ohl aus Oberursel darf sich ge- trost mit seinem gereimten Narrenvortrag in der Nähe des Mainzer Bajaß mit der. Laterne oder des Till rücken. ...//'' https://www.kelkheim.de/_data/Chronik_1960.pdf (Seite 6)<br> ''//Dann trat Heinz Ohl vom Verein "Frohsinn" Oberursel ans Mikrofon. Er verstand es, sehr bald einen humorvollen Schwung in die Zuschauer zu bringen. Immer wieder klatschte man lebhaft Beifall, wenn er einen sprühenden Witz gelandet oder irgendjemand auf nette Art "dranbekommen" hatte.//'' --- |[[Chronik-Übersicht]]| |[[Chronik]]|[[Prunk-Sitzungen]]|[[Aktiven-Orden]]|[[Orscheler Karnevalsschlager]]| |[[Präsidenten & Vorstand]]|[[Fastnachtszüge]]|[[Vereins-Fahne]]|[[Fassenachts-Brunnen ]]| |[[Sitzungspräsidenten]]|[[Ohlenspiegel]]|[[Publikationen]]|[[Fassenacht]]| |[[Personen]]|[[Tollitäten]]|[[Vereinshaus]]|[[Oberursel]]| --- |[[Der Frohsinn]]|[[Veranstaltungen]]|[[Bühnenaktive]]|[[Chronik]]|
|[[Der Frohsinn]]|[[Veranstaltungen]]|[[Bühnenaktive]]|[[Chronik]]| --- |[[Chronik]]|[[Chronik-Übersicht]]| --- !Vorsitzende des Karneval-Verein Frohsinn seit 1917 ||[[Georg Süss]]| ||[[Adolf Schauß]]| ||[[Jean Weber]]| ||[[Heinrich Weber]]| ||[[Wilhelm Oeffinger]]| ||[[Eberhard Greiner]]???| ||[[Balser Hachemeister]]| ||[[Fritz Weber]]| ||[[Lorenz Caprano]]| |1969 bis 1983|[[Friedel Fischer]]| |1984 bis 1987|[[Herrmann Reul]]| |1987 bis|[[Eckart Dittmar]]| |bis 2011|[[Karl-Heinz-Barth]]| |ab 2011|[[Stephan Remes]]| |ab 2021|[[Ulfert Hahn]]| !!Vorstand der Kampagne 1956/1957: |1.Vorsitzender:|Balthasar Hachemeister| !!Vorstand der Kampagne 2007/2008: |1.Vorsitzender:|[[Karl-Heinz-Barth]]| |2.Vorsitzender:|Stephan Remes| |Schriftführerin:|Daniela Neuhäuser| |1.Kassiererin:|Elke Dietz| |2.Kassiererin:|Jutta Eckard| |Zeugwart:|Frank Steier| |Pressesprecher:|Gerd Krämer| !!Vorstand der Kampagne 2008/2009: [img[Bildbenennung|../../../Projekte/FROHSINN/Chronik/2008-09/2008-vf-vorstand.jpg]] |1.Vorsitzender:|[[Karl-Heinz-Barth]]| |2.Vorsitzender:|Stephan Remes| |Schriftführerin:|Daniela Neuhäuser| |1.Kassiererin:|Elke Dietz| |2.Kassiererin:|Jutta Eckard| |Zeugwart:|Max Kuntsche| |Zeugwart:|Detlef Unruh| |Pressesprecher:|Gerd Krämer| !!Vorstand der Kampagne 2009/2010: |1.Vorsitzender:|[[Karl-Heinz-Barth]]| |2.Vorsitzender:|Stephan Remes| |Schriftführerin:|Daniela Neuhäuser| |1.Kassiererin:|Elke Dietz| |2.Kassiererin:|Jutta Eckard| |Zeugwart:|Max Kuntsche| |Zeugwart:|Detlef Unruh| |Pressesprecher:|Gerd Krämer| !!Vorstand der Kampagne 2010/2011: [img[Bildbenennung|../../../Projekte/FROHSINN/Chronik/2010-11/2010-vf-vorstand_530.jpg]] |1.Vorsitzender:|[[Karl-Heinz-Barth]]| |2.Vorsitzender:|Stephan Remes| |Schriftführerin:|Daniela Neuhäuser| |1.Kassiererin:|Elke Dietz| |2.Kassiererin:|Jutta Eckard| |Zeugwart:|Max Kuntsche| |Zeugwart:|Detlef Unruh| |Pressesprecher:|Gerd Krämer| !!Vorstand der Kampagne 2011/2012 & 2012/2013: (gewählt für 2 Jahre) |1.Vorsitzender:|Stephan Remes| |2.Vorsitzender:|Freddy Wilkinson| |Schriftführerin:|Daniela Neuhäuser| |1.Kassierer:|Michi Kukuruzovicz| |2.Kassiererin:|Jutta Eckard| |Zeugwart:|Detlev Unruh| |Pressesprecher:|Gerd Krämer| !!Vorstand der Kampagne 2013/2014: |1.Vorsitzender:|Stephan Remes| |2.Vorsitzender:|Freddy Wilkinson| |Schriftführerin:|Daniela Neuhäuser| |1.Kassierer:|Michi Kukuruzovicz| |2.Kassiererin:|Jutta Eckard| |Zeugwart:|Detlev Unruh| |Pressesprecher:|Gerd Krämer| !!Vorstand der Kampagne 2014/2015 & 2015/2016: (gewählt für 2 Jahre) [img[Bildbenennung|../../../Projekte/FROHSINN/Chronik/2014-15/Vorstand-2014-16_590.jpg]] |1.Vorsitzender|Stephan Remes| |2.Vorsitzender:|Gerd Krämer| |Schriftführerin:|Daniela Neuhäuser| |1.Kassierer: |Michi Kukuruzovicz| |2.Kassierer: |Jutta Eckard| |Zeugwart:|Detlev Unruh| |Zeugwart:|Axel Friedrich|ab 2015| |Pressesprecher:|Gerd Krämer| !!Vorstand der Kampagne 2016/2017 & 2017/2018: (gewählt für 2 Jahre) |1.Vorsitzender|Stephan Remes| |2.Vorsitzender:|Gerd Krämer| |Schriftführerin:|Daniela Neuhäuser| |1.Kassierer: |Michi Kukuruzovicz| |2.Kassierer: |Jutta Eckard| |Zeugwart:|Detlev Unruh| |Zeugwart:|Axel Friedrich| |Pressesprecher:|Gerd Krämer| !Vorstand der Kampagne 2018/2019 [img[Bildbenennung|http://www.karnevalverein-frohsinn.de/assets/images/vorstand-2017_570.jpg]] |1.Vorsitzender|Stephan Remes| |2.Vorsitzender:|Gerd Krämer| |Schriftführerin:|Daniela Neuhäuser| |1.Kassierer: |Michi Kukuruzovicz| |2.Kassierer: |Jutta Eckard| |Zeugwart:|Detlev Unruh| |Zeugwart:|Axel Friedrich| |Pressesprecher:|Gerd Krämer| !Vorstand der Kampagne 2019/2020 [img[Bildbenennung|http://www.karnevalverein-frohsinn.de/assets/images/vorstand-2019_570.jpg]] |1.Vorsitzender|Stephan Remes| |2.Vorsitzender:|Jens Landefeld| |Schriftführerin:|Daniela Neuhäuser| |1.Kassierer: |Michi Kukuruzovicz| |2.Kassierer: |Jutta Eckard| |Zeugwart:|Detlev Unruh| |Pressesprecher:|David Görge| !Vorstand der Kampagne 2021/2022 [img[Bildbenennung|http://www.karnevalverein-frohsinn.de/assets/images/vorstand-2021_570.jpg]] |1.Vorsitzender|Ulfert Hahn| |2.Vorsitzender:|Jens Landefeld| |Schriftführerin:|Daniela Neuhäuser| |1.Kassierer: |Michi Kukuruzovicz| |2.Kassierer: |Jutta Eckard| |Zeugwart:|Saskia Werner| |Pressesprecher:|David Görge| --- |[[Chronik-Übersicht]]| |[[Chronik]]|[[Prunk-Sitzungen]]|[[Aktiven-Orden]]|[[Orscheler Karnevalsschlager]]| |[[Präsidenten & Vorstand]]|[[Fastnachtszüge]]|[[Vereins-Fahne]]|[[Fassenachts-Brunnen ]]| |[[Sitzungspräsidenten]]|[[Ohlenspiegel]]|[[Publikationen]]|[[Fassenacht]]| |[[Personen]]|[[Tollitäten]]|[[Vereinshaus]]|[[Oberursel]]| --- |[[Der Frohsinn]]|[[Veranstaltungen]]|[[Bühnenaktive]]|[[Chronik]]| (c) 2021 by R.G.
|[[Der Frohsinn]]|[[Veranstaltungen]]|[[Bühnenaktive]]|[[Chronik]]| --- |[[Presse 2009/10]]|[[Kampagne 2010/11]]|[[Presse 2011/12]]| --- !Pressemeldungen 2010/11 |Homepage-Presseseite|xxx| --- __ab hier noch zu bearbeiten:__ --- __ab hier Presse von 2011__ !15.01.2011 ~Taunus-Zeitung http://www.fnp.de/fnp/region/lokales/naerrische-stunden-in-der-residenz_rmn01.c.8587727.de.html Närrische Stunden in der Residenz «Närrische Stunden» verspricht der Kleine Rat des Frohsinns für Sonntag, 30. Januar, von 15 Uhr an in der Aumühlenresidenz, Aumühlenstraße 1. Für fünf Euro sind Tickets im Foyer der Residenz im Vorverkauf erhältlich. Die Gäste erwartet ein buntes Programm aus Show, Comedy, Karneval und Kokolores. Unter anderem werden die Marktweiber des Kleinen Rates, ein Bäckerbursche aus der Rednerschule des Frohsinns und das Orscheler Traumpaar Schulz-Rüttelbeck & Meyer-Espenschild kommen, um das Publikum zu unterhalten. Den närrischen Nachmittag in der Aumühlenresidenz gestaltet der Kleine Rat bereits seit über 10 Jahren, wie Korporationsführer Jörg Steden betont. «Wir freuen uns auf viele Besucher aus der Aumühlenresidenz selbst und aus ganz Orschel.» © 2011 Frankfurter Neue Presse !21.01.11 Pressemeldung Frohsinn (Sitzungen) Endspurt für Kartenverkauf der "Großen Prunksitzungen" beim Frohsinn Im Jubiläumsjahr "11 mal 11 in 11" wollen die Frohsinn-Narren nicht nur "...voll auf die 11" gehen, sondern sich auch bei ihren Großen Prunksitzungen in der Stadthalle ganz besonders ins Zeug legen, um dem Publikum beste Unterhaltung zu bieten. Das scheint sich herumgesprochen zu haben, denn für die beiden Samstagssitzungen (12. und 19.02.2011) gibt es nur noch ganz wenige Einzelkarten. Etwas besser sieht es für Freitag, 11.02.2011 aus. Für die Premierensitzung, die um 19.11 Uhr in der Stadthalle beginnt, gibt es noch Karten zum Preis von 13,50 Euro. Stephan Remes, 2. Vorsitzender des Vereins und verantwortlich für das Programm der Sitzungen rät: "Man sollte nicht auf die Abendkasse setzen. Das Programm wird richtig klasse, das darf man sich auf keinen Fall entgehen lassen." Deshalb empfiehlt der Verein einen raschen Besuch bei der Vorverkaufsstelle Uhren-Helfrich in der Vorstadt, um sich die begehrten Karten zu sichern. Für einen Hinweis auf den Vorverkauf in einer Ihrer nächsten Ausgaben wären wir Ihnen sehr dankbar. Ebenso würden wir uns über Hinweise auf die Sitzungen in Ihrem Veranstaltungskalender freuen. Hier zur Sicherheit noch einmal die Daten: Freitag, 11.02.2011, 19.11 Uhr, Eintritt 13,50 Euro; Stadthalle Oberursel Samstag, 12.02.2011, 18.31 Uhr, Eintritt 16,50 Euro; Stadthalle Oberursel Samstag, 19.02.2011, 18.31 Uhr, Eintritt 16,50 Euro; Stadthalle Oberursel Mit närrischen Grüßen Gerd Krämer Pressesprecher !01.02.11 Pressemeldung Frohsinn (Sitzungen) Samstagssitzungen ausverkauft Restkarten nur noch für die Premiere am 11. Februar Im Jubiläumsjahr "11 mal 11 in 11" gibt es einen echten Run auf die "Großen Prunksitzungen" des Frohsinn in der Stadthalle. Die beiden Samstagssitzungen (12. und 19.02.2011) sind ausverkauft. Restkarten gibt es nur noch für Freitag, 11.02.2011. Für die Premierensitzung, die um 19.11 Uhr in der Stadthalle beginnt, gibt es noch wenige Karten zum Preis von 13,50 Euro. Die Karten gibt es bei ~Uhren-Helfrich in der Vorstadt. Für einen Hinweis auf den Vorverkauf in einer Ihrer nächsten Ausgaben wären wir Ihnen sehr dankbar. Ebenso würden wir uns über Hinweise auf die Sitzungen in Ihrem Veranstaltungskalender freuen. Hier zur Sicherheit noch einmal die Daten: Freitag, 11.02.2011, 19.11 Uhr, Eintritt 13,50 Euro; Stadthalle Oberursel Samstag, 12.02.2011, 18.31 Uhr, Eintritt 16,50 Euro; Stadthalle Oberursel Samstag, 19.02.2011, 18.31 Uhr, Eintritt 16,50 Euro; Stadthalle Oberursel Mit närrischen Grüßen Gerd Krämer Pressesprecher !03.02.11 Frankfurter Rundschau http://www.fr-online.de/rhein-main/bad-homburg/brum-und-narren-im-einklang/-/1472864/7152586/-/index.html [<img[~Online-Pressebild|http://www.fr-online.de/image/view/2011/1/3/-/7152710/lowRes/4686117/-/12803245.jpg.jpg]] Fastnacht in Oberursel Brum und Narren im Einklang Als Meister der Bürger ist Hans-Georg Brum auch in der Hochzeit des Karnevals mittendrin und voll dabei - ob beim Rathaussturm oder dem großen Umzug am Fastnachtssonntag. Hans Georg Brum verteilt beim Rathaussturm Schokoküsse an die Narren. Foto: Michael Schick Hans Georg Brum verteilt beim Rathaussturm Schokoküsse an die Narren. Foto: Michael Schick Beim Rathaussturm am 26. Februar wird er seine Burg so gut wie möglich verteidigen – so aussichtslos der Kampf auch ist. Auch den Taunus-Karnevalszug, den „Höhepunkt und Riesenkracher“ lässt er sich nicht entgehen. Hoch oben auf dem Magistratswagen wird er das „tolle Erlebnis, das schöne Gefühl“ genießen, „wenn einem junge Mütter mit Kindern zujubeln“. Ja, das muss einmal gesagt werden, beim Karneval haben Narren und Ratsherren den Schulterschluss gefunden. Wie wichtig dem Rathauschef ist, dass der Karneval nicht untergeht, wo doch – so scheint es – nur noch der Hessentag die Köpfe beherrscht, zeigt die Einladung zur gemeinsamen Pressekonferenz von professionellen und Teilzeit-Büttenrednern. Oberursel sei die absolute „Fassenachts-Hochburg im Taunus“, sagt der Bürgermeister, um die 40000 Gefolgsleute erwarte er am 6. März in der Stadt. Könnte es ein deutlicheres Zeichen der Bruderschaft von Politik und Karneval geben als ein Erster Stadtrat – und damit Bürgermeister-Stellvertreter – im närrischen Dress beim offiziellen Termin zur Bekanntgabe der Fastnachts-Highlights? Mit Narrenkapp und Orden auf der Brust direkt neben Prinz Frederick I. sitzend, dessen Federn ihn ständig im Gesicht kitzeln. Als Hofmarschall hilft Ex-Prinz Dieter, heute unter dem Namen Rosentreter als Sozialdezernent bekannt, bisweilen aus, beim Rathaussturm wird er wieder mal zwischen den Stühlen und Kampffronten stehen. Was die Oberurseler Kommunalpolitik kaum schafft, ist für stadtbekannte Narren ein regelmäßiges Spiel: Auftritte im Fernsehen. Die „Showgirls“ vom CluGeHu aus Weißkirchen tanzen im HR bei „Hessen lacht zur Fassenacht“, Thomas Siebenhaar vom gleichen Club steigt bei der ARD-Sendung „Mitgemacht und mitgelacht – Frankfurt feiert Fassenacht“ in die Bütt, das Männerballett des Frohsinn tritt beim „Grand Prix der strammen Waden“ in Fulda (HR) an. Da aber, so heißt es, endet die Kooperation von Politik und Narretei. Und die Liebe des Bürgermeisters zur Fassenacht. Mittanzen will er nicht. ( jüs) !08.02.11 ~Taunus-Zeitung http://www.fnp.de/tz/region/lokales/ein-schwaetzchen-unter-tollitaeten_rmn01.c.8656930.de.html [<img[~Online-Pressebild|http://www.fnp.de/sixcms/media.php/rmn01.a.7225.de/thumbnail_220/fnp_import_tzo_Frederick_3Gestirn11_08.jpg ]]Ein Schwätzchen unter Tollitäten Prinz Frederick I. trifft das Dreigestirn und schwärmt vom Kölner Karneval Bis Aschermittwoch im Hotel wohnen: Was die Superstars des Kölner Karnevals so alles mitmachen – Prinz Frederick staunte nicht schlecht. Oberursel/Köln. Jungfrau Reni (2. von links), neben ihr Prinz Frank I. und Bauer Günter, freuten sich, Prinz Frederick I. und sein Gefolge in Köln zu treffen. Am Freitagvormittag war einiges los auf der Autobahn nach Köln. Das übliche Verkehrsaufkommen auf dieser Strecke und mittendrin ein Prinz am Steuer auf dem Weg in die Karnevalshochburg am Rhein. Oberursels Prinz Frederick I. besuchte mit seinem Hofstaat, zwei Gardisten der Ehrengarde und Freunden die Kölner Narrenzunft und nahm an deren Sitzung im Kristallsaal der Messe teil. «Das war ein gigantisches Erlebnis» ,schwärmt der Prinz. «In meiner Kampagne gab es bis jetzt einige Höhepunkte, wie meine Inthronisation oder auch die Prinzen-Gala, aber das war wirklich fantastisch.» In Köln, wo Fassenacht Kult ist, sei vieles aufwendiger und größer. «Doch das macht unser Orscheler Brauchtum nicht weniger sympathisch», findet Seine Hoheit. Begrüßt wurde die Delegation aus der Brunnenstadt vom Bannerhaer (Präsident) der Kölner Narrenzunft, Thomas Brauckmann. «Das war wirklich eine sehr herzliche Geste.» Für den Prinzen und sein Gefolge war ein Tisch in bester Lage reserviert. «Alle Aktiven, die an dieser Sitzung teilnehmen, mussten an unserem Tisch vorbei. Zum Beispiel auch die Ehrengarde, die mit 120 Gardisten einmarschierte», erzählt der Prinz. «Die haben doch tatsächlich vor mir salutiert und mich mit ,Guten Abend Hoheit‘ begrüßt», lacht Prinz Frederick I. Doch warum er überhaupt einen Sitzplatz gehabt habe, sei ihm schleierhaft, gesteht der Prinz, denn gesessen habe er kaum. «Anders als bei der Mainzer Fassenacht besteht eine Sitzung in Köln zu 80 Prozent aus Musikbeiträgen und da war von Anfang an Stimmung im Saal.» Im Grunde sei es eine riesige Party gewesen, ein «Best of» des Kölner Karnevals. Dazu gehören zum Beispiel die deutschlandweit bekannte Gruppe «Bläck Fööss» oder die «Räuber». «Klasse war aber, dass wir in der Pause das Kölner Dreigestirn getroffen haben», so Prinz Frederick I weiter. Ein Schwätzchen unter Tollitäten förderte zum Beispiel zutage, dass Prinz Frank I, Bauer Günter und Jungfrau Reni seit Mitte Januar im Hotel nächtigen und erst nach Aschermittwoch wieder bei ihren Familien einziehen, so sehr sind die drei im Stress. «Das ist echt Wahnsinn. Jeder will ein Foto mit den dreien machen und ein Autogramm. Man kann sagen, sie sind die Superstars des Kölner Karnevals», berichtet der Prinz. Er selbst war bereits am nächsten Tag unter Termindruck und musste schon morgens wieder zurück in den Taunus, da einige Sitzungen auf dem Programm standen. Wer übrigens Fotos vom Orscheler Prinz macht und sie auf seiner Homepage http://www.prinzfrederick1.de hochlädt, kann attraktive Preise gewinnen. csc (csc) !14.02.11 ~Taunus-Zeitung http://www.fnp.de/fnp/region/lokales/millionen-fuer-ein-loch-nach-bommersheim_rmn01.c.8673681.de.html [img[~Online-Pressebild|http://www.fnp.de/sixcms/media.php/rmn01.a.7225.de/thumbnail_220/fnp_import_tzo_frohsinnneu_140211.jpg]] !08.02.11 Pressemeldung Frohsinn (~HR4) Sehr geehrte Frau Stavrianos, wir freuen uns sehr über Ihr Interesse an der Kinder- und Jugendarbeit des Frohsinn. Nachstehend die wichtigsten Infos über die entsprechenden Gruppen (Korporationen) in unserem Verein. Der Frohsinn wurde 1890 gegründet - daher unser Jubiläum 11 x 11 in 11 / 121 Jahre in 2011. Wir haben heute rund 500 Mitglieder aus allen Bereichen der Gesellschaft. Mittelpunkt des Vereinslebens ist das Vereinsheim, das nicht nur Übungsstätte, Lager und Versammlungsraum ist, sondern auch als Örtlichkeit für eigene Veranstaltungen und Veranstaltungen Dritter gern genutzt wird. Bei den Gruppen finden Sie die Namen und Telefonnummern der jeweiligen Ansprechpartner. Minis Im Jahr 1996 wurde die Gruppe "die Minis" ins Leben gerufen.Wie schon die "Dancing Girls" jetzt "Die Garde" gründeten sich die Minis .Aufgrund des großen Altersunterschiedes entschied sich die damalige Vereinsführung, die Mini - Majoretten in zwei neue Korporationen aufzuteilen. So entstand für junge Mädchen im Alter zwischen 5 und 9 Jahren diese Gruppe,mit dem Ziel, den Tanznachwuchs zu fördern. Die Betreuung der Gruppe liegt zur Zeit in den Händen von Petra Ehegartner (Handy 01784159427; Mail: petra.ehegartner@gmx.de ), Petra Sommer (Mail:petrasommer-flusslauf@t-online.de, Tel. Büro 06171502201) und Jeanine Reder (Mailjeaninereder@yahoo.de) . Seit Jahren erfreuen die Minis mit ihren Tänzen das Frohsinn Publikum. An den großen Sitzungen, bei Kindermaskenbällen, und bei der Senioren - Fasenacht gehören sie erfolgreich zum festen Bestandteil der Programme. Tanzgarde Im Jahre 1995 wurden die Dancing Girls ins Leben gerufen. 12 Mädchen im Alter zwischen 10 und 14 Jahren waren in der Kampagne 1995/96 erstmalig an den großen Sitzungen des Vereins zu sehen. Trotz und gerade wegen großer Anstrengungen und knochenharter Trainingsarbeit, hatten die Dancing Girls im Laufe der vergangenen Jahre viel Spaß und vor allem Erfolg. Im Jahr 2000 firmierte sich die Gruppe in "Tanzgarde" des KV Frohsinn um und begeistert nun unter diesem Namen die Narren in der 5. Jahreszeit. Die Gruppe besteht aus Mädchen der Altersgruppe 11 bis 16 Jahren, schön wäre es auch, wenn sich Jungen, die Spaß am Gardetanz haben und dieser Altersgruppe angehören, melden würden. Trainiert wird von April bis Februar und neben ihren Auftritten an den Sitzungen, zählen die Teilnahme am Fastnachtsumzug in Oberursel, sowie Auftritte beim Rathaussturm und an Weihnachtsfeiern zum jährlichen Programm der Gruppe. Zum Intensivieren der aktuell einstudierten Tänze findet ein jährliches Trainingswochenende statt, welches auch der Geselligkeit zugute kommt und den Gruppenzusammenhalt fördert. Die Korporation Tanzgarde wird innerhalb der Vereinsstruktur als Sprungbremelli.bremser@web.dett für das Frohsinn Ballett gesehen. Ansprechpartner:Melanie Bremser (Telefon: 06171284896, Mail.melli.bremser@web.de) Drumkids Die Brassband besteht seit nunmehr 60 Jahren und hat zurzeit 30 aktive Musiker. Für die Homogenität und die hervorragende Akzeptanz innerhalb der Korporation spricht u.a. der große Altersunterschied der einzelnen Musiker. Die Altersgrenze reicht vom jüngsten Mitglied mit 14 Jahren, bis zum ältesten Spielmann mit über 60 Jahren. Für den Nachwuchs wurde 1995 eine Kinder-Schlagzeugergruppe gegründet. Die "Drumkids". In dieser Formation werden die kleineren Kinder ab 7 Jahren an das gemeinsame Musizieren herangeführt, um später bei den "Großen" mitspielen zu können. Die Probe der Drum-Kids findet jeden Donnerstag in der Zeit von 18.30 Uhr bis 19.15 Uhr im Vereinsheim Frohsinn, Frohsinn-Weg 1, 61440 Oberursel statt. Ansprechpartner (Drumkids und Jugendbrassband) Ulfert Hahn, Mobil: 017361933552, Mail: ulfert.hahn@brassbandfrohsinn.deulfert.hahn@brassbandfrohsinn.de Jugendbrassband Pünktlich zum 60. Jubiläum der Brassband des Karnevalverein Frohsinn wurde im Jahr 2008 die Jugend-Brassband gegründet. Kinder und Jugendliche, die Spaß an "selbst gemachter" Musik haben, sind herzlich eingeladen mitzumachen. Die Übungsstunden sind aufgegliedert in Theorieteil, bei dem die Notenlehre im Vordergrund steht und einen Praxisteil, in dem musiziert wird. Nach einer konzentrierten halben Stunde mit Bleistift und Papier werden die Instrumente ausgepackt und die Gruppe teilt sich in die einzelnen Stimmen auf, um dann mit dem jeweiligen Ausbilder Atemtechnik und Handhabung des Instrumentes zu üben und natürlich auch neue Stücke einzustudieren. Folgende Instrumente können Jugendlicher einstudieren: Tenorhorn, Mellophon, Schlagwerk, Trompete. Übungszeiten: Montags und Donnerstags 18.00 - 19.30 Uhr, Vereinsheim Frohsinn Rednerschule Seit einigen Jahren üben die Büttenasse von morgen den närrischen Vortrag in der Kinderrednerschule des Frohsinn. Die Kinder lernen dort gemeinsam u.a die Vortragstechnik, damit aus lustigen Reimen richtige Lacher werden können. Die erfolgreichsten Kinder schaffen es jedes Jahr auf die Bühne der Großen Prunksitzungen des Frohsinn in der Oberurseler Stadthalle. Im Jahr 2009 gewann Michelle Wilkinson aus unserer Rednerschule den Wettbewerb "Hessen sucht die Superkapp" des hr-Fernsehens. Betreuer Freddy Wilkinson (diesjähriger Karnevalsprinz) Mail: privatfw@daytonprogress.de. Bitte melden Sie sich bei mir, wenn Sie weitere Fragen haben oder ich Ihnen irgendwie helfen kann. Mit närrischen Grüßen Gerd Krämer !15.02.11 Pressemeldung Frohsinn Party vom Feinsten beim Frohsinn Frohsinn geht neue Wege mit "Oase reloaded" Seit ein paar Tagen werben in Oberursel Plakate für "'Oase reloaded'. So heißt die Fastnachts-Hausparty 2011 beim Frohsinn, die am Freitag, 25.02.2011 ab 20.00 Uhr im Vereinsheim Frohsinn, Frohsinn-Weg 1 steigt. Ältere Fastnachter in der Brunnenstadt staunen da nicht schlecht. Die Oase des Frohsinn in der Turnhalle war früher die angesagteste Tanz-Veranstaltung in Oberursel. Aber was heißt wohl 'reloaded'? Im Jubiläumsjahr ist der richtige Zeitpunkt, auch die Hausparty in neue Form zu bringen. kündigte der 2. Vorsitzende des Frohsinn, Stephan Remes, an. Nicht mehr Konzert mit Party wie in den Vorjahren, sondern "Fassnachtsparty mit verschiedenen Partyzonen, Cocktailbar, Diso und Live-Musik" im gesamten Vereinsheim. Aber wie Remes versichert gibt keine schlichte Wiederholung, sondern "Oase reloaded", also alles völlig neu. Party vom Feinsten eben und für jeden Feier-Geschmack sollte das richtige Angebot in der Frohsinn-Oase dabei sein. Da kann man im großen Saal feine Live-Musik genießen, im Oasen-Zelt mit Freunden chillen oder in einer Disco ordentlich abtanzen. Oder man sitzt in der Cocktail-Bar auf der Frohsinn-Bühne und beobachtet relaxed das Treiben im Haus. Verkleidung ist willkommen aber keine Pflicht. Live-Musik kommt von WEAP (Werners Partyband). Mit ihrem breiten Programm aus Oldies, deutschen Schlagern, Musik der 70er, 80er und 90er, Neuer Deutscher Welle, sowie aktuellen Charthits und Partykrachern, finden die drei Musiker (Werner Erker, Armin Schütze, Viola Tamm) immer die richtige Mischung um den Funken überspringen zu lassen. Die Karten gibt es ab sofort im Vorverkauf für 6,- Euro bei Christoph's Backhaus, Hohemarkstrasse 6. Für einen Hinweis auf den Vorverkauf für die "Oase reloaded" wären wir Ihnen sehr dankbar, ebenso für die Aufnahme der Veranstaltung in Ihren Veranstaltungskalender. Bei weiteren Fragen stehe ich Ihnen gern zur Verfügung. Mit närrischen Grüßen Gerd Krämer Pressesprecher Homepage WEAP: http://www.werners-partyband.de !16.02.11 Taunus Zeitung http://www.fnp.de/fnp/region/lokales/prinz-verstaerkt-seine-truppen_rmn01.c.8681367.de.html Prinz verstärkt seine Truppen «Kinder an die Macht» – diesen Slogan hat sich wohl Prinz Frederick I. auf die Narrenkappe geschrieben. Er fordert alle Kinder in den Orscheler Kindergärten und Grundschulen auf, das Rathaus zu stürmen. Auch die Eltern sind dazu eingeladen, Bürgermeister Hans Georg Brum (SPD) aus seinem Domizil zu jagen und ihn bis zum Ende der fünften Jahreszeit ins Exil zu schicken. Der Angriff ist für Samstag, 26. Februar, 11.11 Uhr geplant. Die jungen Rathausstürmer werden nicht unbelohnt bleiben, «denn die Rathauskasse wird gerecht geteilt», verspricht der Fastnachtsprinz. Treffpunkt für die Angreifer ist um 10.30 Uhr am Gasthaus «Zum Schwanen». Eine Fastnachts- Prinzengefolgschaft ist natürlich «bunt und spaßig» – daher sollten sich die Kids auch verkleiden. «So etwas hat Orschel noch nie gesehen, da wird ein Rekord aufgestellt», ist sich Frederick I. sicher. !21.02.11 Taunus Zeitung http://www.fnp.de/tz/region/lokales/hexen-handtaschen-und-orschels-heisseste-boygroup_rmn01.c.8694710.de.html [img[~Online-Pressebild|http://www.fnp.de/sixcms/media.php/rmn01.a.7225.de/thumbnail_220/fnp_import_tzo_1901narrenrat3_jr_210211.jpg]] Hexen, Handtaschen und Orschels heißeste Boygroup Eine Stadthalle fest in weiblicher Hand. Das kann nur eines bedeuten: Damensitzung. Ein paar Männer wurden auch geduldet – wenn auch am liebsten nur leicht bekleidet. Von Nadine Biersack Oberursel. Das Männerballett des Kleinen Rats erntete begeisterte Rufe vom weiblichen Publikum in der Stadthalle. Foto: Reichwein Die Orscheler Närrinnen waren auch in diesem Jahr wieder kreativ beim Design ihrer Kostüme. Und so kam es, dass sich am Freitagabend in der Stadthalle auf der Hexensitzung des Narrenrates nicht nur Tutanchamun und Obelix über den Weg liefen, sondern man sogar einen Plausch mit einer lebendigen Handtasche halten oder sich ein Autogramm von Cindy aus Marzahn holen konnte. Die Stimmung war dementsprechend schon vor Beginn der Sitzung gut und beim Einzug des Hexenrates brodelte es im Hexenkessel Stadthalle ordentlich. Die Frauen begrüßten ihre Hexen mit Standing Ovations, bevor die elf Damen vor dem Bühnenbild der Orscheler Altstadt auf der Stadtmauer Platz nahmen. Von dort aus führte Oberhexe Birgit Zumbroich durch die viereinhalbstündige Show. Los ging‘s mit einem Showtanz der Hexen vom Club Geselligkeit Humor (Clu-Ge-Hu) aus Weißkirchen. Die Mädels tanzten zu schaurig-schöner Musik und viel Nebel ihren perfekt einstudierten Hexentanz. Bevor der Abend dann so richtig losgehen konnte, mussten die Närrinnen traditionell gemeinsam noch ihren Eid ablegen. Dafür sprachen sie Zumbroich drei Gebote nach. Ganz klar, dass das wichtigste Gebot dabei war, keine Männer in den Saal zu lassen. Doch zur Bespaßung der Närrinnen waren die Männer auf der Bühne und in der Bütt dann doch willkommen. Als Erster wagte sich Thomas Siebenhaar als Harry-Potter-Fan in die Bütt und berichtete von seinen missglückten Flugversuchen auf einem Besen. Danach hatte Manuel Luxemburger seinen ersten großen Auftritt als Nummernboy, der die Männerballette ankündigte. Diese kämpften um den Titel «Orschels heißeste Boygroup» und mussten sich bei ihren Auftritten vor der kritischen Damen-Jury beweisen. Die Männer des Kleinen Rates schwangen perfekt synchron ihre strammen Waden und spätestens bei den Hebefiguren ertönten begeisterte Rufe. Wer aber glaubte, dass diese Leistung nicht mehr zu toppen war, sollte sich täuschen. Dazu später mehr. Safari nach Bommersheim Zunächst verkündete Nanga Ebuka alias Michael Kukuruzovic als Kameruner Austauschkarnevalist, dass er auf dem Hessentag eine geführte Safari in die «Schutzzone Bommersheim» anbieten wolle. Wichtig dabei sei vor allem, die Einwohner nicht zu füttern. Schließlich kamen die Damen noch in den Genuss des zweiten Männerballetts. Die «Bulltowngirls» des Carneval Vereins Stierstadt legten als Eskimos und Eisbären eine kesse Sohle auf das Parkett. Auch in ihren bauchfreien Outfits machten die Jungs eine gute Figur. Das musikalische Highlight folgte unmittelbar nach der Pause. Die Brassband des Frohsinns brachte mit ihrem unverkennbaren Sound die Stadthalle wie immer zum Beben und die ersten Närrinnen nutzten nun auch die Stühle als Tanzfläche. Es folgte der letzte Auftritt für Nummernboy Manuel, als er die dritte Orscheler Boyband – die «Bachstelzen» des Clu-Ge-Hu – ankündigte. Als tanzende Hähne und Hühner animierten die Weißkirchener die Frauen zum Ententanz. Bevor das Ergebnis verkündet wurde, begeisterte das Frohsinnballett nicht nur wegen seines tollen Tanzstils, sondern auch wegen der Kostüme, und nahm das Publikum mit in die 60er Jahre. Schließlich verkündete Oberhexe Zumbroich, dass die «Bulltowngirls» sich «Orschels heißeste Boygroup» nennen dürfen. Artikel vom 20. Februar 2011, 18.58 Uhr (letzte Änderung 21. Februar 2011, 04.12 Uhr) !23.02.11 Pressemeldung Frohsinn Liebe Kolleginnen und Kollegen, kurz vor dem Höhepunkt der Fastnacht, dem Fastnachtsumzug am 5. März gibt es noch eine ganz besondere Veranstaltung des Frohsinn, auf die ich Sie gern aufmerksam machen möchte: Am Fastnachtssamstag, 05.03.2011 beginnt um 14.11 Uhr im Vereinshaus Frohsinn, Frohsinn-Weg 1, die große "Kinder-Mitmach-Sitzung". Eintrittskarten gibt es für 1,50 Euro am Veranstaltungstag im Vereinshaus. Auf die kleinen und großen Narren wartet ein abwechslungsreiches Programm an diesem Nachmittag. Der Frohsinn ist besonders stolz auf seinen närrischen Nachwuchs, der nicht zuletzt auch auf der Stadthallen-Bühne sein Können unter Beweis gestellt hat. Bei der Kinder-Mitmach-Sitzung wird Kindern (und Eltern) ein abwechslungsreiches Programm zum Zuschauen und Mitmachen geboten. Die Kinder-Mitmach-Sitzung hat sich in den letzten Jahren zum absoluten Renner bei Jung und Alt entwickelt, ganz besonders, weil das Programm für Kinder ganz überwiegend vom närrischen Frohsinn-Nachwuchs bestritten wird. Für einen Hinweis auf diese Veranstaltung in Ihrer nächsten Ausgabe und die Aufnahme in Ihren Veranstaltungskalender wären wir dankbar. Über einen Besuch eines Berichterstatters würden sich die kleinen und großen Narren selbstverständlich sehr freuen. Mit närrischen Grüßen Gerd Krämer !03.05.11 Pressemeldung "Frohsinn beim Hessentag" 'Frohsinn tanzt und grillt auf Hessentag'' Der Karnevalverein Frohsinn zeigt Flagge auf dem Landesfest. Zehn Tage lang werden Mitglieder des Vereins auf dem Marktplatz für das kulturelle und leibliche Wohl der vielen Gäste aus nah und fern sorgen. Bereits vor zwei Jahren hatte die Mitgliederversammlung des Vereins beschlossen, beim Hessentag aktiv zu werden. Stephan Remes, 2. Vorsitzender des Frohsinn: "Der Hessentag ist eine tolle Gelegenheit auf unseren Verein aufmerksam zu machen und neue Freunde für den Frohsinn zu gewinnen. Am 10. und am 11. Juni werden Gruppen des Frohsinn ihr Können auch auf Bühnen in der Stadt präsentieren und so zum kulturellen Programm des Hessentages beitragen." Beim Würstchengrillen auf dem Marktplatz erhoffft sich der Verein natürlich auch einen wirtschaftlichen Erfolg. Remes: "Wir investieren sehr stark und mit Erfolg in die Jugendarbeit. Aber junge Talente brauchen Instrumente, Kostüme, Ausbilder. Das alles kostet Geld." Daher erhoffen sich die Karnvealisten möglichst viele Käufer für ihre leckeren Bratwürstchen, die auch bei Brunnenfesten stets ein Renner sind. Der Grillstand des Frohsinn steht auf dem Marktplatz neben dem St. ~Ursula-Brunnen, ganz so wie beim Brunnenfest. Öffnungszeit: vom 10. - 19.06.2011, täglich von 10.00 - 23.00 Uhr. Gerd Krämer !05.04.11 Taunus Zeitung 'Jörg Steden bleibt Chef des Kleinen Rates'' Mit unverändertem Personal startet der Kleine Rat des Frohsinn in die nächste Kampagne. Oberursel. Nach der Kampagne ist vor der Kampagne. Und das bedeutet für den Kleinen Rat (KR) des Karnevalvereins Frohsinn bei der Jahreshauptversammlung Bilanz zu ziehen und vorauszuschauen auf die nächste Kampagne, die die Korporation mit unverändertem Personal über die Bühne bringen möchte. KR-Chef Jörg Steden wurde wie die übrigen Mitglieder des KR-Vorstandsteams einstimmig in seinem Amt bestätigt. Michael Reuter leitet auch künftig das Kreativ-Team, das die KR-Sitzungen vorbereitet, Winfried Dorn ist wie bisher für den Wagenbau zuständig, Karin Rischke, Andrea Unger und Jenny Quandel sorgen als Schriftführerinnen dafür, dass alle KR-Mitglieder schnell und vollständig über Verlauf und Ergebnisse der wöchentlichen Treffen informiert werden. In seinem Rückblick zeigte sich Jörg Steden sehr zufrieden mit der zurückliegenden Kampagne. «Unsere Veranstaltungen waren erfolgreich. Beim Oberurseler Karnelvalszug konnten wir erneut den wichtigsten Zugpreis für einen politischen Beitrag, den Ohlenspiegel gewinnen und darüber hinaus noch den ersten Preis für die Fußgruppen. «Ein weiterer Zugpreis in Oberhöchstadt rundete das Bild ab. Sahnehäubchen war aber diesmal das erfolgreiche Abschneiden des Frohsinn-Männerballetts beim Grandprix der strammen Waden des HR-Fernsehens in Fulda», resümierte Steden. Intensiv wurde darüber diskutiert, welche Ideen und Aktivitäten man im kommenden Jahr ins Auge fassen will. Am 24. September steigt erneut die KR-Woodstock-Party im Vereinshaus und auch eine Beteiligung am Halloween-Fest von Fokus O. im Oktober wurde beschlossen. Am 18. und 19. November werden die Aktiven wieder zur «etwas anderen Fastnachtssitzung» ins Vereinshaus Frohsinn bitten. Dass der Kleine Rat auch außerhalb der Fastnacht aktiv ist, belegen nicht nur Woodstock und Halloween. Auch gemeinsame Besuche der Stunksitzung in Köln, des Darmstädter Kikeriki-Theaters und anderer Kabarett- und Comedy-Veranstaltungen zeigen, dass die KR-Aktiven sich «humoristisch fortbilden» und viel Spaß an gemeinsamen Aktivitäten haben. Dass sie darüber hinaus auch den Gesamtverein bei dessen Hessentagsstand und am Jubiläums-Sommerfest im August unterstützen, ist für Steden «Ehrensache». «Wir wollen unseren alten und möglichst vielen neuen Fans auch in diesem Jahr wieder ein tolles Programm bieten», versprach Jörg Steden.red (red) Artikel vom 05. April 2011, 03.24 Uhr (letzte Änderung 05. April 2011, 05.04 Uhr) !21.07.11 ~Taunus-Zeitung Frohsinn-Ballett tanzt an die Spitze Der Karnevalverein Frohsinn ist für seine professionelle Vereinsarbeit bekannt. Jahr für Jahr begeistern das Ballett und die Brassband des Vereins während ... http://www.fnp.de/fnp/region/lokales/vordertaunus/frohsinnballett-tanzt-an-die-spitze_rmn01.c.9067482.de.html !21.07.11 Frankfurter Rundschau Mit „Hairspray“ aufs Siegerpodest Dass die Brassband des Karnevalvereins Frohsinn zudem die Silbermedaille beim Internationalen Musikfest in Husum erspielen konnte, komplettiert das Glück. Mit breiter Brust können die Oberurseler Karnevalisten am 13. und 14. August ihr 121-jähriges ... http://www.fr-online.de/rhein-main/bad-homburg/mit--hairspray--aufs-siegerpodest/-/1472864/8693708/-/index.html !08.06.11 Oberurseler Woche [img[Oberurseler Woche|file:///D:/Data/GUTH--ONLINE/www-FROHSINN-OBERURSEL-DE/assets/presse/11-06-08-ow-frohsinnballett.jpg ]] !21.07.11 Stadtkurier http://oberurselerstadtkurier.de/startseite/aktuelles/ !21.07.11 Oberurseler Woche Frohsinnballett http://www.hochtaunusverlag.de/upload/oberurseler/Oberurseler%20Woche%20KW%202911.pdf (Seite 10) !03.08.11 Taunus Zeitung http://www.fnp.de/tz/region/lokales/vordertaunus/frohsinn-rettet-das-brunnenfest_rmn01.c.9101139.de.html !04.08.11 Frankfurter Rundschau http://www.fr-online.de/rhein-main/bad-homburg/feiern-fuer-jeden-geschmack/-/1472864/8758122/-/ !11.08.11 Taunus Zeitung http://www.fnp.de/fnp/region/lokales/vordertaunus/marktplatz-w-chst-aber-sankt-ursula-fehlt-noch_rmn01.c.9119683.de.html !15.08.11 Taunus Zeitung http://www.fnp.de/fnp/region/lokales/vordertaunus/startschuss-fuer-neue-kooperationen_rmn01.c.9128824.de.html !03.09.11 Taunus Zeitung Urgestein mit prägendem Einfluss auf das Vereinsleben wird 90 Oberursel. Kurt Riedel.So langsam müsste Kurt Riedel in seinem Pensionärsdasein noch in Stress geraten. Zumindest häuften sich in den vergangenen Jahren die Anlässe, bei denen er im Mittelpunkt stand. Jetzt war es wieder so weit: Kurt Riedel konnte auf stolze 90 Jahre zurückblicken. Ein Anlass, zu dem nicht nur Bürgermeister Hans-Georg Brum (SPD) gratulierte. Und das aus gutem Grund, denn einen großen Teil der vergangenen Jahrzehnte hat Riedel dem Engagement für seine Heimatstadt gewidmet, und zwar in den verschiedensten Funktionen. Über viele Jahre prägte der Jubilar das Vereinsleben Oberursels. Von 1974 bis 1994 war er zweiter Vorsitzender des Vereinsrings, dessen Ehrenvorstandsmitglied er inzwischen ist. 1987 fungierte Kurt Riedel als Brunnenmeister für die damalige Brunnenkönigin Dagmar I., außerdem war er über viele Jahre Mitorganisator des Brunnenfestes. "Ein Mann, dessen Handschrift das Oberurseler Brunnenfest prägte", wie es Bürgermeister Hans-Georg Brum (SPD) formulierte. Hinzufügen sollte man noch die Bezeichnung "Urgestein der Orscheler Fassenacht", denn Kurt Riedel gehörte mehr als 40 Jahre zum harten Kern der närrischen Szene, davon war er viele Jahre Vorsitzender des Karneval-Zugausschusses, Mitgründer der Frohsinn-Sänger und seit 2006 auch Ehrenmitglied der Fassenachtsvereinigung. "Ein Mann für alle Fälle", wie es der zweite Frohsinn-Vorsitzende Stephan Remes ausdrückte. Aber nicht nur in den Vereinen mischte Riedel kräftig mit. Von 1964 bis 1968 war er auch Stadtverordneter der SPD und von 1975 bis 1977 Mitglied der Kultur-und Vereinskommission der Stadt. Für sein besonderes Engagement erhielt Riedel immer wieder Auszeichnungen, von denen hier nur einige erwähnt seien. Bereits 1960 erhielt er die "Goldene Flamme", 1981 wurde ihm die Plakette für Verdienste im Vereinsleben in Silber verliehen und 1986 der Ehrenbrief des Landes Hessen. 2002 wurde Riedel für 50 Jahre aktive Bühnenfastnacht ausgezeichnet und 2003 gab’s dann noch die Vereinsplakette in Gold. Damit ist er der erste und bisher einzige Oberurseler, der beide Plaketten – die in Gold und die in Silber – erhielt. "Jede Gesellschaft kann nur dann bestehen, wenn es Menschen gibt, die über den eigenen Tellerrand hinausblicken und Gemeinsinn beweisen", hatte Bürgermeister Brum bei der Verleihung gesagt. ks (ks) Artikel vom 03. September 2011 http://www.fnp.de/fnp/region/lokales/vordertaunus/urgestein-mit-pr-gendem-einfluss-auf-das-vereinsleben-wird-90_rmn01.c.9178630.de.html !26.09.11 Pressemeldung Presseinformation Erstmals veranstaltet die jugend-Brassband des Frohsinn am 01. Oktober 2011 von 14 bis 16 Uhr im Vereinshaus des KV Frohsinn, Frohsinn-Weg 1, für interessierte Kinder und Jugendliche zwischen 6 und 16 Jahren einen Musik-Workshop. Ulfert Hahn, Korporationsleiter der Brassband und Robert Neitzel, Leiter der Jugendbrassband, erläutern: "Wir wollen uns vorrangig im bläserischen Bereich noch verstärken. Daher suchen wir junge Menschen, die musikbegeistert sind. Musikalische Vorkenntnisse sind nicht unbedingt notwendig, da die Kinder und Jugendlichen bei uns ausgebildet werden." Einmal im Jahr trifft sich die Jugend-Brassband zusätzlich zu ihren vielen Aktivitäten und Auftritten zu einem Probenwochenende mit Übernachtung im Vereinshaus des Karnevalverein Frohsinn. Dieses Probenwochenende ist immer ein Höhepunkt für die jungen Musikerinnen und Musiker. Neben intensiven Proben und Vertiefen der musikalischen Kenntnisse ist viel Spaß angesagt, denn dieses Probenwochenende dient auch dazu, die Kameradschaft untereinander zu festigen. Viele Kinder und Jugendliche sind musikalisch begabt, haben aber viel zu selten die Chance, Instrumente kennen zu lernen und mit ihnen zu üben. Talente bleiben unentdeckt, Kindern und Jugendlichen wird eine Chance der künstlerischen Betätigung gar nicht erst gegeben. Das will die Jugend-Brassband mit ihrem Workshop jetzt ändern. Robert Neitzel: "Zu diesem Musik-Workshop laden wir Euch mit Euren Eltern herzlich ein." Das Probewochenende ist eine hervorragende Gelegenheit, die Jugend-Brassband kennen zu lernen und auszuprobieren, welches Instrument den Talenten junger Musiker am besten entspricht. Über einen Vorbericht in Ihrer Zeitung würden wir uns ebenso freuen, wie über einen Hinweis auf den Jugend-Workshop in Ihrem Veranstaltungskalender. Mit freundlichen Grüßen Gerd KrämerPressesprecher <br><br><br> [[Nach oben...|Presse 2011/12]] --- |[[Presse 2009/10]]|[[Kampagne 2010/11]]|[[Presse 2011/12]]| --- |[[Der Frohsinn]]|[[Veranstaltungen]]|[[Bühnenaktive]]|[[Chronik]]| (c) 2021 by R.G. Status: i.A.
|[[Der Frohsinn]]|[[Veranstaltungen]]|[[Bühnenaktive]]|[[Chronik]]| --- |[[Presse 2010/11]]|[[Kampagne 2011/12]]|[[Presse 2012/13]]| --- !Pressemeldungen 2011/12 |Homepage-Presseseite|https://www.karnevalverein-frohsinn.de/html/vf-akt-presse2011-12.html| --- __ab hier noch zu bearbeiten:__ !14.10.11 Taunus Zeitung (Prinzenrätzel 1.Teil) [<img[Logo KV-Frohsinn|http://www.fnp.de/sixcms/media.php/rmn01.a.7225.de/thumbnail_220/fnp_import_tzo_frog_151011.jpg]] Frosch vorerst noch ungeküsst Orschels nächster Karnevalsprinz ist ein Verkleidungskünstler 'Meistens kommt es anders, als man denkt. Das geht gewöhnlichen Menschen oft so, aber auch besonderen Menschen wie eben einem Prinzen-Paar kann das passieren. Deshalb suchen wir in diesem Jahr wieder Orschels Karnevalsprinzen und kein Paar wie angekündigt. Was die Aufgabe um die Hälfte leichter macht, und noch dazu gibt‘s im letzten Teil unseres Rätsels eine kleine Überraschung! Oberursel. Hinter der Kugel verbirgt der Frosch-Prinz sein Antlitz. Nur die Augen gibt er frei. Foto: Storch Du musst viele Frösche küssen, bis ein Prinz dabei ist – den Spruch kennt jedes Mädchen. Bei diesem sehr zutraulichen Exemplar ist der Blaublut-Faktor aber garantiert. Statt Insekten bevorzugt der Anwärter auf den Orscheler Karnevals-Thron jedoch lieber Pasta in allen Varianten, denn das ist seine Leibspeise. Auch ist Grün nicht unbedingt seine Lieblingsfarbe, er mag lieber Blau. Doch wie wird aus dem Frosch ein Prinz? Unser Kandidat ging hierzu erst mal in die "Lehre". "Ich habe schon einmal hautnah miterlebt, wie es sein könnte, Prinz zu sein", erzählt unser Gesuchter geheimnisvoll. Die daraus gewonnene Erkenntnis lautete: "Es ist viel Arbeit, macht aber auch viel Spaß." So ein einmaliges Erlebnis und eine aufregende Zeit, das wünschte sich dann bald auch unser Kandidat. Ein Neuling in Sachen Fastnacht sollte ein Prinz natürlich auch nicht sein und was das angeht, blickt unser "Frosch" auf eine über 15 Jahre dauernde Liebe zu seinem Verein zurück. Schon als ein kleinen Dobsch hat der Papa ihn mitgenommen. Mit vier Jahren lief er, sich an den Gürtel des Vaters klammernd, beim Zug mit. Mit sechs Jahren hatte er sich bereits zum Standarten-Träger gemausert. Doch mit acht war schon wieder alles vorbei, denn damals fand ich alles peinlich, erinnert er sich. Eine musikalische Karriere endete nach dem Ausprobieren diverser Musikinstrumente wie Trommel, Querflöte und Trompete etwa zeitgleich. Doch das war zum Glück nur eine Phase. Heute macht er vieles mit, engagiert sich an vielen Fronten und auch musikalisch ist er heute. Er haut im wahrsten Sinne des Wortes gern auf die Pauke und steht auch mal singend auf der Bühne. Obwohl es äußerlich so gar keine Gemeinsamkeiten gibt, stand er zu Karneval mal als der Mann auf der Bühne, der 1961 mit der "Zuckerpuppe aus der Bauchtanzgruppe" einen Riesenhit hatte. Wenn Sie jetzt bereits eine Ahnung haben, wer unser gesuchter Karnevalsprinz sein könnte, dann sollten Sie bei unserem Rätsel mitmachen. Auch dieses Jahr lohnt sich die Teilnahme, denn es gibt schöne Preise zu gewinnen. Dazu gehören beispielsweise Karten für die Sitzungen der vier Oberurseler Karnevalsvereine, aber auch Brunch-Gutscheine. Als Hauptpreise winken zwei Gutscheine für ein italienisches beziehungsweise schweizerisches Büfett für je zwei Personen sowie ein Mal Brunch in der Brasserie der Stadthalle für zwei Personen. Und so geht‘s. Schreiben Sie den Namen des Prinzen auf eine Postkarte und schicken Sie diese an die Taunus Zeitung, Stichwort Prinzen-Rätsel, Schwedenpfad 2, in 61348 Bad Homburg. Einsendeschluss ist Dienstag, 8. November. http://www.fnp.de/fnp/region/lokales/vordertaunus/frosch-vorerst-noch-ungekuesst_rmn01.c.9285852.de.html !18.10.11 Pressemeldung Brassband aus Rushmoor auf Konzertreise in Oberursel – Konzert mit Frohsinn-Brassband Die „North East Hampshire Area Schools’ Bands“ aus Aldershot im Distrikt Rushmoor ist vom 23. bis 28. Oktober 2011 in Oberursel auf Konzertreise. Die englische Brassband wird mehrere Konzerte geben, Höhepunkt wird dabei das gemeinsame Konzert mit der Brassband des Karnevalvereins Frohsinn unter dem Titel „Freund­schaftskonzert der Partnerstädte Rushmoor und Oberursel“ sein am Donnerstag, 27. Oktober 2011 um 19.30 Uhr im Vereinshaus Frohsinn, Frohsinn-Weg 1. Die „North East Hampshire Area Schools’ Bands“ gibt es seit 1976. Ihre dreißig Bandmitglieder sind zwischen 13 und 18 Jahren alt und kommen aus Schulen in Fleet, Farnborough, Aldershot und den umliegenden Gemeinden. Die Band war bereits öfter im Ausland unterwegs, z.B. in den Niederlanden und Belgien und 1995 auch schon in Oberursel (Taunus). Leiter ist seit 1988 Simon Wyld. Er wird auch während der Auftritte in Oberursel dabei sein und dirigieren. Bereits im Jahr 2007 fand zwischen der North East Hampshire Area Schools’ Band und der Brassband des Karnevalverein Frohsinn ein musikalisches Zusammentreffen statt. Brassband-Chef Ulfert Hahn: "Als wir von der Konzertreise unserer englischen Freunde hörten wurde spontan ein musikalisches Treffen mit den Organisatoren vereinbart." Er erinnerte daran, dass die Oberurseler Brassband die Partnerstadt Rushmoor bereits zweimal besucht hat. Hahn: "Die Sprache einer Brassband ist die Musik, die wir nun am Donnerstag, den 27.10.2011 allen Freunden der Musik präsentieren möchten." Wie gewohnt ist beim Frohsinn für Speisen und Getränke bestens gesorgt. Der Eintritt für die Veranstaltung ist frei. Über Hinweise auf die Veranstaltung im redaktionellen Teil Ihrer Zeitung und im Veranstaltungskalender würden wir uns sehr freuen. Mit freundlichen Grüßen Gerd Krämer http://www.oberursel.de/nc/rathaus/verwaltung/pressemitteilungen/pressemitteilung/article/brassband-aus-rushmoor-auf-konzertreise-in-oberursel-konzert-mit-frohsinn-brassband !22.10.11 Taunus Zeitung (Prinzenrätzel 2.Teil) [<img[Logo KV-Frohsinn|http://www.fnp.de/sixcms/media.php/rmn01.a.7225.de/thumbnail_220/fnp_import_tzo_sto111009prinzOBU03_221.jpg ]] Ein rassiges Vollweib Das auch mal schnell zum „Stemminator“ mutiert 'Das ~Prinzen-Rätsel geht in die zweite Runde. Wer sich hinter dem Fächer verbirgt, ist zwar nicht ganz so einfach zu erraten. Aber wer alle Folgen aufmerksam liest, erhält viele Tipps, um welchen Orscheler Dickkop es sich hier handelt. Von Christine Šarac Oberursel. Orschels neuer Prinz hat Humor. Und so war es für ihn auch überhaupt keine Frage, in Frauenkleider zu schlüpfen. Dieses schicke Kostüm stammt übrigens vom CV Stierstadt. Foto: Storch Als Orscheler Prinz braucht man drei Eigenschaften. Erstens sollte man in jeder Lebenslage eine gute Figur machen. Zweitens ist auch Humor unabdingbar und wenn man dann drittens auch noch über sich selbst lachen kann, dann hat man gute Chancen auf das Amt. Dass unser Gesuchter alle drei Eigenschaften mitbringt, ist unschwer zu sehen. Mit Dirndl und schwarzer Perücke mutiert die künftige Hoheit zum rassigen Vollweib – das Kostüm ist übrigens eine Leihgabe des Männerballetts des CV Stierstadt. Modelmaße (für eine Frau) hat unser Prinz in spe mit einer Konfektionsgröße 50 und Schuhgröße 41 zwar nicht, aber dafür mehr Präsenz. Selbstbewusst blickt unser Gesuchter in die Kamera und lächelt, dass einem das Herz schmilzt – doch das kann man wegen des Fächers und der Sonnenbrille leider nicht erkennen. Aber vielleicht erkennen Sie ihn ja trotzdem! Falls es noch nicht Klick gemacht hat, hier noch ein paar Informationen zu unserem "Dirndl-Mädchen": Aufgewachsen ist unser künftiger Royal in der Altstadt. "Geboren wurde ich zwar in einer Klinik in Frankfurt am Main, aber mit fünf Tagen bin ich dann in meine Heimatstadt umgezogen", erzählt er. Schnell war unser Prinz bei den Nachbarn als aufgewecktes Bürschchen bekannt. Seine Frau ist ebenfalls ein echtes Orscheler Mädchen. Beide kennen sich von Kindesbeinen an und haben so manchen Nachmittag miteinander beim Spielen verbracht. Gefunkt hat es aber erst Jahre später auf der Kerb. 2003 machte er sie schließlich zu seiner Prinzessin. Schnell war klar, für die Trauung kommt eigentlich nur die St.-Ursula-Kirche im Herzen der Altstadt infrage. Aber unserem künftigen närrischen Regenten war all das immer noch nicht aufregend genug. Nein, schon zwei Jahre später setzte er sich in den Kopf, für seine Frau und sich ein Nest bauen zu wollen – sanieren würde die Sache allerdings besser treffen. Fast alles hat er selbst gemacht, was ihm den hübschen familieninternen Spitznamen "der Stemminator" einbrachte. Das wirklich Unglaubliche ist jedoch, dass er einfach alles schafft, was er sich vornimmt, sagt seine Mutter und flüstert hinter vorgehaltener Hand: "Das liegt aber wohl auch an seinem Dickkopf." Haben Sie ihn erkannt, unseren gesuchten Prinzen? Falls ja, dann schreiben Sie uns eine Postkarte und darauf den Namen und das Stichwort "Prinzen-Rätsel". Die Adresse lautet: Taunus Zeitung, Schwedenpfad 2, 61348 Bad Homburg. Einsendeschluss ist Dienstag, 8. November. Und das gibt es zu gewinnen: Wie immer werden Karten für die Sitzungen der vier Oberurseler Karneval-Vereine verlost. Als Hauptpreise winken zwei Gutscheine für ein italienisches sowie ein schweizerisches Büfett für je zwei Personen im Hotel Mövenpick sowie ein Mal Brunch für zwei in der Brasserie der Stadthalle. http://www.fnp.de/fnp/region/lokales/vordertaunus/ein-rassiges-vollweib_rmn01.c.9303909.de.html !25.10.11 Taunus Zeitung ''Närrisches Feuerwerk''<br> Oberursel. "Das Kultradio KR 3" gastiert beim Kleinen Rat (KR) des Karnevalvereins Frohsinn. Die "Fastnacht der etwas anderen Art" will auch in diesem Jahr wieder ein närrisches Feuerwerk aus Karneval, Comedy und Kokolores abbrennen. "Wer ein Ticket als Studiogast löst, wird einen unvergesslichen Abend erleben", versprechen ~KR-Vorsitzender Jörg Steden und Regisseur Michael Reuter. Die Akteure des KR wollen humorvoll und manchmal bissig das Leben in Oberursel glossieren. Die Sitzungen finden am Freitag, 18. November, (Einlass 18.30 Uhr, Beginn 20 Uhr) und am Samstag, 19. November, (Einlass 17.30 Uhr, Beginn 19 Uhr) im Vereinshaus Frohsinn, ~Frohsinn-Weg 1, statt. Wie immer gibt es zu Beginn ein leckeres kalt-warmes Büfett, mit dem sich das Publikum für den anschließenden Studiobesuch stärken kann. Karten gibt es zum Preis von 25 Euro am ~KR-Stand während des ~Halloween-Festes am kommenden Samstag in der Kumeliusstraße und in den beiden Vorverkaufsstellen Schlüsseldienst Weber, Feldbergstraße 33, und ~Tabak-Carree Rhode, ~Camp-King-Carree. Schüler und Studenten erhalten gegen Vorlage des Ausweises eine Rückvergütung von sieben Euro an der Abendkasse.red (red) http://www.fnp.de/fnp/region/lokales/vordertaunus/n-rrisches-feuerwerk_rmn01.c.9311541.de.html <br> <br> !24.10.11 Pressemeldung Presseinformation ''Kultradio KR 3 gastiert beim Kleinen Rat des Frohsinn'' Zu Gast im Studio bei "Kultradio KR 3" - Kleiner Rat mit „Fastnacht der etwas anderen Art“ Das Kultradio KR 3 gastiert beim Kleinen Rat des Karnevalverein Frohsinn. Die 'Fastnacht der etwas anderen Art' brennt auch in diesem Jahr wieder ein närrisches Feuerwerk aus Karneval, Comedy und Kokolores ab. "Wer ein Ticket als Studiogast löst, wir einen unvergesslichen Abend erleben.", versprechen ~KR-Vorsitzender Jörg Steden und Regisseur Michael Reuter. Die Akteure des KR wollen humorvoll und manchmal bissig das Leben in Oberursel glossieren. Die Sitzungen finden am Freitag 18.11.2010 (Einlaß 18.30 Uhr /Beginn 20.00 Uhr) und am Samstag, 19.11.2010 (Einlaß 17.30 Uhr/Beginn 19.00 Uhr) im Vereinshaus Frohsinn, ~Frohsinn-Weg 1 in Oberursel statt. Wie immer gibt es zu Beginn ein leckeres kalt/warmes Buffett, mit dem sich das Publikum für den anschließenden Studiobesuch stärken kann. Karten gibt es zum Preis von 25,00 Euro/Person am ~KR-Stand während des ~Halloween-Festes am kommenden Samstag, 29.10.2011 in der Kumeliusstrasse und in den beiden Vorverkaufsstellen Schlüsseldienst Weber, Feldbergstr. 33 und ~Tabak-Carree Rhode, ~Camp-King-Carree. Schüler uns Studenten erhalten gegen Vorlage des Ausweises eine Rückvergütung von 7,- Euro an der Abendkasse. Gerd Krämer Pressesprecher <br> <br> !29.10.11 Taunus Zeitung (Prinzenrätzel 3.Teil) [<img[Logo KV-Frohsinn|http://www.fnp.de/sixcms/media.php/rmn01.a.7225.de/thumbnail_220/fnp_import_TZ_prinzenraetsel.jpg]] Das Lächeln hinter der Maske Orschels künftiger Prinz haut gerne mal auf die Pauke Das Prinzenrätsel geht in die dritte Runde. Wer hier den Mann mit der Maske gibt, ist zwar nicht ganz leicht zu erraten, aber wer alle Folgen aufmerksam verfolgt, erhält viele Hinweise darauf, um welchen Oberurseler Mann mit venezianischen Wurzeln es sich handelt. Von Christine Šarac Oberursel. Nein, unser gesuchter Prinz hat nicht vor, in einem Mantel- und Degenfilm mitzuspielen. Er zeigt sich lediglich von seiner närrischen Seite und hat sich in das Kostüm eines Venezianers geworfen. Bleibt nur die Frage: Wer ist der Mann mit der Maske? Die Musketiere und auch Zorro scheiden als Identitäten auf jeden Fall aus, denn die sind ja keine waschechten Orscheler, wie man weiß. Was unseren Prinzen ausmacht, ist sein spitzbübisches Lächeln, das man auf diesem Foto nun endlich einmal erkennen kann. In dieses Markenzeichen hat sich wohl auch seine Frau gleich verguckt. Sie war es auch, die ihn wieder zur Fastnacht gebracht hat. Doch wer glaubt, unseren künftigen Regenten hätte es wie magisch auf die Bühne gezogen, der irrt sich. "Ich kümmere mich gern darum, dass bei so einer Sitzung alles reibungslos klappt", gibt Seine Hoheit zu. Lieber hinter der Bühne Hinter der Bühne fühlt er sich pudelwohl und hat auch gar nichts dagegen, dafür zu sorgen, dass die Akteure auf der Bühne gut aussehen und zu hören sind. Den Stand seines Vereins auf dem Brunnenfest auf- und abzubauen, ist ihm ebenfalls nicht zu viel. Karriere angekurbelt Auch seine "musikalische Karriere" wurde durch die Fastnacht wieder angekurbelt. Mit der Musikabteilung seines Vereins tritt er regelmäßig auf und haut dabei gern mal auf die Pauke. Zu Hause mag er es dagegen doch ganz gern ruhig. Da sitzt unsere künftige Hoheit gern mit seiner Frau auf dem Sofa bei einem Glas Wein, und die beiden Angorakatzen gesellen sich auch noch dazu. Im Sommer verlegen die beiden dieses Zeremoniell noch lieber auf die Terrasse mit Blick auf die St.-Ursula-Kirche. Die Kostümierung lässt ja bereits darauf schließen, dass unser gesuchter Prinz auch für andere Kulturen offen ist. Und wie könnte man andere Kulturen besser kennenlernen als im Urlaub. Länder wie Tunesien, Spanien und Griechenland hat unser Prinz in spe bereits bereist, aber seine Lieblingsziele liegen wesentlich näher. "Am liebsten fahre ich in den Bayerischen Wald oder auch nach Südtirol", verrät er. Selbst herausfinden Wir verraten allerdings nicht, um wen es sich hier bei unserem Gesuchten handelt. Das müssten Sie schon allein rausfinden. Detektiv spielen lohnt sich aber, denn beim Prinzenrätsel kann man schöne Preise gewinnen. Dazu zählen beispielsweise Brunchgutscheine für zwei im Hotel Mövenpick oder in der Brasserie am Rathaus sowie Gutscheine einen Auto-Check. Natürlich werden aber auch wieder Karten für die Sitzungen der vier großen Karnevalsvereine Oberursels verlost. Alles, was Sie dafür tun müssen, ist, den Namen unseres Prinzen zu erraten. Diesen schreiben Sie dann mit dem Stichwort "Prinzenrätsel" auf eine Postkarte und schicken sie an die Taunus Zeitung, Schwedenpfad 2, in 61348 Bad Homburg. Der Einsendeschluss ist Dienstag, 8. November. http://www.fnp.de/fnp/region/lokales/vordertaunus/das-l-cheln-hinter-der-maske_rmn01.c.9323090.de.html !05.11.11 Taunus Zeitung (Prinzenrätzel 4.Teil) [<img[Logo KV-Frohsinn|http://www.fnp.de/sixcms/media.php/rmn01.a.7225.de/thumbnail_220/fnp_import_tzo_sto111009prinz_051111.jpg]] Prinz liebt Sportwagen Und wer lenkt nicht schon gern ein solch schickes Modell? Das Prinzen-Rätsel geht heute mit der vierten und letzten Folge zu Ende. Jetzt heißt es also noch ein Mal aufpassen und mitraten. Von Christine Šarac Oberursel. In der nächsten Zeit wird man den künftigen Karnevalsprinzen wohl mit einem solchen flotten Gefährt in Orschels Gassen sehen. Foto: Storch Ein Bild sagt manchmal mehr als tausend Worte, heißt es doch so schön. Unsere künftige Hoheit liebt außergewöhnliche fahrbare Untersätze. Nach seiner Kampagne wird der Prinz in spe wohl öfter mit so einem Modell in den Straßen der Altstadt unterwegs sein. Schließlich ist der Grund dafür, dass er allein die kommende Kampagne bestreitet und nicht, wie ursprünglich geplant, gemeinsam mit "seiner Prinzessin", dass er bald Papa wird und einer Hochschwangeren der Stress, den so ein Amt eben auch mit sich bringt, nicht mehr zuzumuten ist. Die TZ drückt dem "Dreigestirn" an dieser Stelle die Daumen und wünscht alles Gute. Biker-Gottesdienst Eine neue große Aufgabe wird unser Prinz also demnächst haben, aber es gibt noch weitere Dinge, für die er sich leidenschaftlich interessiert. Aus seinem Hobby hat er inzwischen einen Beruf gemacht, und man kann sagen, dass es dabei "heiß hergeht". Wenn er nicht in Sachen Fastnacht unterwegs ist, dann finden Sie unseren künftigen Prinzen ganz sicher in der heimischen Garage. Dort pflegt er mit Hingabe seine Motorräder. Sein größter Stolz ist jedoch sein Sportwagen, ein ganz besonderes Modell. Außerdem unterstützen er und seine Frau den Verein christlicher Motorradfahrer. "Wenn Biker-Gottesdienst ist, dann helfen wir als Ordner aus und sorgen dafür, dass der Corso in Ruhe durch die Straßen Frankfurts fahren kann", erzählt er. Außerdem bekommen die Orscheler einen sehr sportlichen Prinzen. Im Sommer fährt unser Gesuchter sehr viel Fahrrad und im Winter wedelt er gern auf Skiern verschneiten Hängen hinunter. Vorzugsweise im Bayerischen Wald oder in Südtirol. Auf unserem bereits erwähnten Foto trägt der Prinz in spe übrigens das Fanfarenkostüm der Brassband seines Heimatvereins. Wer ihn jetzt erkannt hat, sollte zu Postkarte und Stift greifen, denn beim Prinzen-Rätsel kann man natürlich auch etwas gewinnen. Der Oberurseler Narrenrat verlost unter allen Einsendern mit der richtigen Lösung Karten für die Sitzungen der vier Oberurseler Karnevalsvereine. Außerdem gibt es Gutscheine für je ein schweizerisches und italienisches Büfett im Hotel Mövenpick für zwei sowie einen Brunch für zwei Personen in der Brasserie in der Stadthalle zu gewinnen. Wer mitmachen möchte, schickt eine Postkarte mit der Lösung und dem Stichwort "Prinzen-Rätsel" an die Taunus Zeitung, Schwedenpfad 2 in 61348 Bad Homburg. Einsendeschluss ist Dienstag, 8. November. http://www.fnp.de/tz/region/lokales/vordertaunus/prinz-liebt-sportwagen_rmn01.c.9340787.de.html !09.11.11 ~B2B [<img[Logo KV-Frohsinn|http://www.b2b-deutschland.de/aktuelles/meldungen/_img/newsmi/dapd_3208400230_0.jpg]] 09.11.2011, 13:00 Uhr Mit elf Jahren in der Bütt Büttenredner Peter Schüßler schult Kinder in seiner Kunst Ihre neuen Büttenreden können sie schon fast auswendig, am kommenden Samstag werden Michelle Wilkinson und Alexander Ruppel sie zum ersten Mal vor Publikum vortragen. "Meistens läuft hier immer erst alles auf den letzten Drücker", sagt Peter Schüßler. Seit 2007 betreibt er in Oberursel eine Rednerschule für Kinder, die er in der hohen Kunst des Büttenredens schult. Obwohl er momentan nur die beiden Schüler hat, geht es dennoch etwas hektisch zu. Denn am Freitag, dem 11.11., wird auch beim Oberurseler Karnevalsverein Frohsinn der Beginn der fünften Jahreszeit eingeleitet. Der 13-jährige Alexander wird dann als Bäckerjunge verkleidet in der Bütt stehen und in Vierzeilern sprechen - mit einer karierten Hose, weißer Jacke und Bäckermütze. "Fix und fertig, Mann oh Mann, komm ich in de Backstubb an, mein Vadder steht, hat's Maul weit offe, schreit Bub, Mensch hast du ein gesoffe", trägt er seine Rede schon mal übungsweise vor. "Die Endungen dürfen nicht verschluckt werden und man muss darauf achten, dass Wörter, die ausgerufen werden müssen, auch ausgerufen werden", sagt Lehrmeister Schüßler. Die Büttenreden schreiben Alexander und Michelle noch nicht selbst. "Die beiden kommen mit Ideen und ich mache daraus dann Vierzeiler", berichtet Lehrer Schüßler, der selbst erst mit 45 Jahren zum ersten Mal in der Bütt stand. Mittlerweile ist er 64 und tritt gar nicht mehr im Karneval auf, sondern tourt als Kabarettist durch Hessen. Den Betrieb in der "Backstubb" zu Hause beobachtet Alexander ganz genau. Dort kam ihm auch die Idee mit den Kreppeln, die er im letzten Karneval dem Elferrat der Narren servierte. "Weil das Karnevalsgebäck mit Senf oder Chili gefüllt war, verzogen die Narren die Gesichter." Alexander lacht dreckig beim Erzählen der Geschichte. Die elfjährige Michelle probt ihre Rede derweil nochmal vor einem Spiegel. "Das ist wichtig, um auch das Gestikulieren zu üben", sagt Schüßler. Als Büttenredner müsse man die eigene Rede schließlich auch verkaufen. "Am Anfang rattern die meisten Kinder ihren Text einfach runter und sind froh, wenn sie es hinter sich haben. Aber die beiden sind mittlerweile richtig gut." Es koste jeden seiner Schüler zunächst viel Überwindung. "Ich muss den Kindern die Angst nehmen, vor Publikum zu sprechen." Gefragt, ob er sehr aufgeregt sei vor einem Auftritt, wiegelt Alexander ab: "Nö, nö", sagt er und putzt nebenbei seine Brille, "ich seh die Leute gar nicht mehr, weil es im Publikum dunkel ist." Und die Klassenkameraden? "Manche sagen, ich sei dumm im Kopf, dass ich sowas mache. Andere finden es gut", sagt er, und es klingt so, als würde er sich nicht viel aus ihrer Meinung machen. Beim Fastnachtspublikum kommen die Nachwuchs-Büttenredner ohnehin gut an: "Kinder haben immer auch einen Bonus beim Publikum", sagt Schüßler. "Juwele" seien seine beiden Schüler. "Der Verein muss sie sich unbedingt erhalten." Denn landauf, landab hätten die Karnevalsvereine Nachwuchssorgen: "Viele Vereine können froh sein, wenn sie ein einziges Kind als Mitglied haben", meint der Kabarettist. Bei vielen Jungen und Mädchen lasse die Begeisterung nach, wenn sie etwas auswendig lernen müssen. "Das erinnert zu sehr an Schule." Michelle macht das Vortragen dagegen Spaß. Mit sieben Jahren sprach sie das erste Mal vor Publikum. Es folgte eine Einladung in die Sendung "Hessen lacht zur Fassenacht" im HR-Fernsehen. Der Radiosender HR 3 kürte sie zur besten Büttenrednerin Hessens. Auch in diesem Jahr hat sie eine Einladung zum Casting bekommen, wo sie sich auch gegen Erwachsene durchsetzen muss. Vier bis fünf Büttenredner werden maximal genommen. Lehrer Schüßler ist zuversichtlich, dass Michelle es auch diesmal schafft: "Manchmal sinn so ahle Knoche auf de Bühne, die kannste net mehr höre", sagt er im Dialekt. © dapd http://www.b2b-deutschland.de/hessen/region/detail_dapd_3208400230.php !10.11.11 Frankfurter Rundschau [<img[Logo KV-Frohsinn|http://www.fr-online.de/image/view/2011/10/9/11127910,7824159,lowRes,fr_71-26325833.JPG.jpg]] Mit elf Jahren in der Bütt Der Kabarettist Peter Schüßler betreibt eine Rednerschule für Kinder / Kampf gegen Nachwuchssorgen der Vereine Peter Schüßler schult Michelle und Alexander für die Bütt. Foto: dapd Peter Schüßler schult Michelle und Alexander für die Bütt. Foto: dapd Ihre Büttenreden können sie schon fast auswendig, am Samstag werden Michelle Wilkinson und Alexander Ruppel sie zum ersten Mal vor Publikum vortragen. „Meistens läuft hier immer erst alles auf den letzten Drücker“, sagt Peter Schüßler. Seit 2007 schult er in Oberursel Kinderer in der Kunst des Büttenredens. Momentan schult er nur Michelle und Alexander, dennoch geht es etwas hektisch zu. Denn am Freitag, dem 11.11., wird auch beim Oberurseler Karnevalsverein Frohsinn der Beginn der fünften Jahreszeit eingeleitet. Der 13-jährige Alexander wird dann als Bäckerjunge verkleidet in der Bütt stehen: „Fix und fertig, Mann oh Mann, komm ich in de Backstubb an, mein Vadder steht, hat's Maul weit offe, schreit Bub, Mensch hast du ein gesoffe“, trägt er seine Rede schon mal übungsweise vor. „Die Endungen nicht verschlucken und darauf achten, dass Wörter, die ausgerufen werden müssen, auch ausgerufen werden“, sagt der Lehrmeister. Seine Schüler dichten noch nicht selbst. Sie kommen mit Ideen, er schreibt daraus Vierzeiler, erzählt Schüßler, der selbst erst mit 45 Jahren zum ersten Mal in der Bütt stand. Mittlerweile ist er 64 und tourt als Kabarettist durch Hessen. Den Betrieb in der „Backstubb“ zu Hause beobachtet Alexander ganz genau. Dort kam ihm auch die Idee mit den Kreppeln, die er im letzten Karneval dem Elferrat servierte. „Weil das Karnevalsgebäck mit Senf oder Chili gefüllt war, verzogen die Narren die Gesichter.“ Alexander lacht dreckig beim Erzählen der Geschichte. Die elfjährige Michelle probt ihre Rede derweil nochmal vor einem Spiegel. „Das ist wichtig, um auch das Gestikulieren zu üben“, sagt Schüßler. Als Büttenredner müsse man seine Rede schließlich auch verkaufen. „Am Anfang rattern die meisten Kinder ihren Text einfach runter und sind froh, wenn sie es hinter sich haben. Aber die beiden sind mittlerweile richtig gut.“ Ob er sehr aufgeregt sei vor einem Auftritt ? „Nö“, wiegelt Alexander ab und putzt seine Brille. „Ich seh die Leute gar nicht mehr, weil es im Publikum dunkel ist.“ Und die Klassenkameraden? „Manche sagen, ich sei dumm im Kopf, dass ich sowas mache. Andere finden es gut“, sagt er, und es klingt so, als würde er sich nicht viel aus ihrer Meinung machen. Beim Publikum kommen die Nachwuchs-Büttenredner ohnehin gut an. „Juwele“ seien seine beiden Schüler, sagt Schüßler. „Der Verein muss sie sich unbedingt erhalten.“ Denn landauf, landab hätten die Karnevalsvereine Nachwuchssorgen: „Viele können froh sein, wenn sie ein einziges Kind als Mitglied haben“, meint der Kabarettist. dapd http://www.fr-online.de/bad-homburg/mit-elf-jahren-in-der-buett,1472864,11127912.html !12.11.11 Taunus Zeitung [<img[Logo KV-Frohsinn|http://www.fnp.de/sixcms/media.php/rmn01.a.7225.de/thumbnail_220/fnp_import_tzo_111111fasching_jr_121111.jpg]] Gestatten, Patrick I. Mit Patrick Volz übernimmt ein junger und dennoch fastnachtserfahrener Prinz das Narrenzepter Wer am 11.11.11 Karnevalsprinz von Orschel wird, muss schon echt begeistert vom närrischen Treiben sein. Was auf Patrick I. zutrifft. Und der 35-Jährige weiß, was in der gestern gestarteten Kampagne auf ihn zukommt. Von Anke Hillebrecht Oberursel. Eigentlich, ja eigentlich sollte diese Saison ja eine kleine Revolution im närrischen Orschel werden. Da es immer schwieriger wird, einen Oberurseler zu finden, der im Winter seinen gesamten Jahresurlaub nimmt, um einmal Karnevalsprinz zu werden, sollte diesmal ein Paar die Orscheler Narren durch die heiße Zeit führen. Yvonn (33) und Patrick (35) Volz, beide seit Jahren im Verein "Frohsinn" zu Hause, hatten Lust, dies gemeinsam zu tun – und dann kam die frohe Kunde: Yvonn ist schwanger. Lange Abende mit viel Lärm und Sekt sind also nichts für sie. Und so bleibt alles, wie es immer (bis auf ein Mal) war: Orschel hat wieder einen Karnevalsprinzen. Dass er das Amt auch allein übernehmen würde, sei ausdrücklicher Wunsch von Yvonn gewesen, erklärte Patrick. Er selbst strahlte bei seiner Vorstellung am Freitag im Rathaus kräftig. "Wir haben den 11.11.11, 11.11 Uhr – an so einem Datum muss man geboren sein, heiraten oder Prinz werden", sagte ein narrenkappentragender Bürgermeister Hans-Georg Brum (SPD), bevor die Sektgläser auf Patrick I. und sein Gefolge erhoben wurden. Ach ja, sein Gefolge: Das sind die beiden Pagen Annekatrin Rode (34) und Carolyn Wilkinson (16); als Hofmarschall fungiert der Prinz vom vorigen Jahr, Frederick Wilkinson (45). "Ihn hatte ich mir als Mentor gewünscht", so Patrick. Gefahren wird das lustige Quartett von Luis Blumenstein (21). Annekatrin Rode ist Konrektorin der Grundschule Dornholzhausen und – obwohl aus einer norddeutschen Familie stammend – Mitglied im Bommersheimer Carneval Verein (BCV) und im Hexenrat. Carolyn, die Tochter des Hofmarschalls, besucht die International School und ist seit ihrem vierten Lebensjahr im "Frohsinn" aktiv. Patrick I. selbst ist im Oberurseler Karneval kein Unbekannter. Die Leidenschaft hatte 1994 seine jetzige Frau geweckt. Durch sie kam er zur Brassband des "Frohsinn" und haute kräftig auf die Pauke. Die närrische Bühne begeisterte den jungen Man, sodass er der Korporation "Konfetti" des "Frohsinn" beitrat. Als Bill-Ramsey-Imitator brachte er die Leute zum Lachen. Dann beeindruckte ihn die Ehrengarde, die bei den Sitzungen das Bühnenbild zum Leben erweckt und den Prinzen begleitet. "Da kam schon der Wunsch in mir auf, einmal Prinz in Orschel zu sein", erinnert er sich. Auch Prinzenfahrer war er schon einmal. 15 Jahre lang sollte Patrick Mitglied der Ehrengarde sein, bevor er tatsächlich Prinz wurde. Gestern Abend nun wurde er als Patrick I. inthronisiert. Heute wird er bereits in seinem blau-weißen Kostüm als närrische Hoheit unterwegs sein. Sein erster offizieller Termin ist am Vormittag der Sturm des Landratsamts. Dann ist ein Besuch bei den Narren-Kollegen in Bad Soden vorgesehen, bevor Patrick und Co. abends von einer zur anderen Orscheler Karnevalssitzung tingeln. Auf die vielen Veranstaltungen freut er sich schon: "Sie üben so lange, und jetzt stehen sie einmal auf der Bühne. Das ist jedes Mal ein toller Moment", schwärmte der 35-Jährige. Er habe "das Glück, eine lange Kampagne" vor sich zu haben, weiß Patrick. Nur gut, dass sein beruflicher Vorgesetzter selbst gern die Narrenkappe aufsetzt. Denn Patrick arbeitet bei der Oberurseler Feuerwehr, und sein Chef ist Ulfert Hahn, Hauptbrandmeister und Leiter der "Frohsinn"-Brassband. Somit findet sich auf Patricks Wappen auch ein Löschfahrzeug; die Orscheler Farben drücken seine Verbundenheit zur Brunnenstadt aus, in deren Herzen er wohnt. Und dass das Wappen außer einem P auch noch ein Y trägt, zeige seine Liebe zu Yvonn. Und nächstes Jahr? "Arbeiten wir dran, mal eine Karnevalsprinzessin zu haben", sagte Narrenratsvorsitzender Uwe Eilers. Oder ein Paar. Eine mögliche Aspirantin legte bei Patricks Vorstellung schon kräftig vor: Nachdem sonst immer Männer um die 70 am Rednerpult stünden, sei jetzt endlich mal was Hübsches dran, meinte die elfjährige Michelle – ebenfalls aus dem Wilkinson-Clan – völlig zu Recht, als sie ein flottes Verschen auf Patrick vortrug. Wer weiß, was kommt. (ahi) http://www.fnp.de/fnp/region/lokales/vordertaunus/gestatten-patrick-i_rmn01.c.9359024.de.html !12.11.11 Frankfurter Rundschau [<img[Logo KV-Frohsinn|http://www.fr-online.de/image/view/2011/10/11/11138828,7847834,lowRes,fr_71-26443490.JPG.jpg]] Prinz ohne Prinzessin Am 11.11.11 um 11.11 Uhr startete Oberursel in die Fastnacht Prinz Patrick I. (2. v. links) mit Hofstaat und Wappen. Foto: V. Josburg Prinz Patrick I. (2. v. links) mit Hofstaat und Wappen. Foto: V. Josburg Das erste Helau klingt noch etwas trocken und zaghaft. Doch die Oberurseler Narren wollen es in der fünften Jahreszeit richtig krachenlassen. Das verspricht jedenfalls ihr oberster Regent, Prinz Patrick I. aus dem Hause Volz in der Altstadt. Direkt unterhalb von St. Ursula liegt es, natürlich taucht die Kirche in seinem Wappen auf. Die Vorzeichen für eine fulminante Kampagne sind günstig, das wird jeder Narr so sehen, denn welcher Prinz kann schon am 11.11.11 zum ersten Narrhallamarsch bitten. Den Prinz von der traurigen Gestalt will Patrick I. (gerufen Pätrick) keineswegs geben, auch wenn er seine Prinzessin nun doch nicht dabei haben wird. Sie hat nämlich Ende September erfahren, dass sie Mama wird und möchte dem Ungeborenen die Strapazen der Narretei nicht zumuten. Einen Platz im Wappen hat die verhinderte Prinzessin Yvonn I. trotzdem bekommen, der Prinz will damit ausdrücken, dass sie „den ersten Platz in meinem Herzen einnimmt“. Alte Zöpfe hatte der Narrenrat abgeschnitten, als er die Prinzessin möglich gemacht hat. „Was Homburg und Usingen hat, können wir auch“, so dessen Vorsitzender Uwe Eilers. Traditionell wurde Oberursel in der närrischen Zeit von einem Prinzen regiert, die Damen an seiner Seite fungierten als Pagen und lächelndes Begleitpersonal. Für Patrick I. übernehmen das die 16-jährige Schülerin Carolyn Wilkinson und die 34-jährige Lehrerin Annekatrin Rode. Zum Quartett wird der Hofstaat durch Hofmarschall Frederick I., den Vorgänger des neuen Prinzen. Kein Paar also an der Narrenfront, dafür ein junger Prinz (35), der neben seiner Yvonn zwei große Lieben hat: die Fastnacht und die Feuerwehr. Die Brandschützer faszinierten den Knaben Patrick schon mit fünf Jahren, als sie ein Feuer im Elternhaus löschten. Die Feuerwehr wurde sein Hobby mit zwölf, die Feuerwehr wurde im vergangenen Jahr sein Beruf. Seitdem ist er Angestellter in der „Organisationseinheit 37 Brand und Zivilschutz“, sein Arbeitgeber ist die Stadt Oberursel. Dürfte ein interessantes Aufeinandertreffen werden, wenn der junge Prinz beim Rathaussturm den Büroschlüssel vom Chef einfordert. Das zweite und das dritte und das donnernde „Orschel Helau“ ging den Narren, die kurzfristig den Rathaus-Sitzungssaal besetzt hatten, schon ganz ordentlich über die Lippen. Kein Wunder, am 11.11.11 um 11.11 Uhr. Und dann noch mit einer strahlenden Brunnenkönigin Christina I. im Saal, die als Geburtstagskind gleich mitgefeiert werden konnte wie auch das Paar, das nebenan das denkwürdige Datum für die Eheschließung ausgesucht hatte. http://www.fr-online.de/bad-homburg/prinz-ohne-prinzessin,1472864,11138830.html !14.11.11 Taunus Zeitung [<img[Logo KV-Frohsinn|http://www.fnp.de/sixcms/media.php/rmn01.a.7225.de/thumbnail_220/fnp_import_tzo_111111inthro4_jr_141111.jpg]] Jetzt schwingt Patrick I. das Zepter Orschels Karnevalisten präsentieren sich in Bestform, aber beinahe wäre Prinz Frederick I. noch einmal inthronisiert worden Seit Freitag hat Oberursel eine Hoheit mehr: Faschingsprinz Patrick I. trat am 11.11., pünktlich zu Beginn der fünften Jahreszeit, sein Amt als Tollität an. Bei der feierlichen Inthronisation am Abend wurde er von seinem Vorgänger würdig ins Amt eingeführt. Von Nadine Biersack Oberursel. Der 11. November 2011 war ein ganz besonders Datum: Viele Paare gaben sich an diesem Tag das Jawort, und für die Narren startete traditionell die neue Karnevalskampagne. Was muss es dann erst für eine Ehre sein, wenn mal als Vollblutkarnevalist an diesem denkwürdigen Datum auch noch zum Faschingsprinz gekrönt wird? Wie sich das anfühlt, erlebte Patrick Volz, der sich seit Freitag bis Aschermittwoch nun Patrick I. nennen darf. Bei seiner Ansprache zum Amtsantritts ließ er tief in seine Gemütslage blicken. "Auf diesen Augenblick habe ich mich lange gefreut. Heute geht ein Lebenstraum für mich in Erfüllung, und es ist natürlich der Hammer, dass ich am 11.11.11 inthronisiert werde!". Mit Patrick I. freuten sich rund 300 Gäste in der Oberurseler Stadthalle, die ein zweieinhalbstündiges buntes Programm der fünf Oberurseler Karnevalsvereine geboten bekamen. Bevor Patricks großer Moment kam, durfte die Brassband des Frohsinns den Abend stimmungsvoll eröffnen. Sie zeigte sich pünktlich zum Kampagnenstart in Bestform. Ein erster optischer Höhepunkt folgte mit dem Tanzpaar Nathalie Bender und Marcel Walter vom Carnevalsverein Stierstadt. Angefeuert vom Beifall des Publikums, präsentierten die zwei jungen Tänzer eine perfekt einstudierte Choreografie. Um kurz vor 21 Uhr war es dann endlich so weit: Unter stehenden Ovationen zog Patrick I. mit seinem Hofstaat in die Stadthalle ein. Noch war Patrick aber nur "Prinz in spe". Denn noch fehlten die echte Prinzenkappe und das Zepter. Karl-Heinz Barth wurde als Sprecher der Ex-Prinzen die Ehre zu Teil, Patrick die Mütze mit den drei Federn aufzusetzen. Nachdem Hofmarschall und Ex-Prinz Frederick I. auch noch das Zepter an seinen Nachfolger übergab, unterlief Barth ein kleiner Fauxpas. Anstatt feierlich den neuen Prinz Patrick I. auszurufen, proklamierte er ihn prompt noch einmal als Frederick I. Wenn auch unfreiwillig hatte Barth damit eine der größten Lacher des Abends geliefert. Unter dem Motto "Fassenacht ist unser Leben" strebt Patrick I. nun "die beste Kampagne aller Zeiten" (Frederick I.) an. Dies wollte er eigentlich gemeinsam mit seiner Frau Yvonne als Prinzenpaar machen. "Aber aus zwei werden drei", ließ Patrick in seiner Proklamation vom Hofmarschall verkünden und machte somit öffentlich, dass der Prinz nun seinerseits Papa eines Prinzen oder einer Prinzessin werde. Nichtsdestotrotz wurde Yvonne auf dem Prinzenwappen verewigt. Dieses ist unter der Prinzenkrone in drei Felder in den Oberurseler Stadtfarben aufgeteilt. Im oberen Drittel sind das alte Rathaus, die St.-Ursula-Kirche und Patricks Elternhaus zu sehen. Darunter, als Symbol für seine Arbeit bei der Feuerwehr und Bürger Oberursels, ein Feuerwehrauto und zwei Pfeile. Im unteren Drittel steht für Yvonne ein "YI." und als Andeutung auf ihren Job als Fremdsprachensekretärin eine Feder und eine Schriftrolle. Der Abend ging nach der Inthronisation natürlich noch närrisch weiter. Neben der Maxi-Garde des Bommersheimer Carneval Club (BCV) und den Tänzern der "Ravens" aus Stierstadt, sorgte "Frauenversteher" Stefan Strobel (BCV) für Lacher. Mit den Worten "Heute bricht die Zukunft an, weil ich die Frauen verstehen kann", sorgte er für hoffnungsvolle Blicke der Männer, die glaubten, endlich die Lösung aller Probleme präsentiert zu bekommen. Und die gab es dann auch prompt: "Frauen werden ruhig gestellt, wenn man(n) ihnen jeden Wunsch erfüllt", lautete eine Behauptung. Ihren Blicken nach, hatten die Männer genau diesen Rat befürchtet . . . Als Höhepunkt trat gegen Ende der Inthronisation das Ballet des "Frohsinns" gemeinsam mit den Sängern von "Voice Ten" auf. Sie gaben mit großartigen Stimmen und tollen Tänzen ein Medley aus dem weltbekannten ABBA-Musical "Mamma Mia" zum Besten. So kann die Fassenacht weitergehen. http://www.fnp.de/tz/region/lokales/vordertaunus/jetzt-schwingt-patrick-i-das-zepter_rmn01.c.9362556.de.html !14.11.11 Taunus Zeitung [<img[Logo KV-Frohsinn|http://www.fnp.de/sixcms/media.php/rmn01.a.7225.de/thumbnail_220/fnp_import_tzo_121111frohsinn8_jr_1411.jpg]] Trommeln zur Eröffnung Frohsinn feiert das endlose Hessenfest mit einem überaus maskulinen Paar Die Eröffnungssitzung des Karnevalvereins Frohsinn weckte am Samstag Lust auf eine facettenreiche Kampagne. Unter dem Motto "Hessentag endlos" gab es sogar ein neues Hessentagspaar. Oberursel. Grandiose Trommler: Die Jugendbrassband bot ein wahres Trommel-Feuerwerk.Eröffnet wurde am Samstag beim Frohsinn im Jogginganzug. Und zwar vom neuen Hessentagspaar Christian und Peter, die jedoch kurz darauf in schicken Gehröcken, gestreiften Hosen und mit Melone erschienen. In Christian Peters Hessentagstracht eben. Dessen Namen hatten Gerd Krämer und Vorsitzender Stephan Remes unter sich aufgeteilt. Fertig war das neue maskuline Hessentagspaar. "Keiner von uns hat sich an die Verkleidung als Charmaine herangewagt", schmunzelte Krämer. Dann machten sie Platz für die Jugend-Brassband sowie die Drum-Kids, die unter der Leitung von Mark Ladehoff dem Publikum ordentlich einheizten. Getreu dem Motto "Hessentag endlos" hatten Krämer und Remes eine "Just White (Raucher-) Lounge in Form eines weißen Pavillons vor die Vereinsgaststätte gestellt, die als Weindorf fungierte, und auf dem Weg zur Toilette befand man sich unter Strohballen und Mistgabeln bei "Natur auf der Spur." Außerdem beauftragten die beiden Schlitzohren Sitzungspräsident Klaus-Peter Hieronymi, einen Festzug zu organisieren. Die Projektleiterin des Kinderlandes vom Hessentag, Dani Neuhäuser, sollte sich um die kleinen Besucher der Sitzung kümmern. Doch die bekamen erst einmal ihre kleinen Kollegen zu sehen. Die Minis hatten nämlich mit ihren Trainerinnen Ana Veiga-Gennert, Silke Alt und Jeanine Hornung ein Tänzchen einstudiert. Ein etwas antiquierter Frikadellenwitz über das zusätzliche Brötchen, das sich ja schon im Hack befinde, leitete zum Bäckerburschen Alexander Ruppel ein, der mit guten Tipps nicht geizte: "…schlaf nie am heiße‘ Ofe‘ ei‘, sei immer wach, sei immer fleißig, dann werste locker über dreißig." Definitiv unter 30 sind die Mädels von der Frohsinn-Tanzgarde, die unter Leitung von Melanie Bremser ihre Beine schwangen. Eher über 30 waren wahrscheinlich die darauf folgenden Frohsinn-Sänger, die in Bundeswehrmontur einiges von "de Höhner" zum Besten gaben. Das kam an und regte zum Mitsingen an, auch wenn es da im Saal noch Reservepotenzial gab. Doch nun ist Prinzessinnen- und Prinzenzeit. Michelle Wilkinson präsentierte sich als eine von McDonalds gesponserte Prinzessin, die sich beworben hatte, weil "mal was Hübsches ran muss". Doch der wahre Prinz Patrick I. ließ sich für diese Saison das Zepter nicht nehmen und marschierte enthusiastisch im Frohsinn-Palace ein. Temperament und Esprit brachten die amtierenden Deutschen Meister im Schautanz, das Frohsinn-Ballett, bei einem Abba-Medley auf‘s Podium, und K.P. Hieronymi referierte über die Tücken eines Radioweckers. Und dann gab es auch noch eine Welturaufführung bei der Großen Garde. Denn in dieser Formation war sie zuvor noch nie aufgetreten. Als Hieronymi zu guter Letzt einen prima Auszug-Festzug aller Beteiligten zusammenbrachte, war klar: Das war ein gelungener Eröffnungsabend. rosa http://www.fnp.de/tz/region/lokales/vordertaunus/trommeln-zur-eroeffnung_rmn01.c.9362558.de.html !16.11.11 Taunus Zeitung [<img[Logo KV-Frohsinn|http://www.fnp.de/sixcms/media.php/rmn01.a.7225.de/thumbnail_220/fnp_import_tzo_151111ziehungjr_161111.jpg]] Annekatrin und Carolyn ziehen die Gewinner Bad Homburg/Oberursel. In der Kappe vom Narrenratsvorsitzenden Uwe Eilers warten die Gewinner-Karten darauf, von den Pagen Carolyn und Annekatrin (rechts ) herausgefischt zu werden – Prinz Patrick I. (Mitte) und Hofmarschall Frederick Wilkinson wünschten viel Glück. Foto: Reichwein So mancher Prinz stürmte unsere Redaktion schon mit lautem "Helau", so dass allen Redakteuren der Taunus Zeitung klar war, hier kommt er, Orschels närrischer Regent. Diesmal war es anders. Erst als er in der Orschel-Stube stand, machte sich Prinz Patrick I. mit einem dreifachen Helau bemerkbar. Die Freude über den Besuch des närrischen Hofstaates war aber nicht geringer. Und es sollte ziemlich spannend werden, denn der Prinz und seine beiden Pagen Annekatrin und Carolyn zogen unter den Augen von Hofmarschall Frederick Wilkinson und dem Narrenratsvorsitzenden Uwe Eilers, der großmütig seine Narrenkappe als Lostrommel zur Verfügung stellte, die Gewinner des TZ-Prinzen-Rätsels. Zwei Karten für die Ehrentribüne am Fastnachtszug in Oberursel hat Annemarie Schlemmer aus Oberursel gewonnen. Rosa Helfrich, ebenfalls aus Oberursel, kann sich über zwei Eintrittskarten für die Damensitzung des Narrenrates freuen. Zwei Eintrittskarten für die Haus-Party des Frohsinn gehen an den Oberurseler Rüdiger Weber. Zwei Sitzungskarten für den CV Stierstadt bekommt Petra Weigand. Die Nacht im Dschungel beim CV Bommersheim kann Gudrun Janouschek aus Oberursel mit einer Begleitperson genießen. Die beiden Pagen zogen außerdem Heike Griesbach aus der Lostrommel. Sie bekommt zwei Sitzungskarten für den Clu-Ge-Hu Weißkirchen. Katja Krammich wird von Fortuna mit zwei Eintrittskarten für die Haus-Party des Frohsinn belohnt. Zwei Sitzungskarten für den CV Stierstadt gehen an Horst Jung aus Oberursel. Klaus Griesbach erhält zwei Tickets für die Sitzung des CV Bommersheim. Die Oberurselerin Laura Brüderle kann sich über zwei Sitzungskarten für den Clu-Ge-Hu Weißkirchen freuen. Brigitte Libbert wird von den Narren eingeladen, bei der Sitzung des KV Frohsinn dabei zu sein. Gerhard Dörr aus Kronberg erhält einen Gutschein von der Brasserie der Stadthalle für zwei Personen. Der Oberurseler Thomas Schick freut sich sicherlich, dass sein Auto demnächst kostenlos eine Herbstdurchsicht bei Autoservice Schubnell machen kann. Einen Frühjahrscheck fürs Auto, ebenfalls bei der Firma Schubnell, gewinnt Hildegard Lauer aus Oberursel. Der Oberurseler Wilhelm Aumüller darf mit einer Begleitperson im Hotel Mövenpick ein Schweizer Büfett genießen. Den ersten Preis, ein italienisches Büfett für zwei im Hotel Mövenpick, gewinnt Jessica Janouschek aus Oberursel. Prinz Patrick I. freut sich darauf, allen Gewinnern ihre Preise persönlich bei der Prinzen-Audienz am Montag, 21. November, um 19 Uhr im Hotel Mövenpick zu überreichen. Der Prinz hat bereits jetzt schon viele Termine absolviert. "Am bewegendsten war natürlich meine Inthronisation", erzählt er. Wer genau hinschaut, sieht, dass schon etliche Orden um seinen Hals hängen. "Ich habe gemeinsam mit meinem Hofstaat schon zahlreiche Kampagnen-Eröffnungen besucht und auch das Landratsamt in Bad Homburg wurde gestürmt", berichtet er schmunzelnd.csc (csc) http://www.fnp.de/fnp/region/lokales/vordertaunus/annekatrin-und-carolyn-ziehen-die-gewinner_rmn01.c.9367866.de.html !21.11.11 Taunus Zeitung [<img[Pressebild|http://www.fnp.de/sixcms/media.php/rmn01.a.7225.de/thumbnail_220/fnp_import_tzo_kleinerrat181111_3_2111.jpg]] Nachrichten mit Klaus Kleister und Gundula Brause Kleiner Rat sendet live aus dem Frohsinn-Vereinsheim . . . und verhohnepipelt so einige bekannte Namen Am Wochenende hatte die Brunnenstadt einen eigenen Radiosender: Das "Kultradio KR3" sendete live aus dem Frohsinn-Vereinsheim und natürlich war auch bei den vielen närrischen Studiogästen das große Landesfest das Gesprächsthema Nummer eins. Von Nadine Biersack Oberursel. Sprach sogar Bayerisch: Gerd Krämer (re., neben Prinz Patrick I. ) als Orscheler Reporter Beppo. Fotos: hrho In diesem Jahr war der Kleine Rat ’74 (KR) besonders kreativ und stellte kurzerhand seine eigene Radioshow auf die Beine. Getreu dem Motto "Bei uns können Sie sehen, was Sie hören" wurde aus dem "gläsernen Marktplatz-Studio" gesendet. Eigentlich aus dem Frohsinn-Vereinsheim, das am Freitag- und Samstagabend denn auch proppenvoll war. Das Publikum war also live bei der Produktion einer rund vierstündigen Radiosendung dabei. Bevor es losgehen konnte, musste das Setting aufgebaut werden. Barbara Krämer strapazierte dabei die Lachmuskeln der Besucher als herrlich genervte Produzentin, der man es nicht rechtmachen konnte. Die selbsternannten Oldies Klaus und Klaus alias Klaus Amsel und Klaus Offen schafften es wieder, mit Akustikgitarre und Akkordeon die Orscheler Narren zum lauten Mitsingen und -klatschen zu animieren. Plötzlich musste das Programm wegen einer Suchmeldung unterbrochen werden. Vermisst wurde Patrick V. aus Oberursel, der merkwürdige Schreie, die sich wie "Hellblau" anhören, von sich geben soll. Und er neige dazu, wildfremden Menschen bunte Blechmedaillen umzuhängen. Nach dieser aktuellen Eilmeldung wurde es mit Henriette Kramer wieder richtig kultig. Sie nahm das Publikum mit auf einen Stadtspaziergang durch Orschel. Den neuen Bahnhof finde sie "wunderschön" und auch über die neu gepflanzten Bäume in der Adenauerallee freue sie sich. Warum das alles? "Und wenn ich es Ihnen sag – alles wegen dem Hessentag!". Die vorangegangene Suchmeldung war zum Glück von Erfolg gekrönt, und Patrick V. konnte unter stehenden Ovationen als Orschels Tollität Prinz Patrick I. zum Interview ins Studio einziehen. Hans-Georg Brummersche Das närrische Programm wurde alle 30 Minuten von einem kurzen "Nachrichtenblock" unterbrochen. Thomas Sterzel und Dominique Läufer verlasen die natürlich nicht ernst gemeinten Nachrichten als "Klaus Kleister" und "Gundula Brause" und sorgten mit Wortspielen für viele Lacher. So verkündeten sie beispielsweise, dass das Stadtparlament einer Neugestaltung der Bärenkreuzung zugestimmt habe. Zwei neue Blumenkübel sollten aufgestellt werden. Die örtlichen Politiker bekamen generell oft ihr Fett weg – ob "Hans-Georg Brummersche", "Dr. Müller-Langeweile" oder "Thorsten Knorr". Kämmerer Schorr war anwesend und nahm’s mit Humor. Sogar Wettermoderator Jörg Kachelmann durfte bei KR 3 sein Comeback geben. Und gegen Ende tänzelte auch noch das Männerballett des Kleinen Rats herein und verpasste sich und dem Publikum eine Frischzellenkur. http://www.fnp.de/fnp/region/lokales/vordertaunus/nachrichten-mit-klaus-kleister-und-gundula-brause_rmn01.c.9381462.de.html !03.01.12 Taunus Zeitung [<img[Pressebild|http://www.fnp.de/sixcms/media.php/rmn01.a.7225.de/thumbnail_220/fnp_import_tzo_11111fasching1_jr_030112.jpg]] Orschels Narren fiebern der Kampagne entgegen In unserem Fastnachtsfahrplan finden sich alle Termine und Eintrittspreise – Der „Frohsinn“ macht den Anfang Die Oberurseler Narren freuen sich, dass die Fastnachtspause bald ein Ende hat. Wo überall gefeiert wird – das lesen Sie heute in unserem Fastnachtsfahrplan. Oberursel. Patrick I. freut sich schon. Denn am 14. Januar ist Prinzengala im Mövenpick Hotel und dort will er sich mit vielen Gästen auf die tollen Tage einstimmen. Beginn ist um 20.11 Uhr. Eintrittskarten (12,50 Euro) gibt’s bei allen Oberurseler Karnevalvereinen. Die starten ihre Bühnenfastnacht ebenfalls in den kommenden Wochen. Den Anfang macht am 27. Januar um 19.11 Uhr in der Stadthalle der Karnevalverein Frohsinn mit seiner ersten von drei "Großen Prunksitzungen". Die weiteren Sitzungen finden am 28. Januar und am 4. Februar statt. Für die beiden Samstagsveranstaltungen gibt’s allerdings nur noch Restkarten. Eintrittskarten kosten zwischen 9,50 und 16,50 Euro. Die Tickets wie auch Karten für die Seniorensitzung der Stadt (Eintritt: 5 und 8 Euro) am 5. Februar gibt’s bei Uhren Helfrich in der Vorstadt oder online unter http://www.karnevalverein-frohsinn.de. Auch der Weißkirchener Karnevalverein Club Geselligkeit Humor (Clu-Ge-Hu) startet am letzten Januarwochenende durch. Die Sitzungen des Clu-Ge-Hu sind immer ein Highlight. Wer sich das auch im Jahr 2012 nicht entgehen lassen möchte, kann am 28. Januar und/oder am 4. Februar jeweils um 19.11 Uhr in die Weißkirchener Turnhalle kommen. Der Eintritt kostet 12,50 Euro. Oberursels Närrinnen kommen bei der mittlerweile traditionellen "Hexensitzung" des Hexenrates am 3. Februar von 20.11 Uhr an in der Stadthalle voll auf ihre Kosten. Wie jedes Jahr sind Männer hier streng verboten. Karten zum Preis von 12,50 Euro (Empore: 9 Euro) sind beim Oberurseler Schlüsseldienst, Vorstadt, erhältlich. Die Stierstädter Narren und ihr Verein, der CV Stierstadt, haben für diese Kampagne natürlich auch wieder eine mehrstündige Sitzung für gleich drei Termine auf die Beine gestellt. Am 4., 11. und 12. Februar finden diese in der Turnhalle in der Platanenstraße statt. An den beiden Samstagen geht es jeweils um 19.11 Uhr los, die Seniorensitzung am Sonntag startet bereits um 14.11 Uhr. Eintrittskarten zum Preis von 12,50 Euro kann man telefonisch unter (0 61 71) 5 19 33 bestellen. Unter dem Motto "25 Jahre und immer noch fit, die Bommersheimer Puppenkiste feiert mit" erwartet die Gäste am 11. Februar in der Burgwiesenhalle ein närrischer Abend. Dort gibt sich nämlich der Bommersheimer Carneval Verein (BCV) die Ehre. Die Sitzung (Eintritt: 13 Euro) ist übrigens schon so gut wie ausverkauft. Ebenfalls am 11. Februar steigt die "Große Faschingssitzung der Hedwigstaner" im Hedwigsheim. Das diesjährige Motto lautet "Büttenspaß statt Wetten, dass . . . ?" und verspricht eine Menge Spaß. Der Kartenvorverkauf beginnt am Freitag, 13. Januar, im Hedwigsheim. Ein Ticket kostet 9 Euro. Last, but not least darf man sich auch auf eine bunte Sitzung der Stedter Raale freuen: Gefeiert wird traditionell an Altweiberfastnacht (16. Februar) in der Taunushalle. Karten gibt’s ab 9 Euro. Natürlich gibt es auch in dieser Kampagne genügend Möglichkeiten, selbst zu tanzen, anstatt immer nur den Gardetänzerinnen auf den Bühnen zuzuschauen. Aus dem närrischen Terminkalender gar nicht mehr wegzudenken sind vor allem die "Hausparty" (Eintritt: 6 Euro) des Karnevalvereins Frohsinn am 11. Februar ab 20 Uhr im Vereinshaus und die legendäre "Dschungelparty" des BCV am 18. Februar ab 20.11 Uhr in der Burgwiesenhalle. Eintrittskarten für die Nacht im Dschungel kosten im Vorverkauf 8 Euro. Sie sind unter anderem im Pflanzenland Krammich erhältlich. Auch die Kids kommen bei der Oberurseler Fastnacht natürlich nicht zu kurz. Für sie finden am 12., 18. und 20. Februar gleich drei Kinderpartys in Bommersheim, Weißkirchen beziehungsweise Stierstadt statt. Beim "Frohsinn" können die Kleinen am 18. Februar um 14.11 Uhr außerdem an einer Kinder-Mitmach-Sitzung teilnehmen.nabi (nabi) http://www.fnp.de/tz/region/lokales/vordertaunus/orschels-narren-fiebern-der-kampagne-entgegen_rmn01.c.9485197.de.html !07.01.12 Taunus Zeitung [<img[Pressebild|http://www.fnp.de/sixcms/media.php/rmn01.a.7225.de/thumbnail_220/fnp_import_tzo_markt_070112.jpg]] [<img[Pressebild|http://www.fnp.de/sixcms/media.php/rmn01.a.7225.de/thumbnail_220/fnp_import_tzo_marktweiber_070112.jpg]] Orschels tratschende Weiber . . .wissen genau, was auf dem Marktplatz erzählt wird, und tragen es seit 25 Jahren ins närrische Publikum Bunt, schrill und das Herz auf dem rechten Fleck – so kennt man die Orscheler Marktweiber vom Kleinen Rat ‘74. Seit nunmehr 25 Jahren sind die Damen aus der Oberurseler Fastnacht nicht mehr wegzudenken. Von Nadine Biersack Oberursel. 2001 entstand dieses Foto von den Orscheler Marktweibern, die schon damals kein Blatt vor den Mund nahmen. Repro: saj Marktweiber sind ja dafür bekannt, den neusten Klatsch und Tratsch aus der eigenen Stadt im Nu zu verbreiten. Und das beherrschen die Orscheler Marktweiber des Kleinen Rats ‘74 seit 25 Jahren in Perfektion. Sie wissen, worüber in ihrer Stadt getratscht wird. Überzeugen kann man sich davon jedes Jahr auf Oberursels Fastnachtssitzungen. Wir sammeln übers ganze Jahr lokalpolitische Themen, die mein Mann Michael Reuter schließlich in lustige Bühnentexte verpackt, erklärt Marktweib Doris Reuter. Und Claudia Chudaska fügt an: "Je mehr Klöpse sich die Orscheler Politiker leisten, desto besser ist das für uns". So einen richtigen Klopper habe es zuletzt zwar nicht gegeben, sagt Tini Steden. Aber die Damen haben trotzdem einige Themen für die diesjährige Kampagne gefunden. Beispielsweise, dass das Schwimmen für die Kinder zu kurz kommt – fehlt das neue Hallenbad doch noch immer. Man muss also aus Oberursel sein oder zumindest einen besonderen Bezug zu der Brunnenstadt haben, um beim "Gebabbel" der Marktweiber mitzukommen. "Mit unseren Nummern würden wir ansonsten jedes Jahr im Fernsehen auftreten können", ist der Hahn im Korb der Gruppe, Friedhelm Weicker, überzeugt. Er begleitet die Damen seit acht Jahren am Akkordeon. Rolf Affemanns Idee Entstanden sind die Marktweiber aus einer Idee von Rolf Affemann. "1986 waren es sieben Gründungsmitglieder. Heute sind wir zehn Marktweiber", sagt Betty Lauer. Natürlich gab es von Zeit zu Zeit mal eine personelle Veränderung oder das eine oder andere Marktweib musste eine Pause einlegen. Schließlich bringen es die 10 Frauen auf insgesamt 17 Sprösslinge. Das Engagement bei den Marktweibern bedeutet den Damen viel – haben sie in all den Jahren doch einiges bewegt und auf die Beine gestellt. "So haben wir beispielsweise 1999, nachdem der Epinay-Platz neu gemacht worden war, Sonnenbrillen verkauft, weil die neuen Steine so hell waren, dass man fast blind wurde", erinnert sich Tini Steden schmunzelnd. Ein Highlight war auch die Einweihung des "Oberurseler Marktmobils". "2002 gab es in Oberursel die Idee eines Pendelbusverkehrs zum Marktplatz. Das hat sich zwar nie durchgesetzt, aber am ersten Tag sollten wir die Fahrgäste im Bus bespaßen", erzählt Gaby Racky, bei der die Marktweiber an diesem Abend zusammensitzen, um in Erinnerungen zu schwelgen. Denn die zwei genannten Aktionen sind nur Auszüge aus einer sehr langen Liste. Ein besonderes Geschenk Tini Steden (links) blättert gemeinsam mit Friedhelm Weicker und Gaby Racky in einem der dicken Ordner, in denen sie die Fotos von und die Zeitungsberichte über die Marktweiber aufbewahrt. Foto: SajakTini Steden hat sich die Arbeit gemacht und alles, was in 25 Jahren passiert ist, in einer Chronik festgehalten. In mittlerweile zwei dicken Ordnern haben sich sämtliche Fotos, E-Mails und Zeitungsberichte angesammelt. Die ganzen Geschichten und Erlebnisse, die sich darin verstecken, würden wahrscheinlich für eine ganze Sonderbeilage einer Zeitungsausgabe reichen. Zum 25-jährigen Bestehen ist für die Veranstaltung "Autos in der Allee" ein besonderer Stand in Planung. Ein schönes Geschenk haben die Marktweiber zudem von Wilfried Abt bekommen. Er sponserte die neuen schicken Fleecejacken mit dem Logo der Marktweiber. Alle Marktweiber können sich jetzt noch besser als sowieso schon mit ihrer Rolle und Oberursel identifizieren. "In den Kostümen traut man sich eher, Themen anzusprechen, die man sonst nicht erwähnen würde", ist sich Steffi Neugebauer sicher. Und die Marktweiber haben mit ihren kritischen Texten auch tatsächlich schon einiges erreichen können. "Wir haben in den vergangenen Jahren die Hohemarkstraße, den Bahnhof und das Schwimmbad besungen. Und überall hat sich etwas getan", stellt Friedhelm Weicker fest. Wer die Marktweiber demnächst live sehen will, hat am 27. Januar bei der ersten Prunksitzung des Karnevalvereins Frohsinn in der Stadthalle die Gelegenheit dazu. http://www.fnp.de/fnp/region/lokales/vordertaunus/orschels-tratschende-weiber_rmn01.c.9494604.de.html !13-01.12 Taunus Zeitung [<img[Pressebild|http://www.fnp.de/sixcms/media.php/rmn01.a.7225.de/thumbnail_220/fnp_import_tzo_garde_130112.jpg]] Große Garde fiebert Premiere entgegen Beim "Frohsinn" können Mädchen jetzt auch nach ihrem 16. Geburtstag Garde tanzen. Bei der Prinzengala am Samstag haben sie ihren ersten Auftritt. Oberursel. Hier ist sie – die neue Große Garde des Karnevalvereins "Frohsinn". Am Samstag sind die Mädels bei der Prinzengala zu sehen. Foto: Sajak Zehn Jahre Garde tanzen und dann aufhören müssen, das war bisher beim Karnevalverein "Frohsinn" Realität. Denn viele, die Garde tanzten, wollten nicht zum Showtanz wechseln. Doch jetzt können die älteren Mädels, aktuell sind sie zwischen 15 und 27 Jahre alt, in der Großen Garde weitertanzen. Die Formation wurde in den Sommerferien gegründet. Bei der Prinzengala am morgigen Samstag im Hotel Möwenpick hat sie mit einem Auftritt Premiere. Seit vorigen Sommer proben die zehn Tänzerinnen, davon neun aus der Kleinen Garde und eine Quereinsteigerin, ein Mal die Woche für ihren zehnminütigen Auftritt. Nochmals zu sehen sind sie bei der Prunksitzung am 27. Januar in der Stadthalle. Eine Kostprobe gaben sie bereits bei der Eröffnungssitzung am 12. November mit einer Sequenz, allerdings noch ohne Kostüme. "Wir waren mit T-Shirt und Leggins bekleidet, um zu zeigen, dass wir da sind", sagt Melanie Bremser, die die Große Garde leitet. Auch aus Platzgründen war die Gründung eine Notwendigkeit. Denn allein in der Garde tanzen derzeit 20 Kinder, und schon da wird es eng auf der Bühne. Die Fluktuation ist bei den Tänzern sehr gering. Nicht nur das Tanzen macht den Großen Spaß, die meisten sind von Kindesbeinen an dabei. "Es macht Spaß, in der Gruppe zu sein. Es ist ein toller Sport", sagt Page Carolyn (16), die Garde tanzt seit sie drei Jahre alt ist. Die zweiteiligen Kostüme sind aus Samt in der roten Farbe des "Frohsinn" mit schwarzem Muster. Der Rock ist aus drei Lagen plus Röckchen. Mit den Kostümen zu tanzen sei "ein ganz anderes Gefühl", sagen die Mädels. "Das besondere an Garde ist das Kostüm", steht für Carolyn fest, die bisher lateinamerikanische Tänze getanzt hat. Die Tanzschritte hätten es in sich, so die 16-Jährige. Am schwersten sei der Sprung, und davon gebe es in dem über zehnminütigen Tanz gleich zwei. Einen ziemlich am Anfang, den zweiten Sprung zum Schluss. "Am Anfang hat man noch Kraft, aber nach dem Beine schmeißen lässt die Kraft nach. Beim letzten Sprung müssen wir uns kräftig zusammennehmen", so Bremser. "Quatsch", kommentiert eine Tänzerin diese Aussage. Für manche ist es eben ein Klacks. Jedenfalls geht es in die Knie – und vor allem, wer erkältet ist, ist spätestens am Schluss fast außer Atem. Geprobt wird mittwochs von 17 bis 19 Uhr im "Frohsinn"-Vereinsheim. Neuankömmlinge sind willkommen. sob (sob) http://www.fnp.de/fnp/region/lokales/vordertaunus/grosse-garde-fiebert-premiere-entgegen_rmn01.c.9510317.de.html !Thema: Seniorensitzung http://www.oberursel.de/nc/rathaus/verwaltung/pressemitteilungen/pressemitteilung/article/seniorensitzung-in-der-stadthalle-kartenvorverkauf-im-staedtischen-seniorentreff !16.01.12 Taunus Zeitung [<img[Pressebild|http://www.fnp.de/sixcms/media.php/rmn01.a.7225.de/thumbnail_220/fnp_import_tzo_140112prinzengala2_jr_1.jpg]] Narrenvolk huldigt Prinz Patrick I. Unterhaltsame Gala im Mövenpick mit Tanz, Gesang und Büttenreden Die Narren Oberursels hatten sich am Samstagabend richtig fein herausgeputzt und schick gemacht. Es stand schließlich der absolute Höhepunkt einer jeden Kampagne an: die Prinzengala im Mövenpick-Hotel. Prinz Patrick I. hatte Freunde, Familie und andere Fastnachtsliebhaber zu einem stimmungsvollen Abend eingeladen. Von Nadine Biersack Oberursel. Mit zu Herzen gehenden Worten dankte Patrick I. bei der Gala im Mövenpick-Hotel allen, die ihm das Prinzendasein ermöglicht hätten. Fotos: jr (2)"Alle, die heute nicht hier sind, werden sich ärgern!", ließ Uwe Eilers gleich in seiner Begrüßungsansprache bei der Prinzengala von Patrick I. verlauten und machte damit Hoffnung auf einen tollen Abend. Und der sollte dann auch gleich beginnen. Der Ballsaal des Mövenpick-Hotels war in die Karnevalsfarben Rot, Weiß, Blau und Gelb getaucht und bot das perfekte Ambiente für einen festlichen, närrischen Abend. Zunächst ließ Patrick von seinem Hofmarschall Frederick seine Proklamation verkünden und hieß einige Gast-Tollitäten willkommen. Das Kinderprinzenpaar Ronja I. und Marius I. freute sich sichtlich über die Einladung vom "großen Prinzen". "Wir wollten uns nicht wehren und kommen gern zu deiner Ehren", erklärte Marius stolz. Und auch Prinzessin Danica I. aus Bad Soden kam gerne. Perfekte Kontaktpflege Die Prinzengala ist eine gute Gelegenheit, um Kontakte zu pflegen. Ich bin gern hier in Orschel, sagte sie. Die fünf Karnevalsvereine des Oberurseler Narrenrates hatten jeweils einen Programmpunkt vorbereitet, wobei der "Frohsinn", Patricks Heimatverein, mit drei Beiträgen vertreten war. Den Auftakt zum bunten Unterhaltungsprogramm gestaltete Tanzmariechen Sarah Reuter vom Bommersheimer Carneval Verein. Sie stellte mit einer schwungvollen Choreografie ihr Können unter Beweis und behielt trotz anspruchsvollster Elemente stets ihr Lächeln auf den Lippen. Zu Recht bekam sie kräftigen Beifall und vom Prinzen ein dickes Lob: "Das war richtig toll!" Dank an die Eltern Prinz Patrick I. nutzte die Gala vor allem, um sich bei einigen für ihn "sehr wichtigen Menschen" zu bedanken. Im Mittelpunkt seiner Dankesreden standen seine schwangere Frau Yvonne und seine Eltern. "Danke für deinen großen Verzicht für unser Krümelchen", sagte er zu seiner Liebsten. Mama Lotti hatte sogar Tränen in den Augen, als Patrick gegenüber seinen Eltern seine Dankbarkeit zum Ausdruck brachte. "Danke für all das, was ihr für mich tut." Weiter ging es dann mit der nächsten Tanzdarbietung, diesmal von dem noch jungen Karnevalsverein "The Ravens" aus Stierstadt. In schicken schwarz-rot glitzernden Kostümen legten die Mädels einen flotten "Can Can" aufs Tanzparkett. Synchron schwangen sie ihre Beine und begeisterten vom ersten Ton an, sodass Patrick sogar eine Zugabe forderte. Hier muss doch mal was Hübsches ran, nicht immer so ein alter Mann!, empörte sich anschließend "Nachwuchsprinzessin" Michelle Wilkinson, die sich als hervorragende Büttenrednerin erwies. Dies kommt nicht von ungefähr, schließlich genoss sie eine tolle Ausbildung in der Rednerschule von Peter Schüßler. Auch für den Elferrat forderte sie eine strikte Verjüngungskur. "Unser KP (Hieronymi) wird dann zuletzt durch George Clooney ersetzt." Nach der Pause hatte Exprinzensprecher Karl-Heinz Barth die große Ehre, die neue Tanzgruppe des "Frohsinn", die Große Garde, ankündigen zu dürfen. Die Tänzerinnen feierten an diesem Abend eine sehr gelungene Premiere. Jeder Schritt saß bei den Mädels perfekt und schon während des Auftrittes bekamen sie lauten Applaus und jubelnde Zwischenrufe. Ein Highlight kam aber noch. Im Ballsaal erklangen eingängige Melodien und freche Texte – das konnten nur die "Nachteulen" vom Clu-Ge-Hu aus Weißkirchen sein. Gleich wurde mitgesungen und geschunkelt, und das Publikum forderte nach drei flotten Liedern lautstark eine Zugabe, die es dann natürlich auch noch geben sollte. Und als selbst dies noch nicht genug war, gab es noch einen weiteren Nachschlag. Mit dem Trio "Top Sound Band" hatten die Gäste im Anschluss an das tolle Programm bei Schlagern und Evergreens noch Gelegenheit, bis tief in die Nacht hinein zu tanzen. http://www.fnp.de/fnp/region/lokales/vordertaunus/narrenvolk-huldigt-prinz-patrick-i_rmn01.c.9516371.de.html !30.01.12 Taunus Zeitung http://www.fnp.de/tz/region/lokales/vordertaunus/da-h-lt-es-keinen-auf-den-sitzen_rmn01.c.9554991.de.html [<img[Pressebild|http://www.fnp.de/sixcms/media.php/rmn01.a.7225.de/thumbnail_514/tzo_frohsinn003.jpg]] Da hält es keinen auf den Sitzen Kein Wunder, präsentieren sich beim Frohsinn doch alle in Bestform Für Oberursels Fastnachtsfreunde ist die Prunksitzung vom Karnevalverein Frohsinn jedes Jahr ein Muss. Am Freitagabend stieg in der Stadthalle die erste von drei Sitzungen – und die Premiere begeisterte die Narren. Und für Dieter Rosentreter ist auch ein neuer Job gefunden. Von Nadine Biersack Gehören zur Orscheler Fastnacht dazu: Die Frohsinnsänger, die noch einmal den Hessentag Revue passieren ließen. Foto: Priedemuth Oberursel. Die große Prunksitzung startetet pünktlich um 19.11 Uhr mit einer wichtigen Warnmeldung. Patrick, ein orientierungsloser junger Mann mit der Neigung, fremden Menschen bunte Metallscheiben um den Hals zu hängen, werde vermisst und gesucht. Er werde von Helfern begleitet, die er "Page" und "Hofmarschall" nenne. Man müsse sich aber nicht vor ihm fürchten, denn er sei mit einem Glas Sekt schon zufriedenzustellen. Nein, zu fürchten braucht man sich vor dem gesuchten Prinz Patrick I. nun wirklich nicht. Davon konnte man sich überzeugen, als der Gesuchte "wiedergefunden" war und bei der Eröffnung der Sitzung friedlich mit seinem Hofstaat, den Tanzgarden und dem Elferrat seine närrischen Untertanen begrüßte – auch ohne Sekt. Durch den restlichen Abend in der fast ausverkauften Stadthalle führte, wie gewohnt, Sitzungspräsident KP Hieronymi. Den musikalischen Einstieg in den Abend legten die Drumkids und die Jugenbrassband hin. Sie spielten fetzige Hits wie "Go West" und weckten Vorfreude auf ihre großen Kollegen der Brassband, die später am Abend noch ihren Auftritt hatten. Zunächst schaute aber Protokoller Stephan Remes dem "Volk aufs Maul" und schaffte es dabei, den Bogen von der Welt- zur Lokalpolitik zu spannen. Während er Angela Merkel als "Mutter Theresa des Euro" bezeichnete, schlug er im nächsten Satz Dieter Rosentreter prompt als neuen Parteivorsitzenden der FDP vor. Garden sind die Hingucker Ein ganz besonderer Hingucker sind immer die Garden des Vereins. Die Minis legten zu der Musik von "High School Musical" einen süßen Showtanz hin, der mittleren Tanzgarde gelang es, dass zum ersten Mal laute "Zugabe"-Rufe ertönten und den zehn Mädels der neuen Großen Garde gelang ihr erster Auftritt vor großem Publikum perfekt. Trotz einer Bänderdehnung kam Michelle Wilkinson ihren Pflichten als "Nachwuchsprinzessin" nach. "Ich bin noch klein und unverdorbe‘, hab als Prinzessin mich beworbe‘, weil dies seit Jahren – Sie werden lache‘, in Orschel nur die Männer mache‘!", erklärte sie ihrem Publikum. Zwischen den Beiträgen verlasen Thomas Sterzel und Dominique Läufer alias "Klaus Kleister und Gundula Brause" die neusten Nachrichten im Frohsinn-Journal. So erfuhren die Narren, dass die Bärenkreuzung mit sage und schreibe zwei Blumenkübeln verschönert wird und, dass das ehemalige Kaufhaus der Mitte unter Denkmalschutz gestellt werden soll. Schließlich finde man so eine schöne DDR-Architektur nur noch selten in Westdeutschland. Auch Thomas Siebenhaar, einer der besten Büttenredner im Hochtaunuskreis, heimste viele Lacher in seiner Rolle als angehender Papa, ein. Und KP Hieronymi erzählte, wie er über die Weihnachtsfeiertage seinen Schaff mit seinem Enkelsohn hatte. "Und bleib mir bloß von dem Bähnchen weg!", musste er den Bub immer wieder warnen. Als die Frohsinn-Sänger, als Müllmänner und Putzfrauen verkleidet, einen Dank auf die Saubermacher am Hessentag sangen, zog ein wenig Melancholie in die Stadthalle ein. Zu der Melodie von "Summer of 69" ließen sie die Highlights des Sommers 2011 noch einmal Revue passieren. Auch die "Marktweiber" nutzen die Bühne, um den wichtigsten Klatsch und Tratsch zu verbreiten. Stefan Strobl und Andreas Kitz outeten sich anschließend als passionierte "Hornbacher". Lustiger hätte man einen Baumarktbesuch nicht beschreiben können. Michael Kukuruzovicz, den viele Narren wahrscheinlich besser als den Austauschkarnevalisten Nanga Ebuku aus dem Kamerun kennen, machte sich wohl nicht nur Freunde, als er "das Volk der Oberstedter in das Reservat Bad Homburg" umsiedeln wollte. Champions-League-Ballett Die Brassband sorgte mit den Faschingshits "Fürstenfeld" und "Schatzi, schenk mir ein Foto" für die musikalischen Höhepunkte, bei denen alle im Saal aufstanden, mitklatschten und mitsangen. Das Frohsinnballett tanzt bekanntlich in der "Champions League" (Hieronymi) und verzauberte auch am Freitag das Publikum mit einem Tanz zur Musik aus "Moulin Rouge". Bei so viel tänzerischer Eleganz konnten die Jungs vom Männerballett des Kleinen Rates zwar nicht ganz mithalten, aber mit ihrer urkomischen Show brachten sie nicht nur die Damen im Saal ins Schwitzen. !21.01.12 ~T-Online: Prinz beim Ministerpräsidenten Den Frohsinn in die Herzen der Menschen tragen Das ist die Höchstzahl an Begleitern für den Empfang - jedem Karnevalsverein stehen insgesamt nur vier Plätze zu. Dennoch scheint die Rotunde des Schlosses ... http://nachrichten.t-online.de/den-frohsinn-in-die-herzen-der-menschen-tragen/id_53382916/index?news !31.01.12 Taunus Zeitung http://www.fnp.de/tz/region/lokales/vordertaunus/das-beste-vom-frohsinn_rmn01.c.9558689.de.html Das Beste vom Frohsinn Oberursel. "Leider ausverkauft" können die Frohsinn-Verantwortlichen nur antworten, wenn es um Kartenwünsche für die große Prunksitzung am kommenden Samstag in der Stadthalle geht. Eine Chance, Highlights aus der diesjährigen Bühnen-Show zu sehen, gibt es aber noch am kommenden Sonntag. Denn auch in diesem Jahr lädt die Stadt Oberursel gemeinsam mit dem Frohsinn wieder zur Fastnachtssitzung für Senioren ein. Los geht es in der Stadthalle um 13.11 Uhr mit einem gemeinsamen "Kreppelessen"; das Programm startet um 14.11 Uhr. Karten gibt’s zum Preis von 8 Euro für den Saal (inklusive Kaffee und Kreppel) und für 5 Euro (Galerie). Tickets können im städtischen Seniorentreff, Hospitalstraße 9, erworben werden. Außerdem werden Kartenreservierungen auch per E-Mail an daniela.neuhaeuser@oberursel.de entgegengenommen. red (red) !06.02.12 Taunus Zeitung HEXENSITZUNG http://www.fnp.de/tz/region/lokales/vordertaunus/fliegende-brusteinlagen-und-speckhueften_rmn01.c.9575087.de.html [<img[Pressebild|http://www.fnp.de/sixcms/media.php/rmn01.a.7225.de/thumbnail_220/fnp_import_tzo_030212hexensitzung12_jr.jpg]] Fliegende Brusteinlagen und Speckhüften Orschels Hexen liefern eine Show, die vom Männer-Striptease bis zur Familientherapie und Zombies viele Überraschungen bietet Orschels Hexen sind Experten in Sachen Stimmung. Zumindest gönnten sie den Besuchern bei ihrer traditionellen Freitagssitzung fast keine Verschnaufpause. Und auch eine kleine technische Panne konnte den Narrenexpress nicht aufhalten. Von Andrea Rosenbaum Oberursel. Flotte Bienen sind die Damen sicher auch ohne Verkleidung. Auch andere Besucher der Orscheler Hexensitzung legten sich bei ihrem Outfit mächtig ins Zeug. Wie viele Stunden "Regina" wohl gebraucht hat, um sich in einen Avatar zu verwandeln? Fotos: Jochen ReichweinWer mit dem Lied "Let Me Entertain You" beginnt, kann eigentlich nur eine gute Show in Petto haben. Und das hatten Orschels Hexen, um das gleich zu verraten. Als die Brassband dem Superhit von Robbie Williams noch das nicht minder bekannte "Que Sera Sera" von Doris Day hinterher schickte, holte sie die Damen im Publikum damit bereits zum ersten Mal von ihren Stühlen. Viele hätten da eigentlich gleich stehen bleiben können, denn nun folgte die Garde des BCV in türkis-braunen Glitzerkleidchen, die gewohnt souverän auch die schwierigen Teile ihres Tanzes auf die Bühne brachte. Oberhexe Birgit Zumbroich begrüßte herzlich und rieb dabei verheißungsvoll an einer bauchigen Flasche, woraufhin eine ebenfalls sehr bauchige, aber dennoch "bezaubernde Jeannie" – wer erinnert sich noch an diesen Klassiker der Fernsehgeschichte? – auf der Bühne erschien. Natürlich erschien nicht die bezaubernde Barbara Eden, die seinerzeit die Rolle des Flaschengeistes verkörperte, sondern Stefan Orf aus Mainz/Kastel. Er war sowohl in Kostüm als auch Rolle geschlüpft und sang "Ich bin die Zuckerpuppe aus der Bauchtanztruppe". Dabei schwang er die doch etwas speckummantelten Hüften sehr zur Freude des jubelnden Publikums. Schnell folgten die ebenfalls nur spärlich bekleideten Herren des Männerballetts vom kleinen Rat des Frohsinn. Diese legten im Rahmen einer Verjüngungskur einen Striptease hin, bei dem sie als Babys endeten. Therapie: neue Frau Mal denk isch, er hat’s im Kopp, mal denk isch, er hat’s unnerum, Frau Doktor, mir brauche ihr’n Rat, leitete Monika Stenz den Familienvortrag ein, den sie mit ihrer Tochter Annalena als Ärztin und ihrem Mann Herbert bestritt. Bleibt nur zu hoffen, dass der echte Herbert im wirklichen Leben öfter zu Wort kommt. Denn flugs hatte die Frau Doktor den Grund herausgefunden, warum der stille Mann nie lachte: "Er leidet an beträchtlichem Terror maximales und ihm helfen kann nur eine neue Frau", stopfte sie der in ihrem Redefluss nicht zu stoppenden Gattin den Mund. Lange Gesichter gab’s darauf bei den Mädels vom CV Stierstadt, die ihren Afrika-Tanz aufgrund eines technischen Problems mit der Musik nicht ganz ausführen konnten. Das Publikum ermunterte die enttäuschten Tänzerinnen jedoch kräftig, sodass ihre Darbietung trotzdem noch ein schwungvolles, rhythmisches Ende fand. Jetzt war es Zeit für die Kostümprämierungen. Den ersten Platz bei der Einzelbewertung erhielt die perfekte Avatardarstellung von Regina Reuscher, Siegerinnen der Gruppenbewertung wurden die "Flying Mothers" des CluGe-Hu Weißkirchen in ihren Schwanensee-Tutus. Im Anschluss bewiesen die Maxis des BCV ihr Können mit einer gelungenen Feuer und Eis-Choreografie und bereiteten damit den Boden für die Jungs der "Bulltowngirls" vom CV Stierstadt. Diese wiederum wirbelten als Indianer und Cowboys dermaßen wild über die Bühne, dass einer sogar seine Brusteinlagen verlor, was natürlich im Publikum lauthalses Gelächter auslöste. Bachstelzen sahnen ab Der "Frankfurter Bub" Hans Henze öffnete nach einer angenehm kurzen Pause seinen Sack als Weihnachtsmann für die Mädels im Zuschauerraum. Heraus kamen zwei Howard-Carpendale-Nummern, zu denen die begeisterten Frauen genauso mitgingen wie zu Henzes Marianne-Rosenberg-Persiflage. Das Kunststück, die Stimmung zu halten, gelang den Bachstelzen des Clu-GeHu, die zuerst als Frösche sowie als herzallerliebste Prinzessinnen nebst Prinz auftraten. Den Traumprinzen finden wollte Stephie Feest mit einer Anzeige, auf die sich Robert Menke als Katzenliebhaber meldete, woraufhin sich eine herrliche Verwechslungsgeschichte entspannte. Nun erklommen die Zombies vom Clu-GeHu das Podium und lieferten einen Thriller, der den Vergleich mit "Jacko" alias Michael Jackson nicht scheuen musste. Auch wenn Stefan Strobel anschließend gut vorbereitet behauptete, die Frauen zu verstehen, drosselte er ein wenig das Tempo, welches allerdings das Frohsinnballett mit einer professionellen musicalähnlichen Tango-Revue wieder aufnahm. Die Wahl zum besten Männerballett entschied Orschels heißeste Boygroup, nämlich die Bachstelzen des Clu-GeHu, absolut zu Recht für sich. !07.02.12 Pressemeldung Frohsinn Herzliche Einladung Eine nicht alltägliche Spende erhalten die Frohsinn-Sänger am kommenden Sonntag, 12.02.2012. Die Firma Vogt und Sommer, Oberursel, spendet der Korporation des Karnevalverein Frohsinn einen gebrauchten aber im Top-Zustand befindlichen Nissan Pickup, der -entsprechend gestaltet- bereits eine Woche später beim Karnevalszug in Oberursel seine Feuertaufe als Zugwagen erleben soll. Zu der Übergabe des Fahrzeuges an den Verein Frohsinn lade ich Sie herzlich ein für Sonntag, 12.02.2012, 11.00 Uhr auf das Gelände Firma Meisterbetrieb Robert Kuhn, Zimmersmühlenweg 46, 61440 Oberursel. Die Wagenbauer der Frohsinn-Sänger sind bereits am Werk, um das neue Fahrzeug für den Karnevalszug vorzubereiten. Der Übergabe-Termin ist daher bestimmt auch für Foto-Journalisten interessant. Mit närrischen Grüßen Gerd Krämer Pressesprecher !06.02.12 Pressemeldung Frohsinn Liebe Kolleginnen und Kollegen, die Wagenbauer des Kleinen Rates (KR) des Verein Frohsinn werkeln eifrig am Mottowagen für den diesjährigen Karnevalszug. Auch in diesem Jahr wird der KR mit seinem Zugbeitrag wieder ein topaktuelles kommunalpolitisches Thema aufgreifen und -so hoffen wir- humorvoll darstellen. Wir würden uns freuen, wenn wir Sie am kommenden Donnerstag, 09.02.2012 ab 19.00 Uhr auf unserer Wagen-Baustelle begrüßen könnten, um Ihnen den Wagen vorzustellen. Treff ist eine Halle der Fa. Metallbau Schneider in der Hohemarkstrasse (direkt neben dem Eingang zu den Büroräumen). Zufahrt und Parkmöglichkeit über Im Heidegraben 8 • D-61440 Oberursel. Unbestätigten Gerüchten zufolge hat auch Ihre Tollität Prinz Patrick I. sein Erscheinen zugesagt. Mit närrischen Grüßen Gerd Krämer Pressesprecher !09.02.12 Taunus Zeitung http://www.fnp.de/tz/region/lokales/vordertaunus/partyzone-frohsinnheim_rmn01.c.9583804.de.html Partyzone Frohsinn-Heim Im Frohsinn-Heim werden am kommenden Samstag wieder die Löcher aus dem Käse fliegen. Und natürlich werden nicht nur die Damen bei der "Oase reloaded" im Frohsinn-Heim voll auf ihre Kosten kommen. Mit verschiedenen Partyzonen, einer Cocktailbar, Disco und Live-Musik sollen Fastnachts-Fans so richtig in Stimmung kommen. "Es gibt Party vom Feinsten und für jeden Feier-Geschmack sollte das Richtige dabei sein", verspricht Stephan Remes, Vorsitzender des Karnevalvereins. Der Startschuss zur Party fällt um 20 Uhr, Einlass ist eine Stunde früher. Verkleidung ist willkommen aber keine Pflicht. Live-Musik kommt von "Die Zwei". Mit ihrem Programm aus Oldies, deutschen Schlagern, Coverversionen bekannter Titel, Neuer Deutscher Welle sowie aktuellen Charthits und bekannten Partykrachern finden die zwei Musiker immer die richtige Mischung, um den Funken überspringen zu lassen. Leser der TZ können Freikarten für die "Oase-Reloaded"-Party gewinnen. Die ersten fünf Anrufer, die sich heute von 11 Uhr an unter der Telefonnummer (0 61 72) 92 73 62 melden, erhalten je zwei Freikarten für die Veranstaltung. Wer sich nicht auf sein Glück verlassen möchte, bekommt die Tickets für 6 Euro in "Christoph’s Backhaus", Hohemarkstraße 6 und im Schuhhaus Schmelcher, Vorstadt 12. veh !13.02.12 Taunus Zeitung http://www.fnp.de/tz/region/lokales/vordertaunus/machtwechsel-mit-feuerwehrhilfe_rmn01.c.9594053.de.html [<img[Pressebild|http://www.fnp.de/sixcms/media.php/rmn01.a.7225.de/thumbnail_220/fnp_import_tzo_11022rathaussturm11_jr_.jpg]] Machtwechsel mit Feuerwehrhilfe Rathausverteidiger ergeben sich der geballten närrischen Übermacht – Nur die Technik will am Schluss nicht mitspielen Nach zäher Gegenwehr durch den Bürgermeister und seine Getreuen sowie mit Hilfe ungewöhnlicher Mittel übernahmen die Orscheler Narren die Macht im Rathaus. Oberursel. Auch der Einsatz der Donnerursel und die Schmähung der impertinenten Angreifer kann den Fall des Rathauses nicht verhindern. Fotos: Reichwein"Sie kommen!" Dieser Schlachtruf löst im sonst an einem Samstagmorgen friedlich daliegenden Rathaus hektische Betriebsamkeit aus. Wer an dieser Stelle fragt, wer da wohl kommen mag, ist kein Fastnachter. Denn auf diese Frage gibt es nur eine Antwort: Prinz Patrick I. sowie das Kinderprinzenpaar aus Bommersheim, Prinz Marius I. und Prinzessin Ronja I., und ihr Gefolge sind im Anmarsch. Mit Gute-Laune-Musik, gespielt von der Brassband des Karnevalvereins Frohsinn, und sage und schreibe drei Kanonen zieht die Gesellschaft durchs Städtchen, um Bürgermeister Hans-Georg Brum (SPD) aus seinem Amtssessel zu katapultieren. Der Rathaussturm der Orscheler Narren ist Tradition und wieder sind viele Fastnachtsfreunde gekommen, um die Tollitäten zu unterstützen. Im Gefolge des Prinzen befinden sich auch noch andere Würdenträger wie der Vorsitzende des Narrenrates, Uwe Eilers, Prinzessin Tanja I. und ihr Hofstaat vom Homburger Carneval-Verein, Prinz Marco I. und Prinzessin Angelique I. mit der Kinderprinzessin Johanna I. aus Merzhausen sowie die Oberurseler Brunnenkönigin. Schnell werden die Türen vor dem Rathaus geschlossen, der Bürgermeister bezieht Position hinter der schützenden Mauer und die "Donnerursel", die Rathauskanone, wird in Stellung gebracht. Was soll der Rabatz? Prinz Patrick, Prinz Marius und Prinzessin Ronja erklimmen den Korb des Drehleiterfahrzeuges, das die Feuerwehr Oberursel Mitte dort postiert hat. Insider wissen: Prinz Patrick I. arbeitet hauptberuflich als Feuerwehrmann. "Ich habe mich auch total darüber gefreut, dass mein Chef ein Fahrzeug für meine Machtübernahme abstellen konnte", so Seine Hoheit. Alexander Wehrheim, der Vater des "kleinen Prinzen", lässt das närrische Trio in die Höhe schweben. "Mensch, was soll denn der Rabatz am Morsche uff dem Rathausplatz?", will Brum ganz ungehalten wissen. "Ich brauch‘ den ganzen Lärm hier net, ich will zurück in mein warm‘ Bett." Darauf kontert Prinz Patrick: "Du willst ins Bett, dann mach dich heim, wir nehmen jetzt dein Rathaus ein." Und auch Prinz Marius: "Im letzte‘ Jahr ganz ungeniert hat hier mein Bruder schon regiert, die Tradition, die setz‘ ich fort und bestimm‘ hier ab sofort." Prinzessin Ronja fackelt nicht lange. "Lass uns in dein Rathaus rein, sonst setzen wir die Waffen ein." Es kommt, wie es kommen muss: Es wird scharf geschossen. Die Kanone des Vereins Freunde des Carnevals aus Bad Homburg, "de alte Fritz", die Kanone des Kappenclubs Niederhöchstadt sowie die Kanone des Karnevalvereins Kelkheim feuern aus allen Rohren. Doch das Rathaus hält noch stand. Die Anmerkung Brums, das Kinderprinzenpaar aus Bommersheim sei noch viel zu jung zum Regieren, wird von Ronja I. nicht gut aufgenommen. "Mir wachse‘ noch, mir sinn ja Kinner, doch du bist alt und wirst net jünger." Nach der zweiten Salve bleibt den Rathaus-Mitarbeitern nur die Kapitulation. "Viel zu schnell", meint Parlamentschef Dr. Christoph Müllerleile (OBG). Doch Brum rückt den Schlüssel und die süße Kasse heraus, was bedeutet Schokoküsse für alle. Mit helau und Hallo ziehen die Narren ins Rathaus und – ste-hen vor verschlossenen Türen; die automatische Glastür öffnet sich nicht. "Das nennt man wohl zivilen Ungehorsam", feixt Moderator Thomas Sterzel. !13.02.12 Pressemitteilung Frohsinn Liebe Kolleginnen und Kollegen, kurz vor dem Höhepunkt der Fastnacht, dem Fastnachtsumzug am 19.02.2012 gibt es noch eine ganz besondere Veranstaltung des Frohsinn, auf die ich Sie gern aufmerksam machen möchte: Am Fastnachtssamstag, 18.02.2012 beginnt um 14.11 Uhr im Vereinshaus Frohsinn, Frohsinn-Weg 1, die große "Kinder-Mitmach-Sitzung". Eintrittskarten gibt es für 1,50 Euro am Veranstaltungstag im Vereinshaus. Auf die kleinen und großen Narren wartet ein abwechslungsreiches Programm an diesem Nachmittag. Der Frohsinn ist besonders stolz auf seinen närrischen Nachwuchs, der nicht zuletzt auch auf der Stadthallen-Bühne sein Können unter Beweis gestellt hat. Bei der Kinder-Mitmach-Sitzung wird Kindern (und Eltern) ein abwechslungsreiches Programm zum Zuschauen und Mitmachen geboten. Die Kinder-Mitmach-Sitzung hat sich in den letzten Jahren zum absoluten Renner bei Jung und Alt entwickelt, ganz besonders, weil das Programm für Kinder ganz überwiegend vom närrischen Frohsinn-Nachwuchs bestritten wird. Für einen Hinweis auf diese Veranstaltung in Ihrer nächsten Ausgabe und die Aufnahme in Ihren Veranstaltungskalender wären wir dankbar. Über einen Besuch eines Berichterstatters würden sich die kleinen und großen Narren selbstverständlich sehr freuen. Mit närrischen Grüßen Gerd Krämer !14.02.12 Pressemitteilung Frohsinn Frohsinn beendet Kampagne mit Heringen und Orden Am Aschermittwoch ist alles vorbei... Nicht beim Frohsinn. Bevor die Aktiven des Frohsinn nach dem Fastnachtszug ihre Orden und Kostüme wegpacken gibt es noch zwei Veranstaltungen zum Abschluß der Kampagne, auf die ich Sie gern hinweisen möchte. Am Aschermittwoch, 22.02.2012 , 19.00 Uhr lädt der Verein alle Aktiven zum traditionellen Heringsessen in das Vereinsheim, Frohsinn-Weg 1 in Oberursel ein. Feierlich wird es dann am Samstag, 25.02.2012 wenn verdiente und langjährig aktive Mitglieder geehrt werden. Zum letzten Mal in dieser Kampagne legen die Aktiven ihre Orden an - und einige erhalten neue Auszeichnungen. Auch in diesem Jahr wird Frohsinn-Chef Stephan Remes an einige Mitglieder wieder die höchsten närrischen Auszeichnungen vergeben - Goldene Flamme für zehn Jahre und Goldenes Vlies für 25 Jahre aktive Fastnacht. Remes : "Wir schauen auf eine sehr erfolgreiche Kampagne mit ausverkauften Veranstaltungen und begeistertem Publikum zurück. Das wollen wir gemeinsam feiern und uns bei denen bedanken, die mit ihrer Arbeit den Verein ausmachen." Beginn des Ordensfestes ist 19.30 Uhr im Vereinsheim Frohsinn, Frohsinn-Weg 1 in Oberursel. Über Hinweise auf diese Veranstaltungen in einer Ihrer nächsten Ausgaben würden wir uns ebenso freuen wie über den Besuch Ihrer Redaktion. Mit karnevalistischen Grüßen Gerd Krämer !17.02.12 Taunus Zeitung http://www.fnp.de/fnp/region/lokales/vordertaunus/dieses-frohsinnmitglied-ist-sogar-gel-ndetauglich_rmn01.c.9607490.de.html [<img[Pressebild|http://www.fnp.de/sixcms/media.php/rmn01.a.7225.de/thumbnail_220/fnp_import_tzo_120212frohsinn_jr1_1702.jpg]] Dieses Frohsinn-Mitglied ist sogar geländetauglich Oberursel. Prinz Patrick I. (Mitte), Dr. Michael Weber und Stephan Remes (von rechts) vom Frohsinn freuen sich über den Pick-up, den Jürgen Sommer (4. von rechts) dem Verein gespendet hat. Foto: Reichwein Die Frohsinnsfamilie hat Zuwachs bekommen: Das neue Mitglied ist grün, groß, geländetauglich, hat vier Räder und ist bereits narrenerprobt. Denn der Toyota-Pick-up der Firma Vogt und Sommer hat die Karnevalisten schon zwei Mal auf dem jährlichen Fastnachtsumzug begleitet. Nun ist der Wagen in das Eigentum des Vereins übergegangen. Vogt und Sommer hat das Auto gespendet. "Man muss schon sagen, wir freuen uns diebisch", so Frohsinn-Vorsitzender Stephan Remes. Für die Frohsinn-Mitglieder ist das Gefährt ein Glücksgriff, den sie quasi der Feinstaubrichtlinie verdanken. Der etwas ältere Pick-up würde nämlich nur nach einer umfangreichen Umrüstung die grüne Plakette bekommen, die man beispielsweise für Fahrten durch Frankfurt braucht. So haben sich die Firmeninhaber, die sich dem Frohsinn eng verbunden fühlen, für eine sinnvolle Weiternutzung entschieden. Es ist wirklich praktisch, weil wir vor zwei Jahren als Grundgerüst für unsere Mottowagen extra eine Plattform gebaut haben, die nur auf dieses Fahrzeug passt, erklärt Remes. So wird das grüne Auto am kommenden Sonntag als Hommage an die Reinigungskräfte des Hessentages durch die Straßen der Brunnenstadt ziehen. "Auf einem Siegerpodest werden ein Straßenkehrer und eine Putzfrau stehen", verrät der Vereinsvorsitzende. Für den Toyota wird es jedenfalls nicht der letzte Einsatz gewesen sein. Er wird dem Verein nun auch außerhalb der Saison gute Dienste leisten.veh (veh) !20.12.12 Taunus Zeitung http://www.fnp.de/fnp/region/lokales/vordertaunus/da-bebt-ganz-orschel-50000-feiern-fassenacht_rmn01.c.9615101.de.html Da bebt ganz Orschel: 50.000 feiern Fassenacht 2 Kommentare Riesen Besucherandrang beim farbenfrohen und ausgelassenen Taunus-Karnevalszug Rund 140 Musik- und Fußgruppen sowie bunte Motivwagen schlängelten sich gestern beim Taunus-Karnevalszug durch Orschels Straßen. Vor allem die Kleinen hatten ihren Spaß und alle Hände voll zu tun. Von Nadine Biersack Oberursel. Versuchten vergeblich den schiefen Marktplatz gerade zu blasen: Die Guggemusiker der Kinziggeister. Fotos: Jochen Reichwein Der Wettergott meinte es am Sonntag mit den Narren aus Oberursel und Umgebung gut. Die klirrende Kälte der vergangenen Wochen verging rechtzeitig ein paar Tage vor dem großen Taunus-Karnevalszug und auch der angekündigte Regen fiel – zumindest für die Dauer des Zuges – nicht. Den närrischen Lindwurm eröffnete der Fanfarencorps aus Königstein, der mit fetzigen Karnevalschlagern die Narren auf "Betriebstemperatur" brachte. Die Stimmung im närrischen Volk stieg dann von Zugnummer zu Zugnummer. Dazu beigetragen hat sicher auch, dass es viele närrische Jubiläen in diesem Jahr zu feiern gab. "Die Pitschis gibt‘s jetzt 20 Jahr‘, das finden wir ganz wunderbar!", lautete das Motto der "Staabacher Pitschetreter", und dieser runde Geburtstag wurde in knalligen Clownskostümen denn auch gebührend gefeiert. Einen Grund zu feiern hat in dieser Kampagne auch der Weißkirchener Club Geselligkeit Humor (Clu-Ge-Hu). In seiner 60-jährigen Vereinsgeschichte reiste er laut eigener Aussage bereits um die ganze Welt, schaute dabei allerdings Jahr für Jahr beim Orscheler Umzug vorbei. Den Bommersheimer Carneval Verein (BCV) gibt es mittlerweile 25 Jahre. Verkleidet als putzige "Urmel aus dem Eis" erweckten die Karnevalisten aus dem Stadtteil die legendäre Augsburger Puppenkiste zum Leben – sehr zur Freude der vielen Kinder am Straßenrand. Und auch die Handballer der Turn- und Sportgemeinde Oberursel (TSGO) ließen es sich nicht nehmen, ihren 75. Geburtstag ausgelassen mit den Oberurseler Narren zu feiern. Ihre Tollität Prinzessin Danica I. aus Bad Soden gab sich auf ihrem schick hergerichteten Komitee-Wagen die Ehre. Ein Ausflug in Oberursels Historie gelang dem Verein Kunstgriff, der das gute alte Seifenkistenrennen wieder aufleben ließ und die "wahrscheinlich größte Seifenkiste der Welt" dabeihatte. Besser besucht Die Stimmung auf der rund fünf Kilometer langen Zugstrecke war ausgelassen. Immer wieder schallten fröhliche "Helau"-Rufe durch die Brunnenstadt. Die meisten der rund 50 000 Zuschauer – damit war der Umzug weit besser besucht als im vergangenen Jahr – waren verkleidet, es wurde gesungen, geschunkelt und gelacht, und so war das närrische Treiben auf wie neben der Strecke ausgelassen und farbenfroh. Dies unterstrichen auch die Tänzer des "Rock‘n‘Roll-Clubs Lollypop", die in knalligen Retrokleidern und mit flotten Tanzschritten zum Mitmachen animierten und für einen kurzen Moment die 60er-Jahre wieder aufleben ließen. Natürlich muss bei einem richtigen Karnevalsumzug auch die Politik auf die Schippe genommen werden. Die Männer der TSG Pfaffenwiesbach nahmen Italiens Ex-Regierungschef Berlusconi und dessen berühmt-berüchtigten "Bunga-Bunga-Partys" als heiße Blondinen in sexy Bademänteln aufs Korn, und die "Lustigen Stierstädter" zogen als Stierstädter Superhelden den Euro aus der Krise. Ein neuer "Ohlenspiegel" Ein Hingucker waren die "Maasgrunder Entenbrüder". In Anlehnung an vergangene Zeiten entwarfen sie einen "Ohlenspiegel". Die Orscheler Kerbeburschen zeigten stolz den längsten Kerbebaum aller Zeiten und hatten sich wie jedes Jahr einiges einfallen lassen, um alle Blicke auf sich zu lenken. Tierisch wurde es mit "Kraut und Rüben" aus Oberhöchstadt. Egal ob Giraffen, Erdmännchen oder Löwen – sämtliche wilden Tiere hatten sie mit dabei. Das Kinderprinzenpaar Ronja I. und Marius I. vom BCV leitete auf seiner königlichen Wagenkutsche, gezogen von einem Schimmel, das Finale des Umzugs ein. Als standesgemäß letzte Zugnummer grüßte dann Prinz Patrick I. samt Hofstaat seine närrischen Untertanen und genoss "seinen" Karnevalsumzug sichtlich. Fleißig warf er Süßes in die Menge. Schwerstarbeit vor allem für die jüngeren Zugbesucher, die mächtig am "Kamelle sammeln" waren. Auch für Patrick I. hieß es im Anschluss ab in die Stadthalle, wo die Ergebnisse der Kostüm- und Zugnummern-Prämierung bekannt gegeben wurden (siehe Text unten). !20.02.12 Taunus Zeitung http://www.fnp.de/fnp/region/lokales/vordertaunus/renner-mit-n-rrischem-knowhow_rmn01.c.9615788.de.html [<img[Pressebild|http://www.fnp.de/sixcms/media.php/rmn01.a.7225.de/thumbnail_220/fnp_import_tzo_180212frohsinn_200212.jpg]] Renner mit närrischem Know-how Oberursel. Volles Haus herrschte wieder mal bei der Mitmach-Sitzung für Kinder. Foto: jrAusgelassen feiernde Mädchen und Jungen, Cowboys, Indianer und Prinzessinnen, Konfetti, Kräppel und natürlich viel Helau: Kurz vor dem Höhepunkt der Orscheler Fastnacht, dem sonntäglichen großen Umzug, war bei der Mitmach-Sitzung am Samstagnachmittag im Vereinshaus des Frohsinns Party angesagt. Pünktlich um 14.11 Uhr begann die Kultveranstaltung für die kleinen Fassenachtler, die sich in den vergangenen Jahren zum absoluten Renner entwickelt hat. Nachwuchs hat bekanntlich der Frohsinn selbst in seinen Reihen, und das nicht zu knapp. Dies zeigte sich bekanntlich zuletzt auch auf der Stadthallen-Bühne, wo die jungen Talente des Vereins ihr Können wieder mal unter Beweis stellten. Klar, dass auch die Kinder-Mitmach-Sitzung unter der Regie von Freddy Eich von so viel humoristischem Kno-how profitierte. Und so wurde den Kindern und deren Eltern ein abwechslungsreiches Programm zum Zuschauen und Mitmachen geboten. Dies reichte von Tanzaktionen über Brezelschnappen bis zum Luftballonhalten. Die Besucher der gut besuchten Sitzung kamen so an dem Nachmittag voll auf ihre Kosten. !20.02.12 Taunus Zeitung http://www.fnp.de/fnp/region/lokales/vordertaunus/von-schluempfen-und-superhelden_rmn01.c.9615798.de.html [<img[Pressebild|http://www.fnp.de/sixcms/media.php/rmn01.a.7225.de/thumbnail_220/fnp_import_tzo_190212karnevalszug23_jr.jpg]] Von Schlümpfen und Superhelden Oberursel. Der Kunstgriff nahm den Moloch Flughafen aufs Korn, der die Region frisst. Zur Belohnung gab’s den Sonderpreis des Fokus O. Die Jury hat in Windeseile getagt: Kaum zwei Stunden nach Ende des Zuges standen bereits die besten Zugnummern des Karnevalsumzuges fest. Den Preis für die beste Fußgruppe gewannen die Frohsinn-Sänger (Zugnummer 125) mit ihrer Darstellung einer Bürgersauna. Den zweiten Preis errang der CluGeHu (Nummer 114) mit "60 Jahre um die Welt". Dritter wurden die Orkas 08 mit ihrer Darstellung von "Nuggets für Orschel". Die Lustigen Stierstädter (Nummer 90) mit den Stierstädter Superhelden wurden Vierte, der Kransberger Narrenclub mit seiner Feuerstein-Version belegte Rang 5. Als besten Wagen befand die Jury die Nummer 117, den BCV mit seiner Bommersheimer Puppenkiste, gefolgt von den Orscheler Kerbeborschen (Nummer 100) mit dem längsten Kerbebaum der Welt. Dritter wurden die Freunde der Orscheler Fassnacht mit ihrer Hessentags-Hommage. Die Freiwillige Feuerwehr Fischbach (Nummer 32) wurde Vierter und der Rock’n’-Roll-Club Lollypop mit seinem Filmstudio der 60er Jahre Fünfte. Den Ehrenpreis der Stadt Oberursel wird dem Kleinen Rat des Frohsinns zugesprochen (Nummer 128), der Ehrenpreis des Landrats ging an die Schlumpfengruppe der Kita am Park (Nummer 77). Den Wanderpokal Rushmoor-Oberursel bekamen die Maasgrunder Entenfreunde (Nummer 78) für ihre Orscheler Fassnachtssymbole zuerkannt, der Ohlenspiegel (Nummer 29) ging an den Kunstgriff, der den Fluglärm aufs Korn nahm. Die BCV Mini-Garde gewann mit "Lukas, den Lokomotivführer" den Sonderpreis der Ex-Prinzen, den Sonderpreis des Fokus O. erhält der Country und Western Club Bommersheim (Nummer 91). Über den Pokal des Kinderprinzenpaares dürfen sich die Kleinen Indianer vom Homburger Carneval Verein (Nummer 62) freuen. Einen "Heimsieg" landete die Mini-Garde des CV Stierstadt (Nummer 109). Die Jury erkannte ihr den Preis als beste Garde zu. Die Preise werden am Freitag, 9. März, von 20 Uhr an im "Schwanen" überreicht.aw (aw) !20.02.12 Frankfurter Rundschau http://www.fr-online.de/fastnacht-in-rhein-main/fastnachtsumzug-oberursel-landebahn-und-rinderwahn,11633356,11669330.html [<img[Pressebild|http://www.fr-online.de/image/view/2012/1/20/11669836,9513476,lowRes,sto120219ZugObu19.jpg.jpg]] Fastnachtsumzug Oberursel Landebahn und Rinderwahn April-Wetter empfing die Zehntausende von Besuchern des größten karnevalistischen Umzugs im Hochtaunuskreis. Der guten Stimmung unter den Jecken tat das in Oberursel natürlich keinen Abbruch. Vom Fanfarencorps Königstein über die Seulberger Taunuseulen, den Limes-Krätscher aus Wehrheim bis hin zum Männerballett des Bad Homburger Carnevals Verein waren alle vertreten, um dem Hochtaunuskreis das Flair einer karnevalistischen Hochburg zu verleihen. Selbstverständlich drückten auch die Oberurseler Fassenachter mit zahlreichen Zugnummern dem Umzug ihren Stempel auf. So zum Beispiel die Karnevalisten von Kunstgriff Oberursel, die ihre Zugnummer unter das Motto „Wir fressen die Region“ gestellt hatten. Ziel ihrer politischen Attacke war der Flughafenbetreiber Fraport und die neue Landebahn des Frankfurter Flughafens, die für viel Bürgerzorn sorgt. „Lustiger als Rinderwahn ist die neue Landebahn“, brachten sie ihren Protest auf den Punkt. Narren in Oberursel bei Verkleidung zurückhaltend Für ihr politisches Statement gab es Applaus von den Karnevalisten am Straßenrand, die sich trotz guter Laune bei ihrer Maskerade eher zurückhaltend zeigten. Nicht wenige kamen im winterlich-angepassten Outfit, um sich vom Faschingstreiben in der Oberurseler Innenstadt anstecken zu lassen. Diejenigen, für die Fasching auch bedeutet, in eine andere Rolle zu schlüpfen, bevorzugten eine Clowns-Kostümierung. Wer es sich einfacher machen wollte, setzte sich eine blonde oder schwarze Perücke auf, um auch optisch als ausgewiesener Karnevalist in Erscheinung zu treten. Offenbar besteht bei den Oberurselern ein latenter Hang zur Piraterie, denn wie ist es sonst zu erklären, dass Super-Pirat Jack Sparrow aus dem Film „Fluch der Karibik“ in Orschel fröhliche Urstände feierte. Leider gab es auch unerfreuliche Begleiterscheinungen. So wurde eine 16-Jährige mit einer Alkoholvergiftung ins Frankfurter Bürgerhospital eingeliefert. In den frühen Morgenstunden wurde ein 13-Jähriger in der Oberhöchstadter Straße ebenfalls mit einer Alkoholvergiftung aufgefunden und in die Kinderklinik nach Höchst gebracht. !21.02.12 Taunus Zeitung http://www.fnp.de/fnp/region/lokales/vordertaunus/prinz-patrick-i-sorgte-fuer-lichtblicke_rmn01.c.9618846.de.html Prinz Patrick I. sorgte für Lichtblicke Oberursel. In der Sozialstation v.l.n.r.: Edeltraud Lintelow,Renate Flora, Prinz Patrick I., Heike Schumann, Annekatrin Rohde und Frederick Wilkinson. Foto: tz Pünktlich um 15.11 Uhr betrat Prinz Patrick I. mit Pagin Annekatrin Rohde und Hofmarschall Frederick Wilkinson die Räume der Sozialstation in Oberursel. Schon vor dem hohen Besuch hatten sich die Gäste, zehn demenziell Erkrankte, zusammen mit den ehrenamtlichen Betreuern in Stimmung gebracht. Die hatten Sketche und Reden vorbereitet, und auch so manches Karnevalslied wurde angestimmt – die Texte konnten alle auswendig. Der Prinz kam nicht mit leeren Händen. Stolz zeigte er den Schlüssel vor, den er beim Sturm des Oberurseler Rathauses erobert hatte. Bis Aschermittwoch solle nur Freude und Lachen in der Stadt zu hören sein. "Ich bin begeistert, so viel Engagement von Ehrenamtlichen und die Freude der Demenzkranken – da macht Karneval noch mehr Spaß", berichtete er. Anschließend überreichte er Renate Flora, der Koordinatorin von "Lichtblicke", seinen Prinzenorden. "Lichtblicke" unterstützt demenziell Erkrankte und ihre Angehörigen in der häuslichen Betreuung. Patrick I. versprach: "Wir kommen nächstes Jahr wieder." Sein Auszug wurde von lautem Applaus und einem dreifachen "Orschel Helau" begleitet. Für die Demenzkranken ging das Programm noch weiter. So sorgte Stefan Strobel vom Bommersheimer Carnevals Verein als "Hornbacher" für viel Gelächter. Auch er zeigte sich von der Stimmung und der Atmosphäre berührt. Strobel: "Die Arbeit für und mit Demenzkranken muss weiter unterstützt werden. !22.02.12 Taunus Zeitung http://www.fnp.de/fnp/region/lokales/vordertaunus/der-dank-eines-prinzen_rmn01.c.9621803.de.html [<img[Pressebild|http://www.fnp.de/sixcms/media.php/rmn01.a.7225.de/thumbnail_220/fnp_import_tzo_130212luft_jr1_220212.jpg]] Der Dank eines Prinzen Feierlich legte Patrick I. seine höchste Ehrenauszeichnung – seinen Prinzenorden – um den Hals von Marco Hentsch-Sulzbach, Geschäftsführer des Kronberger Autohauses Luft. Oberursel. Patrick I. dankte Marco Hentsch-Sulzbach und hängte ihm den Prinzenorden um den Hals, mit dabei Markus Nickel, Benjamin Gröber (v. li.) und Hofmarschall Frederick Wilkinson. Foto: jrGemeinsam mit seinem Hofmarschall Frederick Wilkinson hatte der Prinz dem Unternehmen seine Aufwartung gemacht. Schließlich stellt das Autohaus dem Oberurseler Hofstaat bereits seit elf närrischen Jahren kostenlos einen mobilen Untersatz zur Verfügung. In der Regel das neuste Modell des VW-Busses. Es war auch mein eigener Wunsch, dafür einmal danke zu sagen, erklärte Patrick I. Immerhin war dieser Bus vorübergehend fast seine zweite Heimat. Gut, dass der Wagen immer top ausgestattet ist, inklusive Sitzheizung und Ähnlichem. Immerhin rückt der Bus zu rund 190 Terminen während der Kampagne aus. "Im Hochtaunuskreis verfahren wir da bestimmt rund 1000 Kilometer", schätzte Seine Hoheit. "Rechnet man die Fahrten nach außerhalb mit, kommt man locker auf 2000", ergänzte Uwe Eilers, Vorsitzender des Oberurseler Narrenrates. Durch ihn entstand einst auch der Kontakt zu dem Autohändler. "Die Zusammenarbeit ist wirklich sehr, sehr gut", lobte Eilers, "wir bekommen den Bus zur Verfügung gestellt einmal für die Kampagneneröffnung und dann von Januar bis Aschermittwoch. Dafür brauche ich quasi nur anzurufen. Das ist nicht selbstverständlich."veh (veh) !23.02.12 Taunu Zeitung http://www.fnp.de/fnp/region/lokales/vordertaunus/patrick-muss-den-schluessel-wieder-herausruecken_rmn01.c.9623638.de.html [<img[Pressebild|http://www.fnp.de/sixcms/media.php/rmn01.a.7225.de/thumbnail_220/fnp_import_tzo_hering0031_230212.jpg]] Patrick muss den Schlüssel wieder herausrücken Das ist an Aschermittwoch so üblich – Für die Oberurseler bleibt er der „Prinz mit dem großen Herzen“ Prinz Patrick I. ist kein lauter Zeitgenosse – wenn man einmal von den donnernden Helau-Rufen in seiner Kampagne absieht. Nein, er bevorzugt die leisen Töne. "Prinz mit großem Herz", so wird er oft beschrieben. Doch auch für ihn endete am Aschermittwoch die Regentschaft. Von Christine Šarac Oberursel. Ex-Prinz Patrick I. (Mitte) überreicht beim Katerfrühstück am Aschermittwoch Bürgermeister Hans-Georg Brum den Rathausschlüssel. Mit dabei war nicht nur sein Hofstaat, sondern auch das Bommersheimer Kinderprinzenpaar Ronja I. und Marius I. Foto: Priedemuth "Ich hätte gerne meinen Schlüssel wieder." Diese Bemerkung von Bürgermeister Hans-Georg Brum (SPD) lässt die Gäste im Raum St. Ursula in der Brasserie in Gelächter ausbrechen. Natürlich gibt Prinz Patrick I. den Rathausschlüssel, den er Brum beim Rathaussturm abgejagt hatte, wieder ordnungsgemäß zurück. "Aber nicht wieder so weit weg legen, dass er beim nächsten Sturm gesucht werden muss", meint Uwe Eilers, Vorsitzender des Oberurseler Narrenrates, schelmisch. Das traditionelle Katerfrühstück mit Hering am Aschermittwoch ist auch Anlass, Rückschau auf die Kampagne von Prinz Patrick I. zu halten. "Wir hatten mit ihm einen tollen Prinzen und die Stadtverwaltung war stolz darauf, dass ein Kollege das närrische Zepter hochgehalten hat", lobt Bürgermeister Brum. "Und das Kinderprinzenpaar Ronja I. und Marius I.", ergänzt der Rathauschef, "hat viele Auftritte mit Bravour absolviert und immer frei gesprochen." Eilers beschreibt Prinz Patrick zudem als ganz Großen. Stephan Remes, Vorsitzender des Karnevalvereins Frohsinn, in dem die Tollität aktiv ist, würdigt ihn als "Prinz mit großem Herzen". Bemerkenswert ist, dass er in seiner Kampagne nahezu jede Korporation besucht hat. Genau 144 Termine hat er in seiner Kampagne absolviert und kein einziger zugesagter Auftritt wurde von ihm gecancelt. "Für mich war das keine lästige Pflicht, im Gegenteil", sagte der Prinz, der ja nun offiziell keiner mehr ist. "Ich habe mich auf jeden dieser Termine gefreut." Ins Nichts fallen Aber wie sieht es jetzt am Aschermittwoch in ihm aus? "Es ist schon bitter, wenn man nach dem großen Trubel ins Nichts fällt", bekennt Patrick Volz, wie der Prinz bürgerlich heißt. "Eine Woche vor dem Taunus-Karnevalszug steigert sich das Tempo immer mehr. Man geht von Termin zu Termin, schaut in strahlende Kinderaugen. Prinz Patrick zu sein wird zur zweiten Identität und plötzlich ist das alles auf einmal abgeschnitten", bedauert er. Doch die traditionelle Zeremonie des Prinzen-Auszugs, die immer am Abend des Faschingsdienstages um Punkt 24 Uhr stattfindet, habe ihm auch geholfen, mit der Situation umzugehen. Während seiner Kampagne habe er regelmäßig ein "Prinzentagebuch" geführt. "So kann ich noch mal alles Revue passieren lassen." Aber was wäre ein Prinz ohne seinen Hofstaat? "Wir waren ein ganz tolles Team und hatten sehr viel Spaß", so die ehemalige Hoheit. "Die Pagen haben auf mein Zepter aufgepasst wie die Schießhunde. Auf meinen Hofmarschall war immer Verlass und Ludwig Reuscher hat im Hofmarschall-Büro alle Fäden in der Hand gehalten." Ein Missgeschick gab es allerdings leider auch, denn Pagin Annekatrin wurde am Bein verletzt und musste am Sonntag mit Krücken auf den Prinzenwagen. Davon einmal abgesehen schwärmt die Ex-Hoheit: "Der Zug war wirklich toll." Und als er auf dem Wagen an seinem Haus am Marktplatz vorbeizog, winkte seine Frau Yvonn von oben herunter. Prinz zu sein, das sei ein Wahnsinnsgefühl, versucht er die Sache zu beschreiben, doch dann wird er von seinen Gefühlen überwältigt und kann nicht weitersprechen. Diese Woche hat Patrick Volz noch Urlaub genommen. "In dieser Zeit möchte ich helfen, den Prinzenwagen wieder abzubauen und für meinen Nachfolger bereit zu machen", erzählt er. Zwar ist noch keine Hoheit für die Kampagne 2012/13 gefunden. Doch es gebe mehrere Interessenten, sagt Narrenratschef Eilers. Für Patrick Volz jedenfalls beginnt kommende Woche wieder das normales Leben und sein Job als hauptamtlicher Gerätewart in der städtischen Organisationseinheit Brand- und Zivilschutz. Und in einigen Wochen stellt er sich dann der nächsten großen Aufgabe, dann wird er nämlich Papa. !24.02.12 Pressemitteilung Frohsinn Feierlich wird es am Samstag, 25.02.2012 wenn verdiente und langjährig aktive Mitglieder geehrt werden. Zum letzten Mal in dieser Kampagne legen die Frohsinn-Aktiven ihre Orden an - und einige erhalten neue Auszeichnungen. Auch in diesem Jahr wird Frohsinn-Chef Stephan Remes an einige Mitglieder wieder die höchsten närrischen Auszeichnungen vergeben - Goldene Flamme für zehn Jahre und Goldenes Vlies für 25 Jahre aktive Fastnacht. Remes : "Wir schauen auf eine sehr erfolgreiche Kampagne mit ausverkauften Veranstaltungen und begeistertem Publikum zurück. Das wollen wir gemeinsam feiern und uns bei denen bedanken, die mit ihrer Arbeit den Verein ausmachen." Beginn des Ordensfestes ist 19.30 Uhr im Vereinsheim Frohsinn, Frohsinn-Weg 1 in Oberursel. Gerd Krämer !28.02.12 Taunus Zeitung http://www.fnp.de/fnp/region/lokales/vordertaunus/ritterschlag-vom-opa_rmn01.c.9637041.de.html [<img[Pressebild|http://www.fnp.de/sixcms/media.php/rmn01.a.7225.de/thumbnail_220/fnp_import_tzo_ordensfest004_280212.jpg]] Ritterschlag vom Opa Brav kniete Enkelin Melanie Bremser vor Opa Karl-Heinz Barth nieder, um die Ritterwürde zu empfangen. Foto: Priedemuth "Der Verein hat supertoll mitgezogen und zwar auf allen Ebenen", lobte der Frohsinn-Vorsitzende Stephan Remes am Samstag die Mitglieder bei der Ordensfeier des Vereins. Und rund 140 Gäste lauschten im Vereinsheim seinen Worten. "Wir haben in der vergangenen Kampagne wirklich eine ganze Menge miteinander geschafft", so Remes weiter, "dazu zählen nicht nur die Sitzungsprogramme, die ganzen Veranstaltungen und die ganz tolle Zugbegleitung. Das ist alles Teamwork." Einigen engagierten Mitgliedern galt sein Dank besonders. Doch zunächst überreichte Ex-Prinz Patrick I. noch rund zehn verdienten Kampagnenunterstützern seinen Prinzenorden. Danach betrat erneut Remes die Bühne. Im Gepäck hatte er 12 goldene Flammen – für zehnjährige aktive Vereinsmitgliedschaft – und drei Mal das goldene Vlies für 25 Jahre Engagement. Zu den Geehrten, die die goldene Flamme erhielten, gehört beispielsweise Marcus Tober: Er begann 1995 seine Frohsinn-Karriere bei den Drumkids der Brassband und kam 2000 zur Ehrengarde, deren Vize-General er mittlerweile ist. Auch abseits der Bühne packt Tober, der sich zudem beim DRK ehrenamtlich engagiert, fleißig mit an – beispielsweise bei den Hauspartys. Frohsinn-Sänger Werner Erbacher, Sabrina Wilkinson von der Großen Garde, Ehrengardist Peter Hansen, Kurt Rischke und Hans-Jörg Lauer aus dem Kleinen Rat, sowie die Elferratsmitglieder Edzard Reul, Jens Matthiesen und Sven Krailling sind seit dem Wochenende ebenfalls Träger der goldenen Flamme. Hillary und Andrew Lloyd aus Rushmoor sowie Julia Kolaas, die am Bodensee wohnt, konnten nicht zur Verleihung anreisen. Sie erhalten ihre Auszeichnung später. Das gilt auch für Andrea Unger vom Kleinen Rat, die den Sonderorden "33 Jahre aktiv" erhält. Viele Fastnachtfans kennen sie als "Orscheler Marktweib". Mit der Verleihung des goldenen Vlieses war dann der Höhepunkt des Abends erreicht. Gebannt verfolgte das Publikum den kleinen Staatsakt. Im Kreise der anwesenden Vliesträger wurden drei Frohsinn-Mitglieder durch Remes beziehungsweise durch den Ehrenvorsitzenden Karl-Heinz Barth zum Ritter geschlagen. Diese Zeremonie hat eine lange Tradition im Bund deutscher Karnevalisten. Genauer gesagt, ist der Frohsinn nun um drei "Ritterinnen" reicher: Christel Eich und Mirjana Schiefer leiteten 15 Jahre lang die Minis und sind auch sonst stark in die Arbeit des Vereins eingebunden. Die Dritte im Bunde, Melanie Bremser, stieß bereits 1987 als Vierjährige zu den Mini-Majorettes. Seit 2007 ist sie Korporationsführerin der Tanzgarde und brilliert nun auch als Trainerin. Vielen ist sie als ehemalige Brunnenkönigin bekannt. Zudem repräsentierte sie den Verein auch als Pagin von Prinz Frederick I. Wilkinson. Klar, dass Remes bei dieser Ehrung Karl-Heinz Barth den Vortritt ließ, ist er doch Melanies Großvater. In Klausur Nach dem ganzen Kampagnentrubel und der Ordensfeier heißt es für den gesamten Verein nun einmal Luft zu holen, natürlich nicht allzu lange. Manche Abteilungen proben sogar durchgängig. "Der Sommer ist auch schnell rum und die nächste Kampagne ist da", so Remes. In zwei Wochen gehen ein paar Frohsinn-Vertreter in Klausur. "An diesem Abend wollen wir nicht mehr wissen, was alles toll gelaufen ist, sondern die Schwachstellen benennen und das, was man verbessern kann", erläutert er. "Auch wenn man Erfolg hat, heißt das nicht, dass man nicht noch an dem einen oder anderen Rädchen drehen kann." Das Ziel für 2012/2013 heißt zunächst, das Niveau aufrechtzuerhalten. "Es gibt einige Vorschläge, wie die Programme noch unterhaltsamer gestaltet werden können, doch das muss noch diskutiert werden." veh !01.03.12 Pressemitteilung Frohsinn Sehr geehrte Damen und Herren, Prinz Patrick I wird am kommenden Samstag aus seinem Amt verabschiedet und in die Korporation der "Ex-Prinzen" aufgenommen. Zu dieser Veranstaltung darf ich Ihre Redaktion im Namen des Ex-Prinzensprechers Karl-Heinz Barth sehr herzlich einladen. Die Veranstaltung findet statt: Samstag, 3.3.2012; 20.00 Uhr; Casa Primavera, Oberstedter Str. 43, 61440 Oberursel. Die Ex-Prinzen würden sich sehr freuen, Ihre Redaktion zu dieser Veranstaltung begrüßen zu dürfen. Mit freundlichen Grüßen Gerd Krämer !07.03.12 Taunus Zeitung http://www.fnp.de/tz/region/lokales/vordertaunus/zepter-ade_rmn01.c.9659793.de.html Zepter ade! Gerade noch rechtzeitig drückte die Fotografin auf den Auslöser, um Patrick I. noch einmal mit Zepter aufs Bild zu bannen, dann musste der Prinz, der nun in die Reihen der Ex-Prinzen aufgenommen wurde, dieses Insigne seiner Macht abgeben. Sein Prinzenkostüm und die Narrenkappe hatte der Oberurseler da längst abgelegt und das rote Jackett mit dem schwarzen Revers schon übergestreift. Das Prinzendasein war damit für ihn endgültig beendet, nicht aber ohne dass noch einmal kurz Rückschau auf eine tolle Kampagne gehalten worden wäre. Das war die Aufgabe des Sprechers der Ex-Prinzen, Karl-Heinz Barth (rechts im Bild), der seine Lobeshymne auf den scheidenden Prinzen und dessen Gefolge gar in Reinform gebracht hatte. Geschenke gab’s auch, für den Prinzen ein großes gerahmtes Foto von Seiner Hoheit und dem Hofstaat, für die Pagen Carolyn und Annekatrin als Anerkennung Blumen und vom Prinzen Fotobücher mit 600 Bildern von der Kampagne. !16.04.12 Pressemeldung Frohsinn Krawatten knoten für guten Zweck Marktweiber mit schrägster, ausgefallenster und buntester Krawatten-Kollektion Oberursels bei "Autos in der Allee" Seit 25 Jahren sind die Marktweiber des Kleinen Rates aus der Oberurseler Fastnacht nicht mehr wegzudenken. Mit flotten Sprüchen und viel Charme unterhalten sie jedes Jahr ihr Publikum, nehmen das lokale Geschehen mit spitzer Feder und eingängigen Melodien aufs närrische Korn. Nicht nur bei den KR-Sitzungen im November, sondern auch auf der Stadthallenbühne des Frohsinn gehören sie zu den Aushängeschildern der Oberurseler Saalfastnacht. Aus Anlass des Jubiläums laden die Marktweiber bei "Autos in der Allee" am kommenden Wochenende 21. und 22.04.2012 an ihren eigenen Stand ein. Sie haben weder frisches Obst und Gemüse im Angebot, noch chromglänzende Autos, sondern die schrägste, ausgefallenste und bunteste Krawatten-Kollektion Oberursels. "Wir haben in 25 Jahren an Weiberfastnacht den Oberurseler Männern so viele Schlipse abgeschnitten, dass wir in Sorge sind bald keine männlichen Schlipsträger mit unversehrten Krawatten mehr anzutreffen." schmunzelt Marktweib Tini Steden. Deshalb wollen sie die Oberurseler Männerwelt mit dem dringend benötigten Nachschub versorgen. Die Sammlung reicht von grell-bunt-schräg bis dezent-modern. "1 Euro mindestens, bzw. was das schöne Stück dem Käufer wert ist" wollen sie von ihrer Kundschaft verlangen, erzählen die Marktweiber augenzwinkernd und hoffen auf einen spendablen Käuferkreis, denn der Erlös aus dem Verkauf wird für einen guten Zweck gespendet. Die Käufer können auch gleich ihre Meisterschaft im Krawattenbinden unter Beweis stellen, dafür sorgt ein Wettbewerb, der an beiden Tagen am Marktweiberstand ausgetragen wird. Auch viele Oberurseler Prominente aus Politik, Wirtschaft und Vereinsleben sind dazu eingeladen. "Mal sehen, wer sich was traut." hofft Tini Steden auf rege Beteiligung. "Es soll ja Männer geben, die ihren Schlips gar nicht selber knoten können und das lieber der Partnerin überlassen." Dabei kommt es bei dem Wettbewerb, der täglich gegen 12 Uhr ausgetragen wird überhaupt nicht auf den besonders formvollendeten Knoten an, sondern auf die Fähigkeit innerhalb einer bestimmten Zeit die meisten Schlipse zu binden. Echte Marktweiber-Gaudi ist garantiert. Der Stand der Marktweiber steht an beiden Tagen der Veranstaltung (21. und 22.04.2012) vor Intersport Taunus in der Kumeliusstrasse. Neben einer schier unüberschaubaren Krawatten-Kollektion ist auch fürs leibliche Wohl bestens gesorgt. Über einen Vorbericht in einer Ihrer nächsten Ausgaben würden wir uns ebenso freuen, wie über den Besuch ihrer Zeitung am Marktweiberstand in der Kumeliusstrasse. Mit freundlichen Grüßen Gerd Krämer Pressesprecher !Text für die Fokus ~O-Beilage ~AiA. (Autos in der Allee) Krawatten knoten für guten Zweck Marktweiber mit Jubiläumsstand bei Autos in der Allee Seit 25 Jahren sind die Marktweiber des Kleinen Rates aus der Oberurseler Fastnacht nicht mehr wegzudenken. Mit flotten Sprüchen und viel Charme unterhalten sie jedes Jahr ihr Publikum, nehmen das lokale Geschehen mit spitzer Feder und eingängigen Melodien aufs närrische Korn. Nicht nur bei den KR-Sitzungen im November, sondern auch auf der Stadthallenbühne des Frohsinn gehören sie zu den Aushängeschildern der Oberurseler Saalfastnacht. Aus Anlass des Jubiläums werden die Marktweiber bei "Autos in der Allee" am 21. und 22.04.2012 mit einem eigenen Stand vertreten sein. Diesmal haben sie kein frisches Obst und Gemüse im Angebot, sondern die schrägste, ausgefallenste und bunteste Krawatten-Kollektion Oberursels. "Wir haben in 25 Jahren an Weiberfastnacht den Oberurseler Männern so viele Schlipse abgeschnitten, dass wir in Sorge sind bald keine männlichen Schlipsträger mit unversehrten Krawatten mehr anzutreffen." schmunzelt Marktweib Tini Steden. Deshalb wollen sie die Oberurseler Männerwelt mit dem dringend benötigten Nachschub versorgen. Die Sammlung reicht von grell-bunt-schräg bis dezent-modern. "1 Euro mindestens, bzw. was das schöne Stück dem Käufer wert ist" wollen sie von ihrer Kundschaft verlangen, erzählen die Marktweiber augenzwinkernd und hoffen auf einen spendablen Käuferkreis, denn der Erlös aus dem Verkauf wird für einen guten Zweck gespendet. Die Käufer können auch gleich ihre Meisterschaft im Krawattenbinden unter Beweis stellen, dafür sorgt ein Wettbewerb, der an beiden Tagen am Marktweiberstand ausgetragen wird. Viele Oberuirseler Prominente aus Politik, Wirtschaft und Vereinsleben sind dazu eingeladen. "Mal sehen, wer sich was traut." hofft Tini Steden auf rege Beteiligung. "Es soll ja Männer geben, die ihren Schlips gar nicht selber knoten können und das lieber der Partnerin überlassen." Dabei kommt es bei dem Wettbewerb, der täglich gegen 13 Uhr ausgetragen wird überhaupt nicht auf den besonders formvollendeten Knoten an, sondern auf die Fähigkeit innerhalb einer bestimmten Zeit die meisten Schlipse zu binden. Echte Marktweiber-Gaudi ist garantiert. Der Stand der Marktweiber steht an beiden Tagen der Veranstaltung (21. und 22.04.2012) vor Intersport Taunus in der Kumeliusstrasse. Neben einer schier unüberschaubaren Krawatten-Kollektion ist auch fürs leibliche Wohl bestens gesorgt. !17.04.12 Taunus Zeitung http://www.fnp.de/tz/region/lokales/hochtaunus/wettbewerb-im-schlipsbinden_rmn01.c.9765687.de.html ''Wettbewerb im Schlipsbinden''<br> Oberursel. Seit 25 Jahren sind die Marktweiber des Kleinen Rates aus der Oberurseler Fastnacht nicht mehr wegzudenken. Nicht nur bei den Sitzungen des Kleinen Rates im November, sondern auch auf der Stadthallenbühne des Frohsinn gehören sie zu den Aushängeschildern der Oberurseler Saalfastnacht. Aus Anlass des Jubiläums laden die Marktweiber bei "Autos in der Allee" (AiA) am kommenden Wochenende an ihrem eigenen Stand ein. Sie haben weder frisches Obst und Gemüse im Angebot, noch chromglänzende Autos, sondern die schrägste, ausgefallenste und bunteste Krawatten-Kollektion Oberursels. Wir haben in 25 Jahren an Weiberfastnacht den Oberurseler Männern so viele Schlipse abgeschnitten, dass wir in Sorge sind, bald keine männlichen Schlipsträger mit unversehrten Krawatten mehr anzutreffen, schmunzelt Marktweib Tini Steden. Deshalb wollen sie die Oberurseler Männerwelt mit dem dringend benötigten Nachschub versorgen. Die Sammlung reicht von grell-bunt-schräg bis dezent-modern. "Ein Euro mindestens, beziehungsweise was das schöne Stück dem Käufer wert ist", wollen sie von ihrer Kundschaft verlangen, erzählen die Marktweiber augenzwinkernd und hoffen auf einen spendablen Käuferkreis, denn der Erlös aus dem Verkauf wird für einen guten Zweck gespendet. Die Käufer können auch gleich ihre Meisterschaft im Krawattenbinden unter Beweis stellen, dafür sorgt ein Wettbewerb, der an beiden Tagen am Marktweiberstand ausgetragen wird. Dabei kommt es bei dem Wettbewerb, der täglich gegen 12 Uhr ausgetragen wird überhaupt nicht auf den besonders formvollendeten Knoten an, sondern auf die Fähigkeit, innerhalb einer bestimmten Zeit die meisten Schlipse zu binden. Der Stand der Orscheler Marktweiber steht an beiden AiA-Tagen vor Intersport Taunus in der Kumeliusstraße. Außer einer schier unüberschaubaren Krawatten-Kollektion ist auch fürs leibliche Wohl bestens gesorgt. red (red) <br> <br> !21.04.12 RheinMainExtra Tipp Online Auch lokale Prominenz greift zum Schlips extratipp.com Oberursel – Sie sind der bunte Fleck bei „Autos in der Allee“ an diesem ... Oberursel, Stephan Remes, Vorsitzender des Karnevalvereins Frohsinn und sogar ... [<img[Pressebild|http://www.extratipp.com/bilder/2012/04/21/2284832/2086897044-320_008_3793983_elpet_mark.9.jpg]] Für den guten Zweck: Knotenbinden auf Zeit Oberursel – Sie sind der bunte Fleck bei „Autos in der Allee“ an diesem Wochenende: An ihrem Stand verkaufen die Oberurseler Marktweiber Schlipse für den guten Zweck und fordern zum Krawatten-Wettbinden auf. Von Dirk Beutel © db Von schick bis schräg: Doris Reuter von den Oberurseler Marktweibern hat sich schon eine Krawatte umgebunden. Sie sind geblümt, gestreift oder gepunktet. Auf manchen lächeln Teddybären um die Wette, andere ziert frisches Obst: Krawatten. Mehrere hundert Exemplare haben die Oberurseler Marktweiber in den vergangenen zwei Jahren gesammelt: „Wir haben in 25 Jahren an Weiberfastnacht den Männern in Oberursel so viele Schlipse abgeschnitten, dass wir uns Sorgen gemacht haben, ob es denn noch genug unversehrte Schlipse gibt“, sagt Christine Steden. Tatsächlich findet man unter den Halsbinden jede erdenkbare Stilrichtung: Von quietschig bis retro, vom Spaßmotiv bis zum Seidenschlips ist alles dabei und soll an diesem Wochenende bei „Autos in der Allee“ für den guten Zweck verkauft werden: Ein Euro pro Stück mindestens. „Oder eben, was das schöne Stück dem Käufer wert ist, “ sagt Marktweib Judy Ebner-Netzer. Der Verkaufserlös soll einem guten Zweck zugute kommen. Neben dem Verkauf haben sich die Marktweiber auch einen besonderen Wettbewerb ausgedacht: Knotenbinden auf Zeit. „Wer in einer vorgegebenen Zeit die meisten Krawatten binden kann, wird prämiert“, sagt Steden: „Mal sehen, wer sich was traut. Es soll ja Männer geben, die ihren Schlips gar nicht selber knoten können. Die überlassen das lieber ihrer Partnerin.“ Schon jetzt hat sich lokale Prominenz für den Wettbewerb angekündigt: Unter anderen knoten Oberursels Bürgermeister Hans-Georg Brum, Michael Reuter, Vorsitzender des Forums der Selbständigen Oberursel, Stephan Remes, Vorsitzender des Karnevalvereins Frohsinn und sogar Oberursels Frauenbeauftrage Gabriela Wölki. Die Marktweiber stehen am Samstag von zehn bis 18 Uhr und am Sonntag von elf bis 18 Uhr mit ihrem Stand in der Kumeliusstraße, direkt am Sporthaus. http://www.extratipp.com/nachrichten/regionales/rhein-main/guten-zweck-knotenbinden-zeit-2284832.html Angetreten waren 9 Gardetanzgruppen. Das Erreichen des 4. Platzes ist für die junge Truppe aus Reihen des Frohsinn ein toller Erfolg, der von Stephan Remes, Vorsitzender des Karnevalvereins Frohsinn, entsprechend gewürdigt wurde. "Das bestätigt den hervorragenden Eindruck, den die Garde bei unseren Saalveranstaltungen in der letzten Kampagne hinterlassen hat. Das Publikum war jedes Mal begeistert. Dass sie aber auch eine kritische, fachkundige Jury überzeugen konnten, macht uns stolz." Die Große Garde war erst im vergangenen Jahr gegündet worden und absolvierte ihren allerersten Auftritt vor Publikum bei der Eröffnungssitzung des Frohsinn im November 2011. Die 10 Tänzerinnen hatten vorher in anderen Tanzformationen des Frohsinn ihre tänzerischen Sporen erworben, einige tanzen gleichzeitig noch im Frohsinn-Ballett. Die Tänze werden von den Gardemitgliedern selbst erarbeitet und einstudiert. "Das gute Ergebnis motiviert uns natürlich," betonen Carolyn Wilkinson und Melanie Bremser, die sich auch über die Unterstützung der mitgereisten "Fangruppe" aus Reihen des Frohsinn sehr freuten. <br> <br> !23.04.12 Taunus Zeitung http://www.fnp.de/fnp/region/hessen/zum-thema-pannenfrei-durchs-leben-ndash-mit-krawatte_rmn01.c.9780450.de.html Pannenfrei durchs Leben – mit Krawatte Außer fahrbarem Untersatz gab‘s auf der Automobilausstellung "Autos in der Allee" am Wochenende in der Brunnenstadt noch zwei ganz besondere Schmankerl. Gespräche über Gott mit der evangelischen Kirche sowie Gespräche über Gott und die Welt mit den Orscheler Marktweibern – die auch 1000 Krawatten an den Mann bringen wollten. Samstagmittag, 13 Uhr. "Ehrenmarktweib" Thorsten Schorr, seines Zeichens christdemokratischer Stadtkämmerer, grinst – hat er doch soeben einen Wettbewerb gewonnen. Krawattenbinden auf Zeit, es ging um zehn Schlipse, Mann gegen Mann. Organisiert haben das Spektakel die Marktweiber vom Kleinen Rat, um damit gebührend ein tolles Jubiläum zu feiern: Denn seit 25 Jahren sind sie eine Institution im Orscheler Karneval. Über zwei Jahre haben sie die Schlipse gesammelt, trieben sich dazu auf Flohmärkten und Haushaltsauflösungen herum. Fast1000 Exemplare in allen Farben und Formen kamen zusammen. Eine ehrenvolle Mission steckt dahinter: den Männern das zurückgeben, was man ihnen in einem Vierteljahrhundert Fastnacht abgeschnitten hat. Aber ernsthaft: Die Spenden, gegen die die Schlipse am Marktweiber-Stand bei "Autos in der Allee" (AiA) abgegeben werden, fließen einem guten Zweck zu. "Der Verkauf läuft schleppend", lautet allerdings eine erste Bilanz von Marktweib Betty Lauer. "Aber der Wettbewerb war superlustig." Zu den glücklichen Gewinnern, die die zehn gebundenen Schlipse mit nach Hause nehmen dürfen, natürlich auch gegen einen Obolus, zählen neben Schorr geübte Krawattenträger wie Gerd Krämer. Der eingenommene Betrag ist bislang zweistellig, aber da geht noch was, sind die Marktweiber sicher. Ein paar Meter weiter am Rande des Epinay-Platzes geht es um Gott. Allerdings nicht in erster Linie. "Wir wollen mit den Menschen ins Gespräch kommen", sagt die evangelische Bildungsreferentin Yvonne Dettmar. "Pannenfrei durchs Leben" ist das Motto, mit dem die Evangelische Kirche im Hochtaunus am Samstag an der AiA teilnimmt. Wie schon bei den anderen Veranstaltungen der Reihe "Von Gott reden an ungewöhnlichen Orten", die es seit 2008 gibt, möchten Dettmar und ihre ehrenamtlichen Mitstreiter mehrmals im Jahr auf die Menschen zugehen, und zwar an Orten, an denen man Kirche sonst nicht antrifft; das Motto ist jeweils entsprechend gewählt. "Hier regen wir an, sich einmal zu fragen, ob man pannenfrei durchs Leben gekommen ist. Dabei denken viele erst einmal an Autopannen, einige haben heute mit uns schon über schwere Unfälle gesprochen. Aber dann denken sie weiter, und ein Gespräch über das Leben allgemein, Gott und die Kirche kann sich daraus entwickeln, das muss aber nicht sein", erklärt Dettmar. mrm ( mrm) <br> <br> !30.04.12 Taunus Zeitung Bei der Premiere schon Platz vier Oberursel. Zum ersten Mal bei einem Turnier angetreten und auf Anhieb den 4. Platz ertanzt – bei der jüngsten Tanzformation des Frohsinn gab es Anlass zur Freude. Die Große Garde hatte am zweiten Garde- und Showtanzwettbewerb der Freunde des Carneval Bad Homburg in der Hochtaunushalle teilgenommen – mit Erfolg. "Wir waren schon ein bisschen nervös", berichten die beiden Korporationsführerinnen Carolyn Wilkinson und Melanie Bremser. "Wenn man noch nie bei einem Turnier angetreten ist, hat man wenig Gefühl dafür, wo man im Vergleich zu den anderen steht." Angetreten waren neun Gardetanzgruppen. Das Erreichen des 4. Platzes ist für die junge Truppe ein toller Erfolg, der von Stephan Remes, Vorsitzender des Karnevalvereins Frohsinn, entsprechend gewürdigt wurde. "Das bestätigt den hervorragenden Eindruck, den die Garde bei unseren Saalveranstaltungen in der letzten Kampagne hinterlassen hat. Dass sie aber auch eine kritische, fachkundige Jury überzeugen konnte, macht uns stolz." Die Große Garde war erst im vergangenen Jahr gegründet worden und absolvierte ihren allerersten Auftritt vor Publikum bei der Eröffnungssitzung des Frohsinn im November 2011. Die zehn jungen Damen hatten vorher in anderen Tanzformationen des Frohsinn ihre tänzerischen Sporen erworben, einige tanzen gleichzeitig noch im Frohsinn-Ballett. Die Auftritte werden von den Gardemitgliedern selbst erarbeitet und einstudiert. "Das gute Ergebnis motiviert uns natürlich," sagen Carolyn Wilkinson und Melanie Bremser, die sich über die Unterstützung der mitgereisten "Fangruppe" aus Reihen des Frohsinn sehr freuten. http://www.fnp.de/fnp/region/lokales/hochtaunus/bei-der-premiere-schon-platz-vier_rmn01.c.9800662.de.html !24.04.12 Pressemeldung Frohsinn Große Garde des Frohsinn ertanzt 4. Platz bei erster Turnierteilnahme Zum ersten Mal bei einem Turnier angetreten und auf Anhieb den 4. Platz ertanzt - bei der jüngsten Tanzformation des Frohsinn gab es Anlaß zur Freude. Die Große Garde hat am Samstag, den 21.4.12 am 2. Garde-und Showtanzwettbewerb der Freunde des Carneval Bad Homburg in der Hochtaunushalle teilgenommen. "Wir waren schon ein bisschen nervös", berichten die beiden Korporationsführerinnen Carolyn Wilkinson und Melanie Bremser. "Wenn man noch nie bei einem Turnier angetreten ist, hat man wenig Gefühl dafür wo man im Vergleich zu den anderen steht." <br> <br> !09.05.12 Taunus Zeitung http://www.fnp.de/fnp/region/lokales/hochtaunus/junges-trio-wuetet-im-vereinsheim-des-frohsinns_rmn01.c.9824676.de.html Junges Trio wütet im Vereinsheim des Frohsinns Oberursel. Das finden die Narren gewiss gar nicht lustig: Wie die Polizei mitteilt, sind in der Nacht zum Montag ein 15 Jahre altes Mädchen und zwei 16 und 18 Jahre alte junge Männer in das Vereinsheim des Karnevalvereins Frohsinn im Frohsinn-Weg 1 eingebrochen. Die Täter suchten laut Verein nach Wertsachen und richteten beim Aufbrechen einer Terrassentür und an weiteren Türen im Haus "erhebliche Schäden" an. Die Polizei beziffert den Schaden auf etwa 7000 Euro. Die Vandalen wurden am Montagvormittag von einem Lieferanten des Vereins an der Theke erwischt, wo sie Alkohol tranken. Das Trio wollte zwar flüchten, doch dem Zeugen gelang es, die 15-Jährige festzuhalten und der Polizei zu übergeben. Die Jugendlichen stammen aus Bad Homburg und Oberursel und sind der Polizei bereits bekannt. Frohsinn-Vorsitzender Stephan Remes zeigte sich gestern schockiert. Es sei das erste Mal in der langen Vereinsgeschichte, dass so etwas passiert sei. "Vor allem schmerzt mich, mit welcher Brutalität und Achtlosigkeit die Täter im Heim Dinge zerstört haben, die Vereinsmitglieder über Jahre in ehrenamtlicher Arbeit geschaffen und gepflegt haben", sagte Remes. Der Verein hofft, noch in dieser Woche den Schaden gutachterlich feststellen zu können, damit er wieder behoben werden kann. Gerade unsere Kinder- und Jugendgruppen leiden unter den aktuellen Umständen am meisten und warten sehnsüchtig, dass wir schnellstmöglich wieder unseren Spiel- und Probenbetrieb aufnehmen können, sagte Remes. Die Aktiven haben nämlich nach dem Einbruch eine Zwangspause in Sachen Übungen einlegen müssen.she (she) Pressesprecher <br> <br> !21.05.12 Pressemeldung Frohsinn Jetzt erst recht - Frohsinn startet nach Einbruch mit neuem Brunnenfest-Konzept durch Sehr geehrte Damen und Herren, der Einbruch ins Vereinsheim hat das Vereinsleben beim Frohsinn durcheinander gewirbelt und erheblichen materiellen Schaden verursacht. Doch der Frohsinn startet neu durch - mit einem völlig neuen Konzept für unseren Stand am Brunnenfest. Über diese Themen wollen wir Sie gern im Rahmen eines Pressegespräches informieren. Zu diesem Gespräch ladie ich Sie sehr herzlich ein für Freitag, 25. Mai, 17.30 Uhr ins Vereinsheim Frohsinn, Frohsinn-Weg 1 in Oberursel. Wir würden uns sehr freuen, Sie zu diesem Gespräch begrüßen zu können. Mit freundlichen Grüßen Gerd Krämer Pressesprecher <br> <br> !22.05.12 Pressemeldung Frohsinn Die "etwas andere Fastnacht" auf englisch - Kleiner Rat des Frohsinn präsentiert Kurzprogramm in Rushmoor Reise in die Partnerstadt über Himmelfahrt - Andrew und Hilary Lloyd für 10 Jahre Aktivität in der Fastnacht geehrt Rund 40 Aktive des Kleines Rates des Karnevalvereins Frohsinn fuhren über das Himmelfahrtswochenende in die englische Partnerstadt Rushmoor. Anlaß der Reise war der im Juni anstehende 60. Geburtstag des Stadtdirektors von Rushmoor, Andrew Lloyd. Lloyd, gemeinsam mit seiner Frau Hilary seit über 10 Jahren aktives Mitglied in Frohsinn und KR, wird seinen Geburtstag nur ganz privat im Rahmen eines Urlaubs begehen. Einzige Ausnahme: eine Einladung an den KR nach Rushmoor. "Wenn ein Aktiver von uns Geburtstag feiert, wird auch ein Programm präsentiert.", stellte KR-Chef Jörg Steden fest. Problem nur: wie präsentiert man Orscheler Fastnacht so, dass auch Engländer über die Witze lachen? Als die KR-Mitglieder ihre Koffer für die Reise packten durften daher auch Orden und diverse Requisiten nicht fehlen. Büttenvorträge und Lieder wurden extra zu Ehren von Andrew und Hilary Lloyd verfasst, sorgfältig ins Englische übersetzt und die Nummern vorher fleissig geprobt. Zu Beginn der Reise wurden die Oberurseler Karnevalisten in der Stadtverwaltung von Rushmoors Mayor (Bürgermeister) Alex Crawford (Labour) und seiner Frau Jennifer empfangen und informierten sich über die Partnerstadt. Danach gab es eine Rundfahrt über den Flughafen von Farnborough, wo fleissig die diesjährige "Farnborough International Air-Show" vorbereitet wird und einen Besuch im "Farnborough Air Sciences Trust Museum", in dem u.a. ein Originalnachbau des ersten englischen Motorflugzeuges zu bewundern ist. Besuche in der alten englischen Königsstadt Winchester und im Seebad Brighton schlossen sich an. Andrew Smith, Chef der Regionalverwaltung "Hampshire County Council" liess es sich ebenfalls nicht nehmen, die Gäste aus Oberursel in seinem Amtssitz in Winchester zu empfangen. Höhepunkt der Reise war aber die "Pre-Geburtstagsparty", zu der Andrew und Hilary ihre Vereinkollegen in den Garten ihres Hauses eingeladen hatten. KR-Moderatorin Claudia Chudaska präsentierte gewohnt souverän das "Geburtsagsprogramm", verschwieg aber nicht, dass sie vorher " e' bissi nervös" war, da auch sie vorher noch nie durch ein Karnevalsprogramm auf Englisch geführt hatte. Mehrere KR-Aktive präsentierten Vorträge und Shownummern, die nicht nur bei den "Hardcore-Karnevalisten" Andrew und Hilary Lloyd toll ankamen, sondern bei allen anderen englischen Geburtstagsgästen. Feierlich wurde es, als Frohsinn-Pressesprecher Gerd Krämer Andrew und Hilary Lloyd im Namen des Vereins für "10 Jahre Aktivität in der Fastnacht" mit der Goldenen Flamme auszeichnete. 2001 waren die beiden bei einem Besuch Oberursels am Fastnachtssonntag in den Frohsinn eingetreten. "Die Eintrittserklärung wurde mangels Formular auf einen Bierdeckel geschrieben", berichtete Krämer schmunzelnd. Seitdem nehmen beide jedes Jahr an den Oberurseler Umzügen in der Fussgruppe des Kleinen Rates teil und sind über das Fastnachtswochenende privat zu Gast in der Brunnenstadt. Als zum Programmabschluss alle 40 KR-Mitglieder eine auf Andrew Lloyd umgetextete Fassung des Monty Python-Klassikers "Always look on the bright side of life" sangen, hielt es auch die englischen Geburtstagsgäste nicht mehr auf den Stühlen. Sie hakten sich unter, schunkelten und sangen den Text kräftig mit. Es war ein tolles Erlebnis und schön zu sehen, dass Fastnacht zwar ein Brauchtum unserer Heimat ist, aber ganz locker alle Grenzen überwinden kann. zog KR-Vorsitzender Jörg Steden ein zufriedenes Fazit des zweiten KR-Besuches in der englischen Partnerstadt. Natürlich wurde an der Hotelbar auch darüber diskurtiert, ob man nicht einmal ein komplettes Programm nach England exportieren sollte. Angesichts der fortgeschrittenen Uhrzeit der Diskussion gab Jörg Steden allerdings ein diplomatisches "Let's wait and see!" als Parole aus. Wir würden uns freuen, wenn Sie in einer Ihrer nächsten Ausgaben über die KR-Reise berichten würden. Anbei einige Fotos, die beim Empfang der Gruppe durch den Bürgermeister von Rushmoor und bei der KR-Show zu Ehren von Andrew Lloyd aufgenommen wurden. Für weitere Fragen stehe ich Ihnen gern zur Verfügung. Mit freundlichen Grüßen Gerd Krämer <br> <br> !23.05.12 Taunus Zeitung http://www.fnp.de/fnp/region/lokales/hochtaunus/dreifach-donnernder-glueckwunsch_rmn01.c.9860996.de.html Dreifach donnernder Glückwunsch Kleiner Rat gratuliert Lloyd zum 60. Nicht etwa nur ein Ständchen, sondern ein kleines Fastnachtsprogramm hatte der Kleine Rat des Frohsinns Rushmoors Stadtdirektor Andrew Lloyd zum 60. Geburtstag mit auf die Insel gebracht. Oberursel. Rund 40 Aktive des Kleinen Rates (KR) vom Frohsinn machten sich auf den Weg in die Partnerstadt Rushmoor. Anlass der Reise war der im Juni anstehende 60. Geburtstag des Stadtdirektors von Rushmoor, Andrew Lloyd. Er wird seinen Ehrentag ganz privat begehen. Einzige Ausnahme war eine Einladung an den KR. Rushmoor. "Wenn ein Aktiver von uns Geburtstag feiert, wird auch ein Programm präsentiert", stellte KR-Chef Jörg Steden fest. Problem nur: Wie präsentiert man Orscheler Fastnacht so, dass auch Engländer über die Witze lachen? Büttenvorträge und Lieder wurden eigens zu Ehren von Andrew und Hilary Lloyd verfasst, sorgfältig ins Englische übersetzt und fleißig geprobt. Zu Beginn der Reise wurden die Oberurseler in der Stadtverwaltung von Rushmoors Mayor Alex Crawford (Labour) und seiner Frau Jennifer empfangen und sie informierten sich über die Partnerstadt. Besuch in Brighton Danach gab es eine Rundfahrt über den Flughafen von Farnborough, wo zurzeit die diesjährige "Farnborough International Air-Show" vorbereitet wird, und einen Besuch im "Farnborough Air Sciences Trust Museum", in dem auch ein Nachbau des ersten englischen Motorflugzeuges zu bewundern ist. Besuche in der alten englischen Königsstadt Winchester und im Seebad Brighton schlossen sich an. Höhepunkt der Reise war aber die "Pre-Geburtstagsparty", zu der Andrew und Hilary ihre Vereinskollegen in den Garten ihres Hauses eingeladen hatten. KR-Moderatorin Claudia Chudaska präsentierte souverän das Programm, verschwieg aber nicht, dass sie vorher "e' bissi nervös" war, da auch sie noch nie durch ein Karnevalsprogramm auf Englisch geführt hatte. Zehn Jahre dabei Mehrere KR-Aktive präsentierten Vorträge und Shownummern, die nicht nur bei den "Hardcore-Karnevalisten" Andrew und Hilary Lloyd toll ankamen, sondern bei allen anderen englischen Geburtstagsgästen auch. Feierlich wurde es, als Frohsinn-Pressesprecher Gerd Krämer Andrew und Hilary Lloyd im Namen des Vereins für "Zehn Jahre Aktivität in der Fastnacht" mit der Goldenen Flamme auszeichnete. 2001 waren die beiden bei einem Besuch in Oberursel am Fastnachtssonntag in den Verein Frohsinn eingetreten. Die Beitrittserklärung wurde mangels Formular auf einen Bierdeckel geschrieben, berichtete Krämer schmunzelnd. Seitdem nehmen beide jedes Jahr an den Oberurseler Umzügen in der Fußgruppe des KR teil und sind über das Fastnachtswochenende privat zu Gast in der Brunnenstadt. Als zum Schluss alle 40 KR-Mitglieder eine auf Andrew Lloyd umgetextete Fassung des Monty Python-Klassikers "Always Look On The Bright Side Of Life" sangen, hielt es auch die englischen Geburtstagsgäste nicht mehr auf den Stühlen. Sie hakten sich unter, schunkelten und sangen den Text mit.red (red) <br> <br> !25.05.12 Pressemeldung Frohsinn Frohsinn mit neuem Angebot beim Brunnenfest Weinprobe - Longdrinks - ~Show-Grill mit "~Fritten-Toni" und "Schüssel" - ~Narren-Stammtisch Wenn am Freitag, 1.6. das Oberurseler Brunnenfest startet, lohnt gleich ein Besuch am Stand des Karnevalvereins Frohsinn in der Eppsteiner Strasse. Erstmals wird der Stand mit einem "Show-Grillen" zweier Oberurseler Originale eröffnet. "Fritten-Toni" und Peter "Die Schüssel" Schüssler, Oberursels bekanntester Comedian, werden an einem eigenen Holzkohlengrill von 18.00 - 21.00 Uhr nicht nur kräftig Steaks und Würste auflegen, sondern vor allem mit lockeren Sprüchen dafür sorgen, dass bei den Besuchern die richtige Brunnenfestlaune aufkommt. Das ist nur eines von vielen neuen Highlights an unserem Stand, kündigt Stephan Remes, der Erste Vorsitzende des Frohsinn an. Ein neuer Weinstand, Veranstaltungen für Zielgruppen und neue gastronomische Angebote haben sich die Oberurseler Karnevalisten ausgedacht, um noch attraktiver für die Besucher zu werden. Das Weinangebot beispielsweise wurde völlig verändert. Wir haben mehr und andere Weine und Sekte aus verschiedenen Ländern im Programm. Damit reagieren wir auf Wünsche unserer Gäste aus den letzten Jahren., erläutert Freddy Wilkinson, der 2. Vorsitzende des Frohsinn. Immer wieder sei nach einem umfassenderen Weinangebot gefragt worden. "Das bieten wir jetzt. Und das umfasst sowohl den erfrischenden Schoppen für den kleinen Geldbeutel wie auch Weine für Kenner, die sich mit Freunden an unserem Stand einen schönen Abend gönnen wollen." Eine "Frohsinn-Weinprobe" für Unterstützer und Freunde des Vereins darf da natürlich nicht fehlen, um für das "kleine Weinfest" beim Frohsinn zu werben. Ein neuer Weinstand, der Platz für mehr Kunden bietet, wird auch optisch die Veränderung sichtbar machen. Nicht nur Weintrinker kommen auf ihre Kosten. Freitag und Samstag werden Longdrinks zu Preisen zwischen 4,- bis 5,- Euro ausgeschenkt, am Sonntag gibt es dann von 14.00 bis 16.00 Uhr ein Kuchenbuffet, zu dem viele Mitglieder des Vereins leckeren selbst gebackenen Kuchen beisteuern. Den Kaffee gibt's nach amerikanischem Vorbild: "Zahle eine Tasse und trinke soviel Du magst." Beim "Gedeck-Frühschoppen" am Brunnenfest-Montag (11.00 bis 14.00 Uhr) verspricht eine spezielle "Gedeck-Karte" originelle Kombinationen aus dem Frohsinn-Angebot, zielgruppen-orientiert und preisgünstig. Preisgünstig ist auch das Stichwort für die "Happy Hour", in der man am Sonntag von 17.00 bis 19.00 Uhr und am Montag von 19.00 - 20.30 Uhr ein Bier (0,3 ltr.) für nur 1,50 Euro bekommt. "Ein Preis wie vor der Euro-Einführung.", schmunzelt Stephan Remes. Ganz neu ist die Idee eines Narren-Stammtischs, zu dem am Samstag, 02.06., in der Zeit zwischen 12.30 und 15.00 Uhr Vertreter anderer Karnevalvereine, Freunde, Unterstützer, Sponsoren und Vertreter des öffentlichen Lebens eingeladen wurden. Stephan Remes zu dieser Initiative: "Zum einen wollen wir uns bei den Vereinen bedanken, die uns im vergangenen Jahr bei unserem 'Brunnenfest' geholfen haben. Zum anderen suchen wir als Karnevalisten gemeinsam das Gespräch mit den Politikern, um ihnen selbstbewusst die kulturelle Bedeutung des Karnevals auch in Zeiten knapper Kassen vor Augen zu führen." Remes und Wilkinson hoben auch hervor, dass das diesjährige Brunnfest für den Verein nicht nur wegen dieser Veränderungen besondere Beutung habe. Vor einigen Wochen wurde die Frohsinn-Familie von der Nachricht geschockt, dass Einbrecher das Vereinshaus verwüstet und einen Schaden von mehreren Tausend Euro verursacht hatten. Besonders die sinnlosen Zerstörungen an Einrichtung und Mobiliar schmerzen die Frohsinn-Verantwortlichen. "Offensichtlich war das der Frust, dass die Einbrecher kein Bargeld gefunden haben.", vermutet Stephan Remes. Nur das beherzte Eingreifen der Mitarbeiter eines Lieferanten hat Schlimmeres verhindert. "Wir haben natürlich alle rechtlichen Schritte eingeleitet, um die Verursacher für den Schaden haftbar zu machen.", erläutert Freddy Wilkinson. Doch wann und wie viel von den Tätern zu erwarten ist, kann noch niemand vorhersagen. Zunächst muss der Verein selbst viel Geld aufwenden, um die Schäden im Haus zu beseitigen. Das Brunnenfest war schon immer ein wichtiges wirtschaftliches Standbein des Vereins. Das gewinnt vor diesem Hintergrund natürlich eine völlig neue Bedeutung., betont Remes. Der Vorsitzende hofft, dass die neuen Angebote des Vereins beim Brunnenfest gut ankommen und viele Oberurseler ihre Unterstützung des Vereins mit einem Besuch des Brunnenfeststandes verbinden. "Sie werden ein völlig neues Angebot vorfinden und bestimmt viel Spaß haben.", verspricht Stephan Remes. Das komplette Frohsinn Brunnenfestprogramm 2012 kann unter www.frohsinn-oberursel.de nachgelesen werden. Unser Foto zeigt die "Event-Griller" "Schüssel" und "Fritten-Toni" <br> <br> !30.05.12 Taunus Zeitung http://www.fnp.de/fnp/region/lokales/hochtaunus/feiernd-dem-frohsinn-helfen_rmn01.c.9876151.de.html Feiernd dem Frohsinn helfen Vor gut drei Wochen war dem Karnevalverein Frohsinn gar nicht zum Lachen zumute. Wie berichtet hatte ein jugendliches Trio im Vereinsheim der Narren gewütet und dabei einen Schaden von mehreren Tausend Euro angerichtet (siehe ZUM THEMA). Klar, dass der Club in dieser Zeit für Unterstützung besonders dankbar ist. "Die beste Art, uns zu helfen, ist, uns beim Brunnenfest zu besuchen", sagte Pressesprecher Gerd Krämer bei der Vorstellung des Festprogramms. Das Brunnenfest war schon immer ein wichtiges wirtschaftliches Standbein des Vereins, sagte Vorsitzender Stephan Remes. Nun, nach dem Einbruch, seien die Einnahmen umso wichtiger. Inklusive Auf- und Abbau leistet der knapp 500 Mitglieder zählende Frohsinn beim Brunnenfest etwa 1000 Arbeitsstunden. Dafür, dass die Besucher auf den Marktplatz kommen – das Brunnenfest auf dem Vereinsgelände am Heidegraben gibt es übrigens erst 2013 wieder –, tut der Verein einiges und wirbt mit einem neuen Konzept. "Der Geschmack des Publikums und die Situation am Marktplatz sind anders als vor 30, 20 und 10 Jahren", meint Remes. Illuminierter Stand So kommt der Frohsinn-Stand am Marktplatz/Ecke Eppsteiner Straße schon optisch anders daher, mit Sektstand, eigenem Fußboden und Illumination. Sektstand? Ja, denn bei den Narren gibt‘s in diesem Jahr mehr Wein und Sekt als bisher. Das heißt konkret: mehr als zehn verschiedene Weine sowie Sekt in Weiß und Rosé und auch alkoholfrei. Bier gibt‘s natürlich nach wie vor. Der Verein verspricht sich davon, dass auch Gruppen bei ihm verweilen, von denen die eine Hälfte Bier, die andere Wein bevorzugt. Für jeden etwas dabei – das gilt auch für das Programm, das am kommenden Freitag mit einem Show-Grillen (18 bis 21 Uhr) beginnt. Kabarettist Peter Schüßler alias Die Schüssel und Sascha Kammerer alias Fritten-Toni wollen das Publikum nicht nur unterhalten, sondern auch ansprechen. Wer also die Aufforderung hört, er könne eine Wurst vertragen, ist in einer Show zwischen Event-Gastronomie und Marktschreier-Wettbewerb gelandet. Für Samstagmittag hat der Frohsinn befreundete Karnevalisten, Unterstützer und Vertreter des öffentlichen Lebens zum Narren-Stammtisch eingeladen, am Spätnachmittag gibt es für Freunde des Vereins eine Weinprobe. Eine Longdrink-Bar lockt, wie schon am Freitag, von 20 Uhr an jene, die beispielsweise Lust auf einen Cuba Libre haben. Kuchen und eine Kaffee-Flatrate – einmal zahlen, so viel trinken, wie man möchte – sollen am Sonntag von 14 bis 16 Uhr zum Bleiben animieren. Von 17 bis 19 Uhr sowie am Montag von 19 bis 20.30 Uhr ist dann Happy Hour, in der das Bier (0,3 Liter) nur 1,50 Euro kostet. Etwas Besonderes gibt‘s am Montag von 11 bis 14 Uhr: den Frohsinn-Gedeck-Frühschoppen. Wobei ein Gedeck nicht aus Bier und Schnaps bestehen muss, denn auch Schwangere und Kinder sollen auf ihre Kosten kommen. Was Alkoholfreies ist also auf jeden Fall dabei, für die Kleinen vielleicht ein Lolli. "Wir sind ein Fassenachtsverein, man muss nicht alles stockernst sehen", sagte Vize-Vorsitzender Freddy Wilkinson.she <br> <br> !09.06.12 Taunus Zeitung http://www.fnp.de/tz/region/lokales/hochtaunus/so-gluecklich-wie-am-ersten-tag_rmn01.c.9902416.de.html [<img[Pressebild|http://www.fnp.de/sixcms/media.php/rmn01.a.7225.de/thumbnail_220/fnp_import_tzo_01012sommer2_jr_090612.jpg]] So glücklich wie am ersten Tag Keine Frage: Erika und Günter Sommer sind ein Vorzeigepaar. 50 Jahre sind die beiden mittlerweile verheiratet – und sie machen sich heute noch die schönsten Liebeserklärungen. Von Andrea Rosenbaum Oberursel. Sie strahlen um die Wette. Kein Wunder, feiern Erika und Günter Sommer doch heute goldene Hochzeit. Foto: jr Das berühmte Zusammenpassen vom "Deckelsche uffs Töppsche" – bei Erika und Günter Sommer hat’s funktioniert. Heute vor 50 Jahren standen die beiden vor dem Traualtar und sind noch immer so glücklich wie damals. Gefunkt hatte es bei der Jahreshauptversammlung des Karnevalvereins Frohsinn, als er zu spät kam und nur noch neben ihr ein Platz frei war. "Da haben wir uns zum ersten Mal beschnuppert", sagt Erika Sommer schmunzelnd. "Im Anschluss an die Veranstaltung hat mich Günter nach Hause gebracht, also war der Frohsinn unser Ehestifter." Denn nun verabredeten sie sich zum Tanz in den Mai: "Mein Mann ist ein guter Tänzer", schwärmt seine Gattin. Alles seine Richtigkeit Zwei Jahre sind die damals 17-Jährige und der 20-Jährige "zusammen gegangen", wie das genannt worden sei, erzählen die Eheleute: "Dann waren wir noch zwei Jahre verlobt, bevor wir 1962 in der Christuskirche geheiratet haben." Günter Sommer durfte vor der Hochzeit im Dachgeschoss des 1956 in der Zelterstraße von Erikas Eltern erbauten Hauses wohnen, erst danach zog das Paar zusammen in den ersten Stock. "Das musste damals alles seine Richtigkeit haben", erinnern sich beide. Außerdem stieg Günter, nachdem er zuvor eine Lehre als Polsterer, Tapezierer und Dekorateur gemacht und einige Zeit als Schreiner gearbeitet hatte, in die Firma von Erikas Vater mit ein. Daraufhin nannte sich das Schädlingsbekämpfungsunternehmen "Vogt & Sommer". Auf der Hochzeitsreise sei Tochter Petra entstanden, erzählen beide. "Sie erblickte 1963 das Licht der Welt und sitzt heute im Vorzimmer von Oberursels Bürgermeisters Hans-Georg Brum", berichtet Erika Sommer stolz. 1965 wurde Sohn Jürgen geboren, der später "Vogt & Sommer" von seinem Vater übernahm. Auf ihre drei Enkelkinder sind die Eheleute natürlich auch stolz: die elfjährige Mia, der 20-jährige Gregor und der 22-jährige Luis. Ihr Ehe-Rezept Auf Vertrauen und Ehrlichkeit sei ihre Ehe gebaut, betonen die Goldhochzeiter strahlend. "Es muss alles besprochen werden, und man darf nie im Streit schlafen gehen", verrät Erika Sommer ihr Rezept für eine gute Ehe. Dazu meint ihr Gatte: "Nie gleich die Flinte ins Korn werfen, wenn es Schwierigkeiten gibt, es kann nicht ständig alles Sonnenschein sein, umso schöner, wenn die Sonne dann wieder aufgeht." Ihre Liebe habe sich in all den Jahren nur gesteigert, finden die Sommers und schauen sich tief in die Augen. Die einstigen Sportler, sie haben Tennis gespielt, gekegelt und sind gemeinsam Mountainbike gefahren, verbringen auch heute noch eine tolle Zeit miteinander. "Heute sind die Spaziergänge mit unserer Münsterländerhündin Anka unser Sport und die Jagd in Echzell, wo wir viel Zeit verbringen", erklären die Eheleute. Er pflege halt seine beiden Frauen, fügt Günter Sommer lächelnd und mit Blick auf Ehefrau und Hund hinzu: "So etwas wie meine Frau gibt’s eben auch nicht noch einmal." Woraufhin sie antwortet: "Es gibt für mich keinen idealeren Mann als meinen." <br> <br> !19.06.12 Pressemeldung Frohsinn Sehr geehrte Damen und Herren, liebe Kolleginnen und Kollegen, für Mittwoch, 27.06.2011, 19.30 Uhr lädt der Karnevalverein Frohsinn zu seiner diesjährigen Jahreshauptversammlung in sein Vereinshaus, ~Frohsinn-Weg 1 in Oberursel. Auf der Tagesordnung (Anlage) stehen u.a. Berichte über das erste Amtsjahr des 2011 neu gewählten Vorstandes. Wir würden uns sehr freuen, eine/n Vertreter/in Ihrer Redaktion zu dieser Jahreshauptversammlung begrüßen zu können. Für einen kurzen Vorbericht und die Erwähnung im Veranstaltungskalender wären wir Ihnen sehr dankbar. Für weitere Fragen stehe ich Ihnen gern zur Verfügung. Mit freundlichen Grüßen Gerd Krämer --- <br><br><br> [[Nach oben...|Presse 2011/12]] --- |[[Presse 2010/11]]|[[Kampagne 2011/12]]|[[Presse 2012/13]]| --- |[[Der Frohsinn]]|[[Veranstaltungen]]|[[Bühnenaktive]]|[[Chronik]]| (c) 2021 by R.G. Status: i.A.
|![[Archiv]]||!Informatives |[[Pressearchiv]]|[[Vereinsfahne]]|[[Prinzen|Tollitäten]]|[[Orden]]|[[Vorstand]]|[[Satzung]]|[[Publikationen]]| | [[Der Frohsinn]] | --- --- |[[Presse 2020/21]]|[[Kampagne 2021/22]]|[[Presse 2022/23]]| --- !Pressemeldungen 2021/22 |Homepage-Presseseite|xxx| |!Übersicht | |Taunus-Zeitung |01.10.21 |''~DrumKids trommeln um Verstärkung'' | |Taunus-Zeitung |23.09.21 |''Frohsinn unter neuer Führung'' | |Oberurseler Woche |07.10.21 |''Ulfert Hahn ist Frohsinn-Vorsitzender'' | |Taunus-Zeitung |15.10.21 |''Beim "Frohsinn" spielt seine Musik''| |Taunus Zeitung |18.12.21 |''Frohsinn hält an Saalfastnacht fest''| |Oberurseler Woche |21.12.21 |''Frohsinn lädt zu Prunksitzungen''| |Oberurseler Woche |13.01.22 |''Frohsinn: Statt Prunksitzungen gibt es ein Musical'' | |Oberurseler Woche |05.05.22 |''Wenn der Wolfgangsee einfach nach Orschel rückt'' | |Oberurseler Woche |19.05.22 |''Orschelrette wird beim Probenwochenende erkennbar''| |Oberurseler Woche |02.06.22 |''Kopf- und Schweißarbeit vor der "Orschelrette"-Premiere''| |Oberurseler Woche |22.06.22 |''Im "Weißen Bembel" steht die illustre Schar in den Startlöchern'' | |Oberurseler Woche |07.07.22 |''Stehende Ovationen fürs Bembel-Hotel'' | |Taunus Zeitung |14.07.22 |''Im Weißen Bembel am Maasgrundsee'' | |Oberurseler Woche |29.09.2022 |''Schüssel verabschiedet sich im Höhenflug'' | --- --- <br> |Taunus-Zeitung |01.10.2021 |''~DrumKids trommeln um Verstärkung'' | [img[https://www.karnevalverein-frohsinn.de/mob/assets/images/21-10-01-tz-jugendbrassband-563x394.jpg]] |! Link | | Nach der längeren Zwangspause sind die ~DrumKids & die Jugendbrassband wieder mit ihren regelmäßigen Proben aktiv. Der hoffungsvolle Ausblick auf eine Fastnachts-kampagne motiviert zusätzlich. Natürlich finden alle Proben unter den aktuell gültigen Regelungen sowie einem entsprechenden Hygienekonzept statt. --- <br> |Taunus-Zeitung |23.09.2021 |''Frohsinn unter neuer Führung'' | [img[https://www.karnevalverein-frohsinn.de/mob/assets/images/mob-21-09-23-tz-frohsinn-jhv-563x470.jpg]] |! Link | | Der KV Frohsinn hat seine erste Jahreshauptversammlung seit 2019 abgehalten, teilten die Karnevaisten mit. Nachdem im vergangenen Jahr bedingt duch die Maßnamen gegen die Corona-Pandemie keine JHV habe stattfinden können... --- <br> |Oberurseler Woche |07.10.2021 |''Ulfert Hahn ist Frohsinn-Vorsitzender'' | [img[https://www.karnevalverein-frohsinn.de/mob/assets/images/mob-21-10-07-ow-frohsinn-563x987.jpg]] |! Link | https://www.karnevalverein-frohsinn.de/21-10-07-ow-frohsinn-jvh.pdf| Der KV Frohsinn hat bei seiner Jahreshauptversammlung alle Vorstandsposten neu- oder wiedergewählt. Dabei hat der Verein nach nunmehr zehn Jahren einen neuen Vorsitzenden. Stephan Remes trat nach über 30 Jahren im geschäftsführenden Vorstand des „Frohsinn“ nicht noch einmal für den obersten Posten des Vereins an. --- <br> |Taunus-Zeitung |15.10.2021 |''Beim "Frohsinn" spielt seine Musik''| [img[https://www.karnevalverein-frohsinn.de/mob/assets/images/mob-21-10-15-tz-frohsinn-600x290.jpg]] |! Link |https://www.fnp.de/lokales/hochtaunus/oberursel-ort69327/beim-frohsinn-in-oberursel-spielt-seine-musik-91054230.html| Die schöne Narrenkappe hat er extra mitgebracht. Aufsetzen kann er sie aber jetzt noch nicht, das verbietet der närrische Ehrenkodex. --- <br> |Taunus Zeitung |18.12.2021 |''Frohsinn hält an Saalfastnacht fest''| [img[https://www.karnevalverein-frohsinn.de/mob/assets/images/mob-21-12-18-tz-frohsinn-sitzungen-600x458.jpg]] |!Link | http://www.karnevalverein-frohsinn.de/21-12-18-tz-frohsinn-sitzungen.pdf | Im November hat der Karnevalverein Frohsinn mit einer tollen Eröffnungssitzung gezeigt, dass auch in der heutigen Zeit Fastnachts-Sitzungen möglich sind. Eine Saalfastnacht könne auch in angespannten Zeiten mit einem funktionierendem Schutz- und Hygienekonzept gefeiert werden, ist der Verein überzeugt. <br><br> Schließlich diente die Eröffnungssitzung natürlich auch als Testlauf für die anstehenden Prunksitzungen. Und da die ge- machten Erfahrungen positiv waren, sollen die geplanten großen Prunksitzungen am Freitag und Samstag, 4. und 5. Februar, sowie am Samstag, 12. Februar, in der Stadthalle auch stattfinden. <br> Ein gesamtheitliches Schutz- und Hygienekonzept mit einer erheblichen Reduzierung des Platzangebotes im Veranstaltungssaal der Stadthalle wurde erstellt. Besonders wurden außer den Hygieneregeln die lüftungstechnischen Maßnahmen und die Messung der Raumluftqualität berücksichtigt. Das so entwickelte Konzept soll beim Fachbereich Gesundheits- dienst des Hochtaunuskreises zur Genehmigung eingereicht werden. <br> Vorbehaltlich dieser Genehmigung wird der Vorverkauf in die- ser Kampagne anders ablaufen als bisher bekannt. Kartenreservierungen werden ab sofort per E- Mail unter „kartenservice@karne- valverein-frohsinn.de“ entgegengenommen. Die Reservierungen werden nach Eingangsreihenfolge berücksichtigt und die bestmöglichen Sitzplätze vergeben. <br> Die Kartenpreise werden sich trotz vermutlich geringerer Kapazität der Stadthalle im Vergleich zu 2020 nicht verändern. Sie betragen 21,50 Euro für Freitag und 24,50 Euro für die beiden Samstagssitzungen. <br> Zutritt zu den Sitzungen haben nur Personen, die entweder einen vollständigen Impfnachweis oder einen Genesenen-Nachweis und zusätzlich einen negativen Antigen-Schnelltest nachweisen können. Selbsttests sind nicht möglich; es muss ein Dokument eines Testzentrums vorgelegt werden. <br> Das detaillierte Schutz- und Hygienekonzept wird nach erfolgter Genehmigung des Kreises auf der Internetseite des KV Frohsinn veröffentlicht. <br> Die Bezahlung der Karten kann nach endgültiger Zusage der Sitzungen erfolgen. <br> Eine Absage der Sitzungen auf grund sich ändernder Auflagen beziehungsweise der Situation der Pandemie bleibt vorbehalten. In diesem Falle werden bereits geleistete Zahlungen umgehend zurückerstattet. <br> Der Karnevalverein Frohsinn hofft auf viele Gäste, die auch in dieser schwieriger Zeit die Tradition der Saalfastnacht fortführen wollen. --- <br> |Oberurseler Woche |21.12.2021 |''Frohsinn lädt zu Prunksitzungen''| [img[https://www.karnevalverein-frohsinn.de/mob/assets/images/mob-21-12-21-ow-frohsinn-sitzungen-600x499.jpg]] |! Link |http://www.karnevalverein-frohsinn.de/21-12-21-ow-frohsinn-sitzungen.pdf| Text --- <br> |Oberurseler Woche |13.01.2022 |''Frohsinn: Statt Prunksitzungen gibt es ein Musical'' | [img[https://www.karnevalverein-frohsinn.de/mob/assets/images/mob-22-01-13-ow-frohsinn-absage-600x626.jpg]] |! Link |http://www.karnevalverein-frohsinn.de/22-01-13-tz-frohsinn-absage.pdf| Text --- <br> |Oberurseler Woche |05.05.22 |''Wenn der Wolfgangsee einfach nach Orschel rückt'' | [img[https://www.karnevalverein-frohsinn.de/mob/assets/images/mob-22-05-05-ow-orschelrette-600-600x877.jpg]] |! Link |http://www.karnevalverein-frohsinn.de/22-05-05-ow-orschelrette.pdf| Text --- <br> |Oberurseler Woche |19.05.22 |''Orschelrette wird beim Probenwochenende erkennbar''| [img[https://www.karnevalverein-frohsinn.de/mob/assets/images/mob-22-05-19-ob-orschelrette-probe-600-600x783.jpg]] |! Link |http://www.karnevalverein-frohsinn.de/22-05-19-ow-orschelrette.pdf| Text --- <br> |Oberurseler Woche |02.06.22 |''Kopf- und Schweißarbeit vor der "Orschelrette"-Premiere''| [img[https://www.karnevalverein-frohsinn.de/mob/assets/images/22-06-02-ow-orschelrette-600-600x789.jpg]] |! Link |http://www.karnevalverein-frohsinn.de/22-06-02-ow-orschelrette.pdf| Text --- <br> |Oberurseler Woche |22.06.22 |''Im "Weißen Bembel" steht die illustre Schar in den Startlöchern'' | [img[https://www.karnevalverein-frohsinn.de/mob/assets/images/22-06-23-ow-orschelrette-600-600x772.jpg]] |! Link |http://www.taunus-nachrichten.de/oberursel/nachrichten/oberursel/weissen-bembel-steht-illustre-schar-startloechern-id123158.html| Text --- <br> |Oberurseler Woche |07.07.22 |''Stehende Ovationen fürs Bembel-Hotel'' | [img[https://www.karnevalverein-frohsinn.de/mob/assets/images/22-07-07-ow-orschelrette-600-600x877.jpg]] |! Link |http://www.taunus-nachrichten.de/oberursel/nachrichten/oberursel/stehende-ovationen-fuers-bembel-hotel-id124323.html| Text --- <br> |Taunus Zeitung |14.07.22 |''Im Weißen Bembel am Maasgrundsee'' | [img[https://www.karnevalverein-frohsinn.de/mob/assets/images/22-07-14-tz-orschelrette-600-600x316.jpg]] |! Link |http://www.karnevalverein-frohsinn.de/22-07-14-tz-orschelrette.pdf| Text --- <br> |Oberurseler Woche |29.09.2022 |''Schüssel verabschiedet sich im Höhenflug'' | [img[https://www.karnevalverein-frohsinn.de/mob/assets/images/22-09-29-ow-schuellelgala-600-600x860.jpg]] |! Link |https://www.taunus-nachrichten.de/oberursel/nachrichten/oberursel/schuessel-verabschiedet-hoehenflug-id129575.html| Text --- --- [[Nach oben...|Presse 2021/22]]
|![[Archiv]]||!Informatives |[[Pressearchiv]]|[[Vereinsfahne]]|[[Prinzen|Tollitäten]]|[[Orden]]|[[Vorstand]]|[[Satzung]]|[[Publikationen]]| | [[Der Frohsinn]] | --- --- |[[Presse 2021/22]]|[[Kampagne 2022/23]]|[[Presse 2023/24]]| --- !Pressemeldungen 2022/23 |Homepage-Presseseite|xxx| |!Übersicht | |Oberurseler Woche |14.10.22 |''Frohsinn: Zukunftsorientiert aus Tradition'' | |Taunus-Zeitung |08.11.22 |''Frohsinn feiert sich warm'' | |Orschel2day |08.11.22 |''Karnevalverein Frohsinn startet ...''| |Taunus-Zeitung |21.11.22 |''Den "Wilden 20ern" kann sich niemand entziehen''| |Taunus-Zeitung |08.12.22 |''Als Prinz war er in den USA''| |Oberurseler Woche |26.01.23 |''Fastnacht beim ''Frohsinn''''| |Oberurseler Woche |26.01.23 |''Frohsinn-Sänger auf der Tollitätengala''| |Taunus-Zeitung |30.01.23 |''Corona war gestern - Frohsinn ist angesagt''| |Oberurseler Woche |02.02.23 |''Frauenpower mit Garden und Greta beim „Frohsinn“''| |Taunus-Zeitung |14.02.23 |''2549 Narren in 195 Zugnummern'' (Pressebild) | |Oberurseler Woche |30.03.23 |''Zwei Oberbayern haben Lust...''| |Taunus-Zeitung |30.03.23 |''Die künftige Brunnenkönigin heißt Felicitas''| |Taunus-Zeitung |03.04.23 |''Neues Brunnen-Paar-fühlt sich in 'Orschel' wohl''| |Oberurseler Woche |06.04.23 |''Tanzend in eine majestätische Amtszeit''| --- --- |Oberurseler Woche |14.10.22 |''Frohsinn: Zukunftsorientiert aus Tradition'' | [img[https://www.karnevalverein-frohsinn.de/mob/assets/images/22-10-13-ow-frohsinn-600-600x452.jpg]] |!Online |https://www.taunus-nachrichten.de/sites/default/files/content/epaper/2022/oberurseler_woche_131022.pdf | Seite 11 | --- |Taunus-Zeitung |08.11.22 |''Frohsinn feiert sich warm'' | [img[https://www.karnevalverein-frohsinn.de/mob/assets/images/22-11-08-tz-ambosseparty-600-600x747.jpg]] |! Link | | --- |Orschel2day |08.11.22 |''Karnevalverein Frohsinn startet ...''| [img[https://www.karnevalverein-frohsinn.de/mob/assets/images/22-11-08-o2d-frohsinn-600-compressed-600x725.jpg]] |!Online |https://www.facebook.com/groups/oberurseler.forum/permalink/5942107779154606/ | |!PDF |https://www.karnevalverein-frohsinn.de/22-11-08-O2D-Frohsinn.pdf | --- |Taunus-Zeitung |21.11.22 |''Den "Wilden 20ern" kann sich niemand entziehen''| [img[https://www.karnevalverein-frohsinn.de/mob/assets/images/22-11-21-tz-frohsinnopen-600x1191.jpg]] !Text Den „Wilden 20ern“ kann sich niemand entziehen OBERURSEL - KV Frohsinn startet in die Kampagne VON CAROLINE HOLLER Spätestens bei den Klängen von „I Will Survive“, hält es an diesem Freitagabend kaum jemanden auf seinem Platz im fast voll besetzten und von Jenny Landefeld und ihrem Team prächtig geschmückten Saal des Orscheler Karnevalvereins Frohsinn 1890. Unter der Leitung von Jens Stern heizt die Brassband dem Publikum ein, das begeistert tanzt und klatscht. Und das ist nicht das einzige Glanzlicht der Fassenachts-Show, die in diesem Jahr im Zeichen der „Wilden 20er“ steht, was sowohl das aktuelle Jahrzehnt sowie das vor einhundert Jahren umfasst. Nach zwei Jahren Zwangspause hat sich der Verein für die Kampagneneröffnung 2022/2023 etwas Neues ausgedacht. „Aus den traditionellen Sitzungen des Kleinen Rates und der Eröffnungssitzung des KV Frohsinn entstand das neue Konzept zum Kampagnenstart,“ erklärt stellvertretender Vorsitzender Jens Landefeld. Und das kann sich sehen lassen. Markus Lohnstein und Claudia Chudaska führen launig durch das vierstündige Programm, das mit einem Auftritt des Frohsinn-Balletts ganz im Stile der 20er Jahre des letzten Jahrhunderts beginnt. Anschließend erstrahlt die Bühne mit dem Einzug der Tollitäten aus Oberursel, Fiona I und Amy-Julie I und Susanne II, dem Pendant aus Bad Homburg samt ihrem jeweiligen Hofstaat. Bevor die Minis, von denen manche bereits seit drei Jahren im Verein sind und coronabedingt erst jetzt ihren ersten Auftritt haben, ihr Können zur Schau stellen. „Insgesamt sind wir gut durch die mehr als zwei Jahre gekommen“, so Jens Landefeld. „Dank unseres Standorts mit großem Saal konnten wir corona-konform trainieren und so den Verein lebendig halten. Uns ist bewusst, dass das ein großes Privileg ist. Deshalb haben wir die Räume auch anderen Vereinen in dieser Zeit zur Verfügung gestellt.“ Die Mitglieder des Frohsinn haben die Zeit gut genutzt, um nach Corona wieder durchstarten zu können. Die neue Gruppe „Gebabbel und Gedöns“ unterstützt die Redenschreiber- und Vorträger. Friede, Freude, Inflation Einen Rückblick auf das Jahr 2022 geben Harald Neugebauer und Michael Reuter, der auch die Gesamtregie des Abends führt, in ihrem Protokoll. Krieg, Pandemie, Inflation, das ginge ihnen bald so alltäglich über die Lippen wie früher Friede, Freude, Eierkuchen. Beim Blick über den Ärmelkanal kam ihnen die Idee, Downing Street angesichts der hohen Fluktuation an Premierministern auf „airbnb“ als Unterkunft für Kurzaufenthalte anzubieten. Peter Feldmann wird nicht zuletzt als UEFA-Cup-Räuber in Erinnerung bleiben. Mit Antje Runge, gemeinsam mit Julia Antoni von den Stadtwerken Ehrengast an diesem Abend, kam viel Schwung ins Städtchen, auch wenn die unterirdische Bewässerung der Alleebäume mehr einem „Orschel-Stream“ glich, schien das Wasser doch nicht dort anzukommen, wo es benötigt wurde. Für 2023 bleibt unter anderem die Hoffnung, dass die Eintracht die Champions League gewinnt. Die Jugendbrassband steht den erwachsenen Kollegen ins Nichts nach. Und schon die Kleinsten stehen mit Rasseln in der ersten Reihe. Norma aus der Altstadt berichtet von den Blüten, die die Suche nach der Brille des Hausherrn am Fernsehabend treibt. Nach erfolgloser Suche wird kurzentschlossen eine größere Flimmerkiste gekauft, für die jedoch umfangreiche bauliche Veränderungen vonnöten sind. Dass der Gatte es sich nicht nehmen lässt, die letzten Anschlussarbeiten selbst durchzuführen, führt zu völliger Finsternis im Haus. Dass die Brille Schluss letztlich in der Jackentasche wieder auftaucht, ist da schon fast nebensächlich. Das Song Duo Stephan Schummer und Chris Decker verteilt Geld im Publikum, während sie über ihre Philosophie zur Macht des Geldes gesanglich singen. Vorsichtshalber weisen sie darauf hin, dass die Scheine vom Vorsitzenden Ulfert Hahn unterschrieben wurden. Mit viel Schwung und zu Musik aus beiden 20er Jahren wirbeln die Mädels der Tanzgarde über die Bühne. Passend dazu geben im Anschluss die Vereinssänger ein Medley des Klassikers „Veronika, der Lenz ist da“. „Bei so vielen Aktiven können wir bei den Umzügen mit sieben Fußgruppen und zwei Wagen aufwarten“, berichtet Landefeld mit berechtigtem Stolz. Nach der Pause, in der die Mitglieder von „Konfetti“ ein buntes Buffet anbieten, geht es weiter mit den „Orschel Warrior Games“. Peter Wolf als „Krummbein“ und Phil Thiedemann als „Bonsai Super Mario“ treten in vier Disziplinen gegeneinander an. Das Krummbein trotz mangelnder Gesamtleistung von den Damen im „Orschel Eros“ die höchste Punktzahl erhält, ist unter anderem Thema beim anschließenden Interview mit Claudia Chudaska. Fahrrad, E-Bike und Ergometer Wie Betty vom klassischen Drahtesel über das E-Bike zum Ergometer gekommen ist, gibt sie anschaulich und mit viel Unterhaltungswert zum Besten. Die Damen vom „Alte Mädels Ballett“ stärken sich nach ihrem Auftritt mit einem Sekt, nur um bei der Zugabe noch einmal alles zu geben. Matthias Decker alias „Greta aus der Wetterau“ verdeutlicht die Verbindung zwischen der Auenlandschaft und dem Vordertaunus. „Denn schon ein Hüftschwung in der Wetterau“, so Decker, „kann einen Orkan in Orschel auslösen.“ Nach den umjubelten Auftritten des Männerballetts und der Schlager Karaoke der Sänger bedanken sich Markus Lohnstein und Claudia Chudaska bei allen Helfern für den äußerst gelungenen Kampagnenstart. |!Online |https://www.taunus-nachrichten.de/oberursel/nachrichten/oberursel/frauenpower-garden-greta-beim-frohsinn-id136524.html | --- |Taunus-Zeitung |14.02.23 |''2549 Narren in 195 Zugnummern'' (Pressebild)| [img[https://www.fnp.de/bilder/2023/02/14/92088120/30898213-kiss-laesst-gruessen-wen-die-frohsinn-saenger-nachahmen-ist-eindeutig-zu-erkennen-umzug-2018-W6b.jpg]] |!Online |https://www.fnp.de/lokales/hochtaunus/oberursel-ort69327/oberursel-2549-narren-in-195-zugnummern-92088120.html| --- |Oberurseler Woche |30.03.23 |''Zwei Oberbayern haben Lust aufs Oberurseler Brunnenfest''| [img[https://www.karnevalverein-frohsinn.de/mob/assets/images/23-03-30-ow-zweioberbajernhabenlust-600sm-600x725.jpg]] |!Online |https://www.taunus-nachrichten.de/oberursel/nachrichten/oberursel/zwei-oberbayern-haben-lust-aufs-oberurseler-brunnenfest-id139444.html| |!PDF |https://www.karnevalverein-frohsinn.de/23-03-30%20ow-ZweiOberbajernHabenLust.pdf | --- |Taunus-Zeitung |30.03.23 |''Die künftige Brunnenkönigin heißt Felicitas''| --- |Taunus-Zeitung |03.04.23 |''Den "Neues Brunnen-Paar-fühlt sich in 'Orschel' wohl''| [img[https://www.karnevalverein-frohsinn.de/mob/assets/images/23-03-30-ow-zweioberbajernha.jpg]] |!Online |https://www.fnp.de/lokales/hochtaunus/oberursel-ort69327/oberursel-neues-brunnen-paar-fuehlt-sich-in-orschel-wohl-92189087.html| --- |Oberurseler Woche |06.04.23 |''Tanzend in eine majestätische Amtszeit''| --- --- [[Nach oben...|Presse 2022/23]]
|![[Archiv]]||!Informatives |[[Pressearchiv]]|[[Vereinsfahne]]|[[Prinzen|Tollitäten]]|[[Orden]]|[[Vorstand]]|[[Satzung]]|[[Publikationen]]| | [[Der Frohsinn]] | --- --- |[[Presse 1890]]|[[Presse 2000/01]]|[[Presse 2010/11]]|[[Presse 2020/21]]| |[[Presse 1945]]|[[Presse 2001/02]]|[[Presse 2011/12]]|[[Presse 2021/22]]| |[[Presse 1960]]|[[Presse 2002/03]]|[[Presse 2012/13]]|[[Presse 2022/23]]| |[[Presse 1970]]|[[Presse 2003/04]]|[[Presse 2013/14]]| | |[[Presse 1980]]|[[Presse 2004/05]]|[[Presse 2014/15]]| | |[[Presse 1990]]|[[Presse 2005/06]]|[[Presse 2015/16]]| | | |[[Presse 2006/07]]|[[Presse 2016/17]]| | | |[[Presse 2007/08]]|[[Presse 2017/18]]| | | |[[Presse 2008/09]]|[[Presse 2018/19]]| | | |[[Presse 2009/10]]|[[Presse 2019/20]]| | --- --- [[Nach oben...|Pressearchiv]]
|[[Der Frohsinn]]|[[Veranstaltungen]]|[[Bühnenaktive]]|[[Chronik]]| --- |[[Chronik]]|[[Chronik-Übersicht]]| --- |!Prunk-Sitzungen des KV Frohsinn 1890 Oberursel e.V.| !!Hohe Rats Sitzung 1928 Ort: Schwanen-Saal<br> Die erste “HOHE RATS SITZUNG fand am 11.11.28 statt.<br> Der ersten “11-er Rat” setzte sich wie folgt zusammen:<br> ~Sitzungs-President Wilhelm Oeffinger und seine Mitstreiter G.Remy, P.Kärgel, F.Schauer, K.Ruppel, K.Schmidt, H.Spang, J.Weber, K.Hieronymi und W.Müller. !!Sitzung 1932 Ort: "Taunussaal" in der Obergasse !!Prunksitzung 1957 Ehrengarde (Erster öffentlicher Auftritt) !!Prunksitzung 1958 Frohsinn-Sänger !!Prunksitzung 1971 Ort: ~Capitol-Theater Protokoller: [[Wolfgang Weber]] !!Prunksitzung 1972 Ort: ~Capitol-Theater Sitzungspräsident: [[Friedel Fischer]] !!Prunksitzung 1973 Ort: ~Capitol-Theater Sitzungspräsident: [[Friedel Fischer]] Frohsinn-Ballett Musik-Mixer !!Prunksitzung 1974 Ort: ~Capitol-Theater Sitzungspräsident: [[Friedel Fischer]] Frohsinn-Ballett !!Prunksitzung 1975 Ort: Turnhalle ~Kennedy-Schule Sitzungspräsident: [[Friedel Fischer]] Majorettes (1.Auftritt) !!Prunksitzung 1976 Ort: Turnhalle ~Kennedy-Schule Sitzungspräsident: [[Friedel Fischer]] Majorettes !!Prunksitzung 1977 Ort: Turnhalle ~Kennedy-Schule Sitzungspräsident: [[Friedel Fischer]] Tanzmariechen Regina Möckel und Tanzmajor ~Karl-Gerhard Pohlmann Frohsinn-Sänger als "~Gründungs-Chor" Fanfahrenzug Kleiner Rat als Schotten Musik-Mixer (Tommy Kress, Klaus Offen, Rolf Affemann) Majorettes Frohsinn-Ballett !!Prunksitzung 1978 Ort: Turnhalle ~Kennedy-Schule Sitzungspräsident: [[Friedel Fischer]] Garde ~Blau-Weiß Majorettes Frohsinn-Sänger: Motto "Hotel International" !!Prunksitzung 1979 Ort: Turnhalle ~Kennedy-Schule Sitzungspräsident: [[Friedel Fischer]] Majorettes !!Prunksitzung 1980 Ort: Turnhalle ~Kennedy-Schule Sitzungspräsident: [[Friedel Fischer]] Protokoller: [[Wolfgang Weber]] Majorettes !!Prunksitzung 1981 Ort: Turnhalle ~Kennedy-Schule Sitzungspräsident: [[Friedel Fischer]] !!Prunksitzung 1982 Ort: Turnhalle ~Kennedy-Schule Sitzungspräsident: [[Friedel Fischer]] !!Prunksitzung 1983 Ort: Turnhalle ~Kennedy-Schule Sitzungspräsident: [[Friedel Fischer]] !!Prunksitzung 1984 Ort: Turnhalle ~Kennedy-Schule Sitzungspräsident: [[Friedel Fischer]] Frohsinn-Sänger: Motto "Traumschiff" !!Prunksitzung 1985 Ort: Stadthalle Oberursel Sitzungspräsident: [[Wolfgang Weber]] [[Monika Meirer]] Vortrag: "Waschfraa" !!Prunksitzung 1986 Ort: Stadthalle Oberursel Sitzungspräsident: [[Wolfgang Weber]] !!Prunksitzung 2005 ''__Programmpunkte:__'' 1 Prolog 2 Begrüßung 3 Prinzenansprache 4 Funkentanz 5 Tanz der Ehrengarde 6 Protokoll 7 Minis 8 Teens 9 Drumkids & Ausbildungsgruppe der Brassband 10 Marktweiber 11 Garde 12 Matthias Decker 13 Frohsinn Sänger 14 Pause 15 Brassband 16 Flo 17 Ballett 18 Tini & Hardy 19 Männerballett 20 Schüssel 21 Finale !Prunksitzung 2006 ''__Programmpunkte:__'' 1 Prinzenalarm 2 Begrüßung 3 Prinzenansprache 4 Märchenprinz 5 Auszug Eröffungsbild 6 Tanzpaar 7 Protokoll 8 Minis 9 Drumkids & Ausbildungsgruppe der Brasband 10 Marktweiber 11 Tanzgarde 12 Flo Steden 13 Frohsinn Sänger 14 P A U S E 15 Brassband 16 Orschler Karnevalsschlager 17 Kurti & Helmut 18 Ballett 19 Matthias 20 Tini, Hardy & Renate 21 Männerballett 22 Schüssel 23 Finale !Prunksitzung 2007 ''__Programmpunkte:__'' 1 Paukenschlag 2 Begrüßung 3 Prinzenansprache 4 Tanzpaar 5 KR-Kids 6 Protokoll 7 Minis 8 Drumkids 9 Jupp 10 Tanzgarde 11 Emanzipation 12 K.P. / Matthias 13 Sänger 14 PAUSE 15 Brassband 16 Stimmungslieder 17 Marktweiber 18 Betti 19 Rentnerlos 20 Männerballett 21 Matthias / K.P. 22 Ballett / Finale !Prunksitzung 2008 Mit rund 300 Mitwirkenden boten wir eine fünfeinhalbstündige Show mit Musik und Tanz, Büttenreden und viel Klamauk. Elferratspräsidenten: ~Klaus-Peter Hieronymi „Jetzt ist der Frohsinn endlich wieder dahin zurückgekehrt, wo er hingehört: in die Altstadt“ Programmpunkte: *Prinz Frank I mit seinem Hofstaat *Tanzmariechen Sina Dietz *Schlecht Gebabbel mit Roland Ruppel und Winfried Dorn *Eine nicht ganz ernst gemeinten Modenschau der Kids vom Kleinen Rat *Einer rasanten Tanzdarbietungen der Minis auf ein Boney M.-Medley *Der Tanzgarde *Die mit den Stöcken wirbelnden Drumkids *Die jüngste Büttenrednerin in der ~Frohsinn-Geschichte Michelle Wilkinson: Sie rief dem begeisterten Publikum in Erinnerung, wie man sich als Siebenjährige so fühlt, wenn es immer wieder heißt: „Dafür bist du viel zu klein!“ *Protokoll mit Stephan Remes *Jörg Steden als kränkelnder Ehemann mit Wärmeflasche vor dem Bierbauch und Betty Marris als kreischende Gattin *Den Orschler Marktweiber mit dem neusten vom Marktplatz *Die Cops mit Peter Wolff, Gerd Krämer und Jochen Ruppel als „Befreier Orschels“ *Jens Landefeld als Feuerwehrmann *Die Frohsinn-Sänger mit einem musikalischen Rückblick auf die vergangenen 50 Jahre *Die Brassband mit ~Big-Band-Sound von Glenn Miller bis zur italienischen Tarantella *Drei „Orscheler Baulöwen“ vom KR zeigten ihren „Arbeitseifer” *Die KR-Teens mit einer eindruckvollen Reportage über Orschel’s Brunnenwelt *“Edda” alias „Edu Keller die nur einen Wunsch hatte: „Ein Mann, der mir die Tüten trägt“, *Das Männerballett präsentierte sich zunächst als himmlische Nonnentruppe und endete schließlich als kleine Teufelchen *Matthias Decker als Brandbevollmächtigter *Das Frohsinn-Ballett mit dem ~Abba-Musical „Mamma Mia“ *Das Finale mit allen Mitwirkenden !Prunksitzung 2009 __Programmpunkte:__ Vorspiel Eröffungsblock Minis Protokoll Tanzgarde Kindervortrag Michelle Sketch Hesselbachs Jugendbrassband & Drumkids Matthias Decker Frohsinnsänger Marktweiber Männerballett Michi K Brassband Tini & Hardy Frohsinn Ballett Finale !Prunksitzung 2010 Programmpunkte: Opening / Eröffungsblock & Begrüßung Protokoll Minis ~KRS-Presse Sketch Klaus & Klaus Michelle Jugenbrassband & Drumkids KP Garde Frohsinnsänger Pause Marktweiber Nanga Ebucu Brassband Sketch (Mann beim Arzt) Männerballett Matthias Decker Frohsinn Ballett Finale !Prunksitzung 2011 Termine: Fr 11.02.11 / Sa 12.02.11 / Sa 19.02.11 Ort: Stadthalle Oberursel ''__Programmpunkte:__'' 01 Vorspiel - Jens Landefeld 02 Einzug & Begrüßung - Prinz & Garde - Gardetanz 03 Protokoll - Stephan Remes 04 Minis - Piratentanz 05 Klaus & Klaus 06 Alex Ruppel - Bäckerlehrling 07 Tanzgarde 08 Matthias Decker - Zahnfee 09 Jugendbrassband & Drumkids 10 Sänger 11 Pause 12 Marktweiber 13 Zwiegespräch (Vali & Philipp) 14 Brassband 15 Tini & Hardy 16 Männerballett - Summerfeeling 17 Nanga 18 Ballett - Hairspray 19 Finale - Edu Keller [img[1|../galerie/buehnenfastnacht/2011sitzung/data/thumbnails/frohsinnsitzung_2011_004.jpg]] [img[2|../galerie/buehnenfastnacht/2011sitzung/data/thumbnails/frohsinnsitzung_2011_013.jpg]] [img[ 2|../galerie/buehnenfastnacht/2011sitzung/data/thumbnails/frohsinnsitzung_2011_026.jpg]] [img[ 3|../galerie/buehnenfastnacht/2011sitzung/data/thumbnails/frohsinnsitzung_2011_030.jpg]] [img[ 4|../galerie/buehnenfastnacht/2011sitzung/data/thumbnails/frohsinnsitzung_2011_048.jpg]] [img[5|../galerie/buehnenfastnacht/2011sitzung/data/thumbnails/frohsinnsitzung_2011_050.jpg]] [img[6|../galerie/buehnenfastnacht/2011sitzung/data/thumbnails/frohsinnsitzung_2011_053.jpg]] [img[ 7|../galerie/buehnenfastnacht/2011sitzung/data/thumbnails/frohsinnsitzung_2011_084.jpg]] [img[ 8|../galerie/buehnenfastnacht/2011sitzung/data/thumbnails/frohsinnsitzung_2011_076.jpg]] [img[ 9|../galerie/buehnenfastnacht/2011sitzung/data/thumbnails/frohsinnsitzung_2011_067.jpg]] [img[10|../galerie/buehnenfastnacht/2011sitzung/data/thumbnails/frohsinnsitzung_2011_097.jpg]] [img[ 12|../galerie/buehnenfastnacht/2011sitzung/data/thumbnails/frohsinnsitzung_2011_127.jpg]] [img[13|../galerie/buehnenfastnacht/2011sitzung/data/thumbnails/frohsinnsitzung_2011_138.jpg]] [img[14|../galerie/buehnenfastnacht/2011sitzung/data/thumbnails/frohsinnsitzung_2011_146.jpg]] [img[ 15|../galerie/buehnenfastnacht/2011sitzung/data/thumbnails/frohsinnsitzung_2011_160.jpg]] [img[16|../galerie/buehnenfastnacht/2011sitzung/data/thumbnails/frohsinnsitzung_2011_187.jpg]] [img[ 17|../galerie/buehnenfastnacht/2011sitzung/data/thumbnails/frohsinnsitzung_2011_196.jpg]] [img[18|../galerie/buehnenfastnacht/2011sitzung/data/thumbnails/frohsinnsitzung_2011_226.jpg]] [img[ 19|../galerie/buehnenfastnacht/2011sitzung/data/thumbnails/frohsinnsitzung_2011_242.jpg]] [img[ 19|../galerie/buehnenfastnacht/2011sitzung/data/thumbnails/frohsinnsitzung_2011_252.jpg]] !Prunksitzung 2012 |Freitag |27.01.12|1.Große Fremdensitzung |Stadthalle Oberursel| |Samstag|28.01.12|2.Große Fremdensitzung |Stadthalle Oberursel| |Samstag|04.02.12|3.Große Fremdensitzung |Stadthalle Oberursel| |Sonntag|05.02.12|Senioren & Familiensitzung |Stadthalle Oberursel| ''__Programmpunkte:__'' *Eröffungsbild & Begrüßung *Jugendbrassband Drumkids *Protokoll *Minis *Michelle *Nachrichten Teil 1 *KP *Tanzgarde *Nachrichten Teil 2 *Thomas Siebenhaar *Sänger *Pause *Marktweiber *Nachrichten Teil 3 *Große Garde *Stephan Strobel *Nachrichten Teil 4 *Brassband *Schunkler *Ballett *Nanga *Männerballett *Finale |!Multimedia |!Titel |! Untertitel |!Link | |Homepage |Große Fremdensitzung 2012 |xxxxxxxxxx| |Fotogalerie |Fotos von... |xxxxxxxxxx | |Video |xxxxxxxxxxx |xxxxxxxxxx | |Presse |div. |[[Presse 2011/12]]| <br> !Prunksitzung 2016 |Fotogalerie von Andy Breitbart:|http://www.abartfoto.de/Sitzung_2016| !Prunksitzung 2017 |Fotogalerie von Andy Breitbart:|http://www.abartfoto.de/Sitzung_2017| !Prunksitzung 2018 |Fotogalerie von Andy Breitbart:|http://www.abartfoto.de/Sitzung_2018| !Prunksitzung 2019 |Fotogalerie von Andy Breitbart:|http://www.abartfoto.de/Sitzung_2019| !Prunksitzung 2020 |Fotogalerie von Andy Breitbart:|http://www.kvf1890.de/Sitzung_2020| !Kampagneeröffung 2022 Einladungstext<br> Sehr geehrter Herr .....<br> unser diesjähriges Musical hat uns gezeigt was man alles erreichen kann wenn man innerhalb der Korporationen noch vernetzter zusammenarbeitet und die vorhandenen Ressourcen und Talente im Verein übergreifend nutzt. Dieses Zusammengehörigkeitsgefühl wollen wir in der kommenden Kampagne weiter nutzen. Den Anfang machen wir zum Kampagnenstart indem wir die klassische Eröffnungssitzung mit den traditionellen KR-Sitzungen zusammenführen. Mit der etwas anderen Fastnachtshow „.. auf in die Wilden 20er“ blicken wir gemeinsam auf das Jahr 1920 zurück und ziehen Vergleiche in die heutigen 20er. Wir können heute schon versprechen, alle Aktiven des Vereins haben sich hierzu etwas originelles einfallen lassen – Haus und Bühne werden Motto gerecht dekoriert sein. --- --- |[[Chronik-Übersicht]]| |[[Chronik]]|[[Prunk-Sitzungen]]|[[Aktiven-Orden]]|[[Orscheler Karnevalsschlager]]| |[[Präsidenten & Vorstand]]|[[Fastnachtszüge]]|[[Vereins-Fahne]]|[[Fassenachts-Brunnen ]]| |[[Sitzungspräsidenten]]|[[Ohlenspiegel]]|[[Publikationen]]|[[Fassenacht]]| |[[Personen]]|[[Tollitäten]]|[[Vereinshaus]]|[[Oberursel]]| --- |[[Der Frohsinn]]|[[Veranstaltungen]]|[[Bühnenaktive]]|[[Chronik]]| (c) 2021 by R.G.
|![[Archiv]]||!Informatives |[[Pressearchiv]]|[[Vereinsfahne]]|[[Prinzen|Tollitäten]]|[[Orden]]|[[Vorstand]]|[[Satzung]]|[[Publikationen]]| | [[Der Frohsinn]] | --- --- !Publikationen Im Laufe der Jahre erschienen zu den verschiedensten Anlässen diverse Festschriften, Liederhefte und den ''FROHSINN-Newsletter'' [img[ |https://www.karnevalverein-frohsinn.de/assets/images/chronik-1972-liederheft_150.jpg]] [img[ |https://www.karnevalverein-frohsinn.de/assets/images/chronik-1990-festschrift_150.jpg]] [img[ |https://www.karnevalverein-frohsinn.de/assets/images/chronik-2001-feststrift_150.jpg]] [img[ |https://www.karnevalverein-frohsinn.de/assets/images/chronik-2010-zeitung_150.jpg]] [img[ |https://www.karnevalverein-frohsinn.de/assets/images/chronik-2015-festschrift_150.jpg]] [img[ |https://www.karnevalverein-frohsinn.de/assets/images/2022-Orschelrette_Plakat_200.jpg]] |!Classic-Version|https://www.karnevalverein-frohsinn.de/html/vf-verein-chronik-publikationen.html| --- !Liederhefte Anläßlich der Fastnachts-Sitzungen wurden Liederhefte erstellt, in denen sich der Verein und seine Korporationen vorstellte. Beispiel: Liederheft aus dem Jahre 1972 <p><iframe src="https://www.karnevalverein-frohsinn.de/assets/galerie-flip/1972-liederheft/index.html" frameborder="0" width="1040" height="500"></iframe></p><br> --- !Jubiläums-Festschrift 1990 <p><iframe src="https://www.karnevalverein-frohsinn.de/assets/galerie-flip/1990-festschrift100/index.html" frameborder="0" width="1040" height="500"></iframe></p><br> Eine Chronik des Karneval-Verein Frohsinn 1890 e.V. zum 100jährigen Jubiläum : [100 Jahre Frohsinn Oberursel]<br> Link: https://www.deutsche-digitale-bibliothek.de/item/3FGHUXSVIOLBWKGB4VCDFSOKLROLNKOS<br> Inhaltsverzeichnis: https://d-nb.info/1074471091/04 --- !Jubiläums-Festschrift 2001 Jubiläums-Festschrift 2001<br> "111 Jahre Frohsinn" <p><iframe src="https://www.karnevalverein-frohsinn.de/assets/galerie-flip/2001-festschrift111/index.html" frameborder="0" width="1040" height="500"></iframe></p><br> --- !Jubiläums-Zeitung 2011 Jubiläums-Zeitung 2011 "11x11 Jahre Frohsinn" <p><iframe src="https://www.karnevalverein-frohsinn.de/assets/galerie-flip/2011-festschrift121/index.html" frameborder="0" width="1040" height="500"></iframe></p><br> --- !Jubiläums-Festschrift 2015 Jubiläums-Festschrift 2015<br> "125 Jahre Frohsinn"<br> ''WIR SIND FROHSINN''<br> <p><iframe src="https://www.karnevalverein-frohsinn.de/assets/galerie-flip/2015-festschrift125/index.html" frameborder="0" width="1040" height="500"></iframe></p><br> --- !Programmheftche zur Orschelrette "Im weißen Bembel" <p><iframe src="https://www.karnevalverein-frohsinn.de/assets/galerie-flip/2022-orschelrette-programheftche/index.html" frameborder="0" width="1040" height="500"></iframe></p><br> --- !Newsletter Seit ca 2020 gibt es den Frohsinn - Newsletter<br> Vorerst nur zur Info der Vereinsmittglieder.<br> Geplant ist eine Version für interressierte Nichtmitglieder __Nachfolgend die bisher erschienen NEWSLETTER:__ |!''2020 / 01''|https://www.karnevalverein-frohsinn.de/assets/data/KVF_Newsletter_1.pdf | |!''2020 / 02''|https://www.karnevalverein-frohsinn.de/assets/data/KVF_Newsletter_2.pdf | |!''2020 / 03''|https://www.karnevalverein-frohsinn.de/assets/data/KVF_Newsletter_3.pdf | |!''2020 / 04''|https://www.karnevalverein-frohsinn.de/assets/data/KVF_Newsletter_4.pdf | |!''2020 / 05''|https://www.karnevalverein-frohsinn.de/assets/data/KVF_Newsletter_5.pdf | |!''2020 / 07''|https://www.karnevalverein-frohsinn.de/assets/data/KVF_Newsletter_6.pdf | |!''2020 / 07''|https://www.karnevalverein-frohsinn.de/assets/data/KVF_Newsletter_7.pdf | |!''2021 / 01''|https://www.karnevalverein-frohsinn.de/assets/data/KVF_Newsletter_2021-01_Sonderausgabe.pdf | |!''2021 / 02''|https://www.karnevalverein-frohsinn.de/assets/data/KVF_Newsletter_2021-02.pdf | |!''2022 / 03''|https://www.karnevalverein-frohsinn.de/assets/data/KVF_Newsletter_2022_03.pdf | |!''2022 / 04''|https://www.karnevalverein-frohsinn.de/assets/data/KVF_Newsletter_2022_04.pdf | |!''2022 / 05''|https://www.karnevalverein-frohsinn.de/assets/data/KVF_Newsletter_2022_05.pdf | |!''2022 / 05''|https://www.karnevalverein-frohsinn.de/assets/data/KVF_Newsletter_2022_06.pdf | <br> <br> --- --- [[Nach oben...|Publikationen]]
|[[Start]]|[[Der Frohsinn]]|[[Veranstaltungen]]|[[Bühnenaktive]]|[[Chronik]]| --- |[[Multimedia-Online]]|[[Multimedia-Fotogalerien]]|[[Multimedia-Videos]]|[[Multimedia-Sounds]]| --- !!Quellen-Sammlung und Ort |!Objekt|!Lagerort|!~Bearbeitung-Status|!Scan| |Jubiläumsheft 100 Jahre (1990)|Rainer Guth||teilweise| |Jubiläumsheft 111 Jahre (2001)|Rainer Guth|Alles|komplett| |Programm- und Liederheft 1972|Jörg Steden|Alles|komplett| |Programm- und Liederheft 1973|Jörg Steden|Alles|| |Programm- und Liederheft 1974|||| |Programm- und Liederheft 1975|Jörg Steden|Alles|| |Programm- und Liederheft 1976|Jörg Steden|Alles|| |Programm- und Liederheft 1977|Jörg Steden|Alles|| |Programm- und Liederheft 1978|Jörg Steden|Alles|| |Programm- und Liederheft 1979|Jörg Steden|Alles|| |Programm- und Liederheft 1980|Jörg Steden|Alles|| |Programm- und Liederheft 1981|||| |Programm- und Liederheft 1982|Jörg Steden|Alles|| |Programm- und Liederheft 1983|||| |Programm- und Liederheft 1984|||| |Programm- und Liederheft 1985|Jörg Steden|Alles|| |Programm- und Liederheft 1986|Jörg Steden|Alles|| |Programm- und Liederheft 1987|Jörg Steden|Alles|| |Programm- und Liederheft 1988|Jörg Steden|Alles|| |Programm- und Liederheft 1989|Jörg Steden|Alles||
|![[Archiv]]||!Informatives |[[Pressearchiv]]|[[Vereinsfahne]]|[[Prinzen|Tollitäten]]|[[Orden]]|[[Vorstand]]|[[Satzung]]|[[Publikationen]]| | [[Der Frohsinn]] | --- --- ! Satzung des Karnevalverein Frohsinn 1890 e.V. !! Neufassung laut Beschluss der Jahreshauptversammlung vom 12.07.2016 ''§ 1 Name und Sitz des Vereins'' Der Verein führt den Namen „Karnevalverein Frohsinn 1890 e.V.“ und hat seinen Sitz in Oberursel, Frohsinn-Weg 1. Der Verein ist im Vereinsregister Bad Homburg unter der Nr. 362 eingetragen. ''§ 2 Zweck des Vereins'' Zweck des Vereins ist die Pflege des karnevalistischen Brauchtums, insbesondere die Erhaltung und Förderung des „Taunuskarnevals“ in seiner kulturell wertvollen Bedeutung, weiter die Förderung der Jugendpflege, die Pflege von Geselligkeit, die Durchführung von Veranstaltungen, die diesen Zwecken dienen. ° Der Verein verfolgt ausschließlich und unmittelbar gemeinnützige Zwecke ° Der Verein ist selbstlos tätig; er verfolgt nicht in erster Linie eigen- wirtschaftliche Zwecke Mittel des Vereins dürfen nur für die satzungsmäßigen Zwecke verwendet werden. Die Mitglieder erhalten keine Zuwendungen aus Mitteln des Vereins. Es darf keine Person durch Ausgaben, die dem Zweck der Körperschaft fremd sind, oder durch unverhältnismäßig hohe Vergütung begünstigt werden. ''§ 3 Mitgliedschaften'' 1. Die Mitgliedschaft können alle natürlichen sowie juristischen Personen erwerben. 2. Die Mitgliedschaft ist schriftlich unter Benutzung des Aufnahmeformulars zu beantragen. 3. Minderjährige bedürfen der Zustimmung ihrer Erziehungsberechtigten. 4. Der Verein führt aktive und passive Mitglieder. 5. Die Mitgliedschaft in einer Korporation setzt die Mitgliedschaft im Verein voraus. 6. Über die Aufnahme entscheidet der Geschäftsführende Vorstand. 7. Die Mitgliedschaft beginnt nach der Aufnahme mit Zahlung des Jahresbeitrages. 8. Die Mitgliedschaft endet durch: a. Tod b. Austritt c. Ausschluss Der Austritt erfolgt zum Ende des Kalendermonats. Die Austrittserklärung muss spätestens vier Wochen vor dem beabsichtigten Austrittstermin gegenüber dem Verein, vertreten durch den geschäftsführenden Vorstand, schriftlich vorliegen. Der Ausschluss aus dem Verein kann durch Beschluss des geschäftsführenden Vorstandes erfolgen wenn das Mitglied: ° Das Ansehen des Vereins erheblich schädigt ° Gegen den Zweck des Vereins verstößt oder ° Trotz dreimaliger, schriftlicher Anmahnung seiner Beitragspflicht nicht nachkommt. Das ausgeschlossene Mitglied hat binnen eines Monats nach schriftlicher Bekanntgabe des Ausschlusses das Recht, gegenüber dem Verein, vertreten durch den Vorstand, schriftlich Einspruch gegen den Ausschluss einzulegen. Der schriftliche Einspruch hat aufschiebende Wirkung. Über den Einspruch entscheidet der Vorstand oder die Mitgliederversammlung nach Anhörung des Auszuschließenden mit einfacher Mehrheit endgültig. Mit Beendigung der Mitgliedschaft erlöschen alle Ansprüche, jedoch nicht noch bestehende Verbindlichkeiten gegenüber dem Verein. 9. Besonders verdiente Mitglieder können auf Vorschlag des geschäftsführenden Vorstandes durch einfachen Mehrheitsbeschluss der Mitgliederversammlung zu Ehrenmitgliedern ernannt werden. ''§ 4 Organe'' (1) Organe des Vereins sind: 1. Jahreshauptversammlung der Mitglieder 2. Geschäftsführender Vorstand Alle Ämter sind Ehrenämter, die bei der Ausübung der Ämter entstandenen Auslagen und Aufwendungen können ersetzt werden. Der „geschäftsführende Vorstand“ besteht aus: ° 1. Vorsitzenden ° 2. Vorsitzenden ° 1. Kassierer ° 2. Kassierer ° 1. Schriftführer ° 1. u. weitere Zeugwarte ° Pressesprecher Zum erweiterten Vorstand des Vereins außer dem geschäftsführenden Vorstand zählen: ° Ehrenvorsitzender ° Je zwei gewählte Vertreter der einzelnen Korporationen. Der 1. Vorsitzende ist Vorstand im Sinne des § 26 BGB. Es vertritt ihn – auch als Vorstand im Sinne des § 26 BGB – der 2. Vorsitzende. (2) Die Jahreshauptversammlung (JHV) ist das oberste Organ des Vereins. Sie findet einmal jährlich statt. Der Zuständigkeit der JHV unterliegen insbesondere: I. a) Die Beratung und Beschlussfassung über die von den Korporationen zu erfüllenden Aufgaben, b) Die Genehmigung des Rechenschaftsberichts über das abgelaufene Geschäftsjahr nebst der Entlastung des geschäftsführenden Vorstandes, c) Die Wahl des geschäftsführenden Vorstandes und die Erteilung für die zur Geschäftsführung des nächsten Jahres erforderlichen Richtlinien, d) Die Wahl übriger Ämter, e) Die Festsetzung der Aufnahmegebühr und des Jahresbeitrages, f) Die Entscheidung über jede Änderung der Satzung, g) Die Entscheidung über die Auflösung des Vereins. Die Auflösung kann nur von mindestens 50 % der Vereinsmitglieder verlangt werden, II. Die Einberufung der Jahreshauptversammlung hat mit einer Frist von 14 Tagen schriftlich unter Bekanntgabe der Tagesordnung durch den geschäftsführenden Vorstand zu erfolgen. III. Eine ordnungsgemäß einberufene JHV ist in allen auf der Tagesordnung bezeichneten Angelegenheiten beschlussfähig. IV. Anträge, die auf der JHV behandelt werden sollen, können in mündlicher Form dort gestellt werden. Anträge auf Satzungsänderungen oder Auflösung des Vereins müssen jedoch immer mit der Einladung zur JHV bekannt gegeben werden. Außerordentliche Mitgliederversammlungen können jederzeit vom Vorstand einberufen werden, wenn es das Interesse des Vereins erfordert. Sie müssen einberufen werden, wenn mindestens 1/3 der Mitglieder dies durch einen von ihnen unterschriebenen Antrag, mindestens 4 Wochen vorher, verlangen. Der Antrag muss den Zweck der Einberufung angeben. Die Mitgliederversammlung kann die Aufgaben der JHV übernehmen. ''§ 5 Wahlen und Abstimmungen'' Alle Wahlen und Abstimmungen erfolgen per Akklamation, jedoch müssen sie bei Einspruch, eines der anwesenden stimmberechtigten Mitgliedes, geheim durchgeführt werden. Bei Stimmengleichheit ist der Wahlvorschlag zu wiederholen. Nochmalige Stimmengleicheit gilt als Ablehnung. Es genügt stets die einfache Mehrheit, außer bei den Punkten (1) e, f und g im § 4 wofür eine ¾ Stimmenmehrheit der anwesenden stimmberechtigten Mitglieder erforderlich ist. Die Amtszeit der gewählten Vorstandsmitglieder beträgt 2 Jahre. Der/die 1. Vorsitzende, 1. Kassierer und 1. Zeugwart werden in einem Jahr gewählt, die übrigen Vorstandsmitglieder in dem darauf folgenden Jahr. In besonderen Situationen können einzelne Vorstandsmitglieder auch auf 1 Jahr gewählt werden, dies muss jedoch durch die Versammlung vorher bestätigt werden. Eine Wiederwahl ist zulässig. Bei Ausscheiden eines Vorstandsmitgliedes innerhalb der Wahlzeit haben die übrigen Vorstandsmitglieder das Recht, eine Ersatzperson bis zur nächsten Mitgliederversammlung zu bestimmen, die diese Funktion ausüben kann. Mitglieder ab dem 16. Lebensjahr sind stimmberechtigt und ab Volljährigkeit in den geschäftsführenden Vorstand wählbar. Sie müssen die bürgerlichen Ehrenrechte besitzen. Nach Genehmigung des Rechenschaftsberichtes ist über die Entlastung des geschäftsführenden Vorstandes abzustimmen. Es ist mit der Wahl des 1. Vorsitzenden zu beginnen. Dieser leitet dann die weitere Wahl. Die Vertreter der einzelnen Korporationen im Vorstand werden von den jeweiligen Korporationen selbst gewählt und in den erweiterten Vorstand delegiert. ''§ 6 Protokollführung'' Über sämtliche Sitzungen und Abstimmungsvorgänge sind Protokolle zu führen, aus denen die gefassten Beschlüsse und Abstimmungsergebnisse hervorgehen müssen. Die Protokolle sind gesammelt aufzubewahren. Die Protokolle der JHV sind von einem Vorstandsmitglied und einem nicht dem geschäftsführenden Vorstand angehörigen Mitglied zu unterzeichnen und auf Verlangen den Mitgliedern des Vereins zur Einsicht vorzulegen. ''§ 7 Vereinsvermögen'' Die aus Mitteln des Vereins oder seiner Korporationen erworbenen oder durch Spenden oder sonst wie dem Verein oder seinen Korporationen zugeführten Werte und Rechte sind Vereinseigentum. Sie bilden mit dem Kannenbestand und den Forderungen des Vereins das Vereinsvermögen. Bei Auflösung des Vereins oder bei Wegfall steuerbegünstigter Zwecke entscheidet die Mitgliederversammlung mit ¾ Mehrheit nach Regelung aller Verpflichtungen über die Verwendung des Vereinsvermögens. Es muss gemeinnützigen Zwecken innerhalb des Vereinssitzes zugeführt werden. Beschlüsse über die künftige Verwendung des Vermögens dürfen erst nach Einwilligung des Finanzamtes ausgeführt werden. ''§ 8 Mitgliedsbeiträge'' Die Mitglieder sind zur Betragszahlung verpflichtet. Der von der JHV festgelegte Mitgliedsbeitrag ist spätestens zum Ende des Kalenderjahres zu entrichten. Beitragsfreiheit kann in besonderen Fällen vom geschäftsführenden Vorstand beschlossen werden. ''§ 9 Erfüllungsort und Gerichtsstand'' Erfüllungsort und Gerichtsstand ist das Amtsgericht Bad Homburg v.d.H. ''§ 10 Anerkennung der Satzung'' Die vorliegende Satzung wurde durch die JHV am 18. April 1997 beschlossen. Sie tritt mit der rechtskräftigen Eintragung in das Vereinsregister in Kraft. Alle vorherigen Fassungen werden mit diesem Tage ungültig. Der geschäftsführende Vorstand ist berechtigt eine Hausordnung für das Vereinshaus uns sonstige Vereinsordnungen mit Mehrheit zu beschließen. Diese sind von den Mitgliedern zu beachten. Sie sind ihnen in geeigneter Weise zur Kenntnis zu bringen. 61440 Oberursel (Taunus), den 13.07.2016<br> Der Vorstand <br> <br> --- --- [[Nach oben...|Satzung]]
|[[Der Frohsinn]]|[[Veranstaltungen]]|[[Bühnenaktive]]|[[Chronik]]| --- |[[Der Frohsinn]]|[[Vorstand]]|[[Senatoren]]|[[Ausschüsse]]|[[Downloads]]|[[Satzung]]|[[Sponsoren]]|[[Partner]]|[[Kontakt]]| --- | Walter Abt | Unternehmer | | Karl-Heinz Barth | Barth Galvanik ~GmbH | | Aldo Casale | Inh. Bistrorante & Casa Primavera | | Toni Casale | Inh. Bistrorante & Casa Primavera | | Bernd Fuhrmann | Privatperson | | Jürgen Funke | Geschäftsführer Stadtwerke Oberursel | | Walter Gernhard | Privatperson | | Kerstin Giger | Stadtverordnete CDU-Fraktion | | Hans Dieter Homberg | Privatperson | | Christoph Kappus | Inh. Kappus Werbeservice | | Bernhard Kempermann | Rechtsanwalt | | Rüdiger Koch | Geschäftsführer Autohaus Koch | | Zaklina Koch | Geschäftsführerin Autohaus Koch | | Brigitte Kölsch | Kölsch Industrie-u. Handelsvertr. ~GmbH | | Olaf Körbitz | Allianz Generalvertretung Olaf Körbitz | | Ulrich Krebs | Landrat des Hochtaunuskreises | | Wofgang Kuc-Krüger | Privatperson | | Jens Landefeld | Privatperson | | Rudolf Locker | Privatperson | | Klaus Mehler | Privatperson | | Klaus Müller | Privatperson | | Guido Reul | Geschäftsführer WAGNER Maschinen ~GmbH | | Susanne Reuleaux-Dreisbach | Steuerberaterin | | Dieter Rosentreter | Privatperson | | Michael Sauer | Inh. Fahrschule Sauer | | Annette Schlosser | Inh. Schlosser Reisen | | Peter Schneider | Stadtrat a.D. | | Bernd Schusta | Unternehmensberatung und Weinhandel | | Erika Sommer | Inh. Vogt & Sommer Schädlingsbekämpfung | | Günter Sommer | Inh. Vogt & Sommer Schädlingsbekämpfung | | Jürgen Sommer | Inh. Vogt & Sommer Schädlingsbekämpfung | | Frank Steier | Geschäftsführer Getränkevertrieb Jansen | | Neil Sturrock | Privatperson | | Sascha Thiele | Gebietsleiter Radeberger Gruppe | | Achim Wagner | Privatperson | | Lars Wagner | Geschäftsführer WAGNER Maschinen ~GmbH | | Achim Wilhelm-Wittschier | Privatperson | | Frederick Wilkinson | Geschäftsführer Dayton Progress ~GmbH | <br> <br> --- |[[Der Frohsinn]]|[[Vorstand]]|[[Senatoren]]|[[Ausschüsse]]|[[Downloads]]|[[Satzung]]|[[Sponsoren]]|[[Partner]]|[[Kontakt]]| --- |[[Der Frohsinn]]|[[Veranstaltungen]]|[[Bühnenaktive]]|[[Chronik]]| (c) 2021 by R.G.
|bis | Ohl| |bis |Friedel Fischer| |bis |Wolgang Weber| |bis |K.P.Hieronemi| |bis |Gerd Krämer|
!Willkommen beim Frohsinn-Wiki 2022 [img[https://www.karnevalverein-frohsinn.de/mob/assets/images/mob-toppic-1-1920x542.jpg]] --- !!Hauptmenü |!''ARCHIV'' |!''CHRONIK'' |!''KORPORATIVES'' |!''INFORMATIVES'' |!''MULTIMEDIALES'' |!''SONSTIGES'' | | News | [[Zeitleiste]] | Ballett | [[Pressearchiv]] | [[Foto|Multimedia-Fotogalerien]] | [[Schlager|Orscheler Karnevalsschlager]] | | | Bühnenfastnacht | Tanzgarde | [[Vereinsfahne]] | [[Video|Multimedia-Videos]] | [[Brunnen]] | | | Strassenfastnacht | Minis | [[Prinzen|Tollitäten]] | Sound | [[Karneval Info's|Fastnacht von A-Z]]| | | Kinderfastnacht | Männerballett | [[Orden]] | | [[Links]] | | | Feste & Party's | Brassband |[[Vorstand]] | | | | | Sonstiges | Ehrengarde |[[Satzung]] | | | | | [[Chronik]] | 11'er Rat |[[Publikationen]] | | | | | | Kleiner Rat | | | | | | | Konfetti | [[Der Frohsinn]] | | | | | | Sänger |[[Facebook]]| | | | | | | Vortragende |Instagram | | | | | | Ehemalige Korp. |[[Berichte]] | | | |!Archiv | |!Chronik | |!Korporatives | |!Informatives |[[Pressearchiv]]|[[Vereinsfahne]]|[[Prinzen|Tollitäten]]|[[Orden]]|[[Vorstand]]|[[Satzung]]|[[Publikationen]]| | [[Der Frohsinn]] | |!Multimediales | |!Sonstiges |[[Schlager|Orscheler Karnevalsschlager]]|[[Brunnen]]|[[Karneval Info's|Fastnacht von A-Z]]|[[Links]]| |![[Archiv]]| [img width=300 [./data_pic/logo-frohsinn-2-600x600.jpg]] --- [[Nach oben...|Start]] [[StartBasic|Start_alt]]
!Willkommen beim Frohsinn-Wiki 2022 [img[https://www.karnevalverein-frohsinn.de/mob/assets/images/mob-toppic-1-1920x542.jpg]] --- !!Hauptmenü |![[Archiv]]| |[[Archiv-Struktur]]|[[Digitales Archiv]]|[[Qellensammlung]]|[[Neues 1]]|[[Kampagne Masterlayout]]| --- --- |[[Der Frohsinn]]||[[Bühnenaktive]]|[[Chronik]]| !Quellen |[[Multimedia-Online]]|[[Qellensammlung]]|[[Fastnacht von A-Z]]| !Orga |Orga|[[LogBuch]]|[[eMailAdressen]]|[[Layout]]|[[Webmaster]]|[[Neues 1]]|[[Test]]|[[Frohsinn Cloud]]| |!Frohsinn-Wiki-old |file:///C:/Data/GUTH--ONLINE/www-FROHSINN-OBERURSEL-DE/wiki/frohsinn-wiki.html| |!DSGVO-KV-Frohsinn 1890 e.V. |file://C:/DATA/Projekte/DATENSCHUTZ/DATENSCHUTZ_KV-Frohsinn/Wiki/DSGVO_KV-Frohsinn.html| |!Homepage: www.Karnevalverein-Frohsinn.de |http://www.karnevalverein-frohsinn.de/index.html| |!Facebook: |http://www.facebook.com/pages/Karnevalverein-Frohsinn-Oberursel/133716749991964|(redaktion@karnevalverein-frohsinn.de orschel)| |!Instagram: |https://www.instagram.com/frohsinn1890| |!Instagram: |https://www.instagram.com/explore/locations/1027557312/karnevalverein-frohsinn-oberursel-1890-ev/|Location-Site| Zugangsdaten Instagram: Instagram account with presse@karnevalverein-frohsinn.de. If it was you, enter this confirmation code in the app: 104275 [img width=400 [./data_pic/logo-frohsinn-2-600x600.jpg]] --- [[Nach oben...|Start]] [[StartBasic|Start_alt]]
|Homepage|https://tiddlywiki.com| |Tutorial |https://nesslabs.com/tiddlywiki-beginner-tutorial| !Fotos mit Link https://classic.tiddlywiki.com/ Fotos verlinken: [img[TillDawn Logo|./data_pic/vereinsorden-2011.jpg/tdlogo.gif][http://www.tilldawn.net/]] [[TillDawn Organisation|http://www.tilldawn.net/]] auf dieser Seite: http://videodrama.tiddlyspot.com/ [img[TillDawn Logo|http://www.tilldawn.net/images/tdlogo.gif][http://www.tilldawn.net/]] [img[Archiv|https://www.karnevalverein-frohsinn.de/assets/images/gal-2020-vf-brunnenfest_tn.jpg][http://www.tilldawn.net/]] [[TillDawn Organisation|http://www.tilldawn.net/]] !xxx <p style="text-align: center; margin-bottom: 0px; overflow: hidden; max-height: 207px; display: block; width: 150px;"><a href="www.karnevalverein-frohsinn.de"><img id="Bild5343" height="190" width="140" src="https://www.karnevalverein-frohsinn.de/assets/images/gal-2020-vf-brunnenfest_tn.jpg" alt="Zur Fotogalerie..." title="Zur Fotogalerie..." class="nof-align-top" style="vertical-align: top;"></a></p> <div class="tc-cards" style="font-size:0.7em;text-align:center;margin:3em auto;"> <a href="https://talk.tiddlywiki.org/" class="tc-btn-big-green" style="border-radius:4px;background-color:#FF8C19;" target="_blank" rel="noopener noreferrer"> {{$:/core/images/help}} ~TalkTW </a> <a href="https://www.youtube.com/c/JeremyRuston" class="tc-btn-big-green" style="border-radius:4px;background-color:#e52d27;" target="_blank" rel="noopener noreferrer"> {{$:/core/images/video}} ~YouTube </a> </div> <br> [[FOTOGALERIE 2023 Karnevalszug]] <br> <iframe width="560" height="315" src="https://www.youtube.com/embed/woWKWKmHtmQ" frameborder="0" allowfullscreen></iframe> <iframe width="560" height="315" src="https://www.youtube.com/embed/woWKWKmHtmQ" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen></iframe> <br> [img width=19% [https://www.karnevalverein-frohsinn.de/mob/assets/images/mob-toppic-1-1920x542.jpg]] [img width=19% [https://www.karnevalverein-frohsinn.de/mob/assets/images/mob-toppic-1-1920x542.jpg]] [img width=19% [https://www.karnevalverein-frohsinn.de/mob/assets/images/mob-toppic-1-1920x542.jpg]] [img width=19% [https://www.karnevalverein-frohsinn.de/mob/assets/images/mob-toppic-1-1920x542.jpg]] [img width=19% [https://www.karnevalverein-frohsinn.de/mob/assets/images/mob-toppic-1-1920x542.jpg]] [img width=19% [https://www.karnevalverein-frohsinn.de/mob/assets/images/mob-toppic-1-1920x542.jpg]] [img width=19% [https://www.karnevalverein-frohsinn.de/mob/assets/images/mob-toppic-1-1920x542.jpg]] [img width=19% [https://www.karnevalverein-frohsinn.de/mob/assets/images/mob-toppic-1-1920x542.jpg]] [img width=19% [https://www.karnevalverein-frohsinn.de/mob/assets/images/mob-toppic-1-1920x542.jpg]] !Anzeigen von Bildern aus Dateilisten ''Beispiel:''<br> f:\ARCHIV\Archiv-KV-FROHSINN\1890\chronik_fahne1921\fahne01.jpg<br> f:\ARCHIV\Archiv-KV-FROHSINN\1890\chronik_fahne1921\fahne02.jpg<br> f:\ARCHIV\Archiv-KV-FROHSINN\1890\body_gruendung.html<br> f:\ARCHIV\Archiv-KV-FROHSINN\1890\fahne01small.jpg<br> f:\ARCHIV\Archiv-KV-FROHSINN\1890\fahne02small.jpg --- [img[f:\ARCHIV\Archiv-KV-FROHSINN\1890\chronik_fahne1921\fahne01.jpg]] [img[f:\ARCHIV\Archiv-KV-FROHSINN\1890\chronik_fahne1921\fahne02.jpg]] [img[f:\ARCHIV\Archiv-KV-FROHSINN\1890\fahne01small.jpg]] [img[f:\ARCHIV\Archiv-KV-FROHSINN\1890\fahne02small.jpg]] [img[f:\ARCHIV\Archiv-KV-FROHSINN\1890-1945\08-08-20-tz-stadtarchiv_100.jpg]] [img[f:\ARCHIV\Archiv-KV-FROHSINN\1890-1945\08-08-20-tz-stadtarchiv_200.jpg]] [img[f:\ARCHIV\Archiv-KV-FROHSINN\1890-1945\1904-Anzeige-Sommerfest.jpg]] [img[f:\ARCHIV\Archiv-KV-FROHSINN\1890-1945\1928-elferrat-01_100.jpg]] [img[f:\ARCHIV\Archiv-KV-FROHSINN\1890-1945\1928-elferrat-01_450.jpg]] [img[f:\ARCHIV\Archiv-KV-FROHSINN\1890-1945\1928-prinz-karl1-wappen_100.jpg]] [img[f:\ARCHIV\Archiv-KV-FROHSINN\1890-1945\1933-prinz-jean1-wappen-100.jpg]] [img[f:\ARCHIV\Archiv-KV-FROHSINN\1890-1945\1933-prinz-jean1-wappen-small.jpg]] [img[f:\ARCHIV\Archiv-KV-FROHSINN\1890-1945\1935-prinz-rudolf1-wappen_100.jpg]] [img[f:\ARCHIV\Archiv-KV-FROHSINN\1890-1945\1936-prinz-paul1-wappen_100.jpg]] [img[f:\ARCHIV\Archiv-KV-FROHSINN\1890-1945\1937-prinz-aureus1_100.jpg]] [img[f:\ARCHIV\Archiv-KV-FROHSINN\1890-1945\1937-prinz-aureus1_450.jpg]] [img[f:\ARCHIV\Archiv-KV-FROHSINN\1890-1945\1937-prinz-aureus1-wappen_100.jpg]] [img[f:\ARCHIV\Archiv-KV-FROHSINN\1890-1945\1938-10-Jahre-Frohsinn_Quelle-SibylleCentgraf.jpg]] [img[f:\ARCHIV\Archiv-KV-FROHSINN\1890-1945\1939-prinz-jean2-wappen_100.jpg]] [img[f:\ARCHIV\Archiv-KV-FROHSINN\1890-1945\chronik_fahne-1.jpg]] [img[f:\ARCHIV\Archiv-KV-FROHSINN\1890-1945\chronik_fahne-1964-stadtfest-246.jpg]] [img[f:\ARCHIV\Archiv-KV-FROHSINN\1890-1945\chronik_fahne-2.jpg]] [img[f:\ARCHIV\Archiv-KV-FROHSINN\1890-1945\chronik_fahne-2small.jpg]] [img[f:\ARCHIV\Archiv-KV-FROHSINN\1890-1945\Festschrift-100-Jahre-VF_s018_musikverein_bild100.jpg]] [img[f:\ARCHIV\Archiv-KV-FROHSINN\1890-1945\Festschrift-100-Jahre-VF_s018_musikverein_bild450.jpg]] [img[f:\ARCHIV\Archiv-KV-FROHSINN\1890-1945\Festschrift-100-Jahre-VF_s030_fahnenweihe_350.jpg]] [img[f:\ARCHIV\Archiv-KV-FROHSINN\1890-1945\Festschrift-100-Jahre-VF_s030_fahnenweihe_45002.jpg]] [img[f:\ARCHIV\Archiv-KV-FROHSINN\1890-1945\Festschrift-100-Jahre-VF_s030_fahnenweihe_90.jpg]] [img[f:\ARCHIV\Archiv-KV-FROHSINN\1890-1945\Festschrift-100-Jahre-VF_s034_gruender-frohsinn_100.jpg]] [img[f:\ARCHIV\Archiv-KV-FROHSINN\1890-1945\Festschrift-100-Jahre-VF_s034_gruender-frohsinn_450.jpg]] [img[f:\ARCHIV\Archiv-KV-FROHSINN\1890-1945\Festschrift-100-Jahre-VF_s049_1927_100.jpg]] [img[f:\ARCHIV\Archiv-KV-FROHSINN\1890-1945\Festschrift-100-Jahre-VF_s049_1927_450.jpg]] [img[f:\ARCHIV\Archiv-KV-FROHSINN\1890-1945\Festschrift-100-Jahre-VF_s050_100.jpg]] [img[f:\ARCHIV\Archiv-KV-FROHSINN\1890-1945\Festschrift-100-Jahre-VF_s050_450.jpg]] [img[f:\ARCHIV\Archiv-KV-FROHSINN\1890-1945\Festschrift-100-Jahre-VF_s056_prinz_100.jpg]] [img[f:\ARCHIV\Archiv-KV-FROHSINN\1890-1945\Festschrift-100-Jahre-VF_s056_prinz_450.jpg]] [img[f:\ARCHIV\Archiv-KV-FROHSINN\1890-1945\Festschrift-100-Jahre-VF_s059_1936zug_100.jpg]] [img[f:\ARCHIV\Archiv-KV-FROHSINN\1890-1945\Festschrift-100-Jahre-VF_s059_1936zug_450.jpg]] [img[f:\ARCHIV\Archiv-KV-FROHSINN\1890-1945\Festschrift-100-Jahre-VF_s060_kater-100.jpg]] [img[f:\ARCHIV\Archiv-KV-FROHSINN\1890-1945\Festschrift-100-Jahre-VF_s060_prinz-100.jpg]] [img[f:\ARCHIV\Archiv-KV-FROHSINN\1890-1945\Festschrift-100-Jahre-VF_s060_prinz-400.jpg]] [img[f:\ARCHIV\Archiv-KV-FROHSINN\1890-1945\Festschrift-100-Jahre-VF_s061_1938_bild1100.jpg]] [img[f:\ARCHIV\Archiv-KV-FROHSINN\1890-1945\Festschrift-100-Jahre-VF_s061_1938_bild1450.jpg]] [img[f:\ARCHIV\Archiv-KV-FROHSINN\1890-1945\Festschrift-100-Jahre-VF_s061_1938_bild2100.jpg]] [img[f:\ARCHIV\Archiv-KV-FROHSINN\1890-1945\Festschrift-100-Jahre-VF_s061_1938_bild2450.jpg]] --- !Abgreifen von Online-Bildern (i.d.F. Fotos von Andy /Sitzung 2020) --- http://www.kvf1890.de/Sitzung_2020/slides/IMG_6660.JPG http://www.kvf1890.de/Sitzung_2020/slides/IMG_6685.JPG http://www.kvf1890.de/Sitzung_2020/slides/IMG_6995%20Kopie.jpg http://www.kvf1890.de/Sitzung_2020/slides/HN5A9962.JPG http://www.kvf1890.de/Sitzung_2020/slides/HN5A0386.JPG --- [img[ http://www.kvf1890.de/Sitzung_2020/slides/IMG_6660 .JPG]] [img[ http://www.kvf1890.de/Sitzung_2020/slides/IMG_6661 .JPG]] [img[ http://www.kvf1890.de/Sitzung_2020/slides/IMG_6662 .JPG]] --- !Zugriff auf ~HiDrive Bilder https://my.hidrive.com/api/file/thumbnail?pid=b1564978493.26758&height=1280&access_token=gAxZXRk88TnvjwoOyrsl [img[ https://my.hidrive.com/api/file/thumbnail?pid=b1564978493.26758&height=1280&access_token=gAxZXRk88TnvjwoOyrsl]] --- !Einbetten von Instagram <blockquote class="instagram-media" data-instgrm-captioned data-instgrm-permalink="https://www.instagram.com/p/CqiOB3zo5lS/?utm_source=ig_embed&utm_campaign=loading" data-instgrm-version="14" style=" background:#FFF; border:0; border-radius:3px; box-shadow:0 0 1px 0 rgba(0,0,0,0.5),0 1px 10px 0 rgba(0,0,0,0.15); margin: 1px; max-width:540px; min-width:326px; padding:0; width:99.375%; width:-webkit-calc(100% - 2px); width:calc(100% - 2px);"><div style="padding:16px;"> <a href="https://www.instagram.com/p/CqiOB3zo5lS/?utm_source=ig_embed&utm_campaign=loading" style=" background:#FFFFFF; line-height:0; padding:0 0; text-align:center; text-decoration:none; width:100%;" target="_blank"> <div style=" display: flex; flex-direction: row; align-items: center;"> <div style="background-color: #F4F4F4; border-radius: 50%; flex-grow: 0; height: 40px; margin-right: 14px; width: 40px;"></div> <div style="display: flex; flex-direction: column; flex-grow: 1; justify-content: center;"> <div style=" background-color: #F4F4F4; border-radius: 4px; flex-grow: 0; height: 14px; margin-bottom: 6px; width: 100px;"></div> <div style=" background-color: #F4F4F4; border-radius: 4px; flex-grow: 0; height: 14px; width: 60px;"></div></div></div><div style="padding: 19% 0;"></div> <div style="display:block; height:50px; margin:0 auto 12px; width:50px;"><svg width="50px" height="50px" viewBox="0 0 60 60" version="1.1" xmlns="https://www.w3.org/2000/svg" xmlns:xlink="https://www.w3.org/1999/xlink"><g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd"><g transform="translate(-511.000000, -20.000000)" fill="#000000"><g><path d="M556.869,30.41 C554.814,30.41 553.148,32.076 553.148,34.131 C553.148,36.186 554.814,37.852 556.869,37.852 C558.924,37.852 560.59,36.186 560.59,34.131 C560.59,32.076 558.924,30.41 556.869,30.41 M541,60.657 C535.114,60.657 530.342,55.887 530.342,50 C530.342,44.114 535.114,39.342 541,39.342 C546.887,39.342 551.658,44.114 551.658,50 C551.658,55.887 546.887,60.657 541,60.657 M541,33.886 C532.1,33.886 524.886,41.1 524.886,50 C524.886,58.899 532.1,66.113 541,66.113 C549.9,66.113 557.115,58.899 557.115,50 C557.115,41.1 549.9,33.886 541,33.886 M565.378,62.101 C565.244,65.022 564.756,66.606 564.346,67.663 C563.803,69.06 563.154,70.057 562.106,71.106 C561.058,72.155 560.06,72.803 558.662,73.347 C557.607,73.757 556.021,74.244 553.102,74.378 C549.944,74.521 548.997,74.552 541,74.552 C533.003,74.552 532.056,74.521 528.898,74.378 C525.979,74.244 524.393,73.757 523.338,73.347 C521.94,72.803 520.942,72.155 519.894,71.106 C518.846,70.057 518.197,69.06 517.654,67.663 C517.244,66.606 516.755,65.022 516.623,62.101 C516.479,58.943 516.448,57.996 516.448,50 C516.448,42.003 516.479,41.056 516.623,37.899 C516.755,34.978 517.244,33.391 517.654,32.338 C518.197,30.938 518.846,29.942 519.894,28.894 C520.942,27.846 521.94,27.196 523.338,26.654 C524.393,26.244 525.979,25.756 528.898,25.623 C532.057,25.479 533.004,25.448 541,25.448 C548.997,25.448 549.943,25.479 553.102,25.623 C556.021,25.756 557.607,26.244 558.662,26.654 C560.06,27.196 561.058,27.846 562.106,28.894 C563.154,29.942 563.803,30.938 564.346,32.338 C564.756,33.391 565.244,34.978 565.378,37.899 C565.522,41.056 565.552,42.003 565.552,50 C565.552,57.996 565.522,58.943 565.378,62.101 M570.82,37.631 C570.674,34.438 570.167,32.258 569.425,30.349 C568.659,28.377 567.633,26.702 565.965,25.035 C564.297,23.368 562.623,22.342 560.652,21.575 C558.743,20.834 556.562,20.326 553.369,20.18 C550.169,20.033 549.148,20 541,20 C532.853,20 531.831,20.033 528.631,20.18 C525.438,20.326 523.257,20.834 521.349,21.575 C519.376,22.342 517.703,23.368 516.035,25.035 C514.368,26.702 513.342,28.377 512.574,30.349 C511.834,32.258 511.326,34.438 511.181,37.631 C511.035,40.831 511,41.851 511,50 C511,58.147 511.035,59.17 511.181,62.369 C511.326,65.562 511.834,67.743 512.574,69.651 C513.342,71.625 514.368,73.296 516.035,74.965 C517.703,76.634 519.376,77.658 521.349,78.425 C523.257,79.167 525.438,79.673 528.631,79.82 C531.831,79.965 532.853,80.001 541,80.001 C549.148,80.001 550.169,79.965 553.369,79.82 C556.562,79.673 558.743,79.167 560.652,78.425 C562.623,77.658 564.297,76.634 565.965,74.965 C567.633,73.296 568.659,71.625 569.425,69.651 C570.167,67.743 570.674,65.562 570.82,62.369 C570.966,59.17 571,58.147 571,50 C571,41.851 570.966,40.831 570.82,37.631"></path></g></g></g></svg></div><div style="padding-top: 8px;"> <div style=" color:#3897f0; font-family:Arial,sans-serif; font-size:14px; font-style:normal; font-weight:550; line-height:18px;">Sieh dir diesen Beitrag auf Instagram an</div></div><div style="padding: 12.5% 0;"></div> <div style="display: flex; flex-direction: row; margin-bottom: 14px; align-items: center;"><div> <div style="background-color: #F4F4F4; border-radius: 50%; height: 12.5px; width: 12.5px; transform: translateX(0px) translateY(7px);"></div> <div style="background-color: #F4F4F4; height: 12.5px; transform: rotate(-45deg) translateX(3px) translateY(1px); width: 12.5px; flex-grow: 0; margin-right: 14px; margin-left: 2px;"></div> <div style="background-color: #F4F4F4; border-radius: 50%; height: 12.5px; width: 12.5px; transform: translateX(9px) translateY(-18px);"></div></div><div style="margin-left: 8px;"> <div style=" background-color: #F4F4F4; border-radius: 50%; flex-grow: 0; height: 20px; width: 20px;"></div> <div style=" width: 0; height: 0; border-top: 2px solid transparent; border-left: 6px solid #f4f4f4; border-bottom: 2px solid transparent; transform: translateX(16px) translateY(-4px) rotate(30deg)"></div></div><div style="margin-left: auto;"> <div style=" width: 0px; border-top: 8px solid #F4F4F4; border-right: 8px solid transparent; transform: translateY(16px);"></div> <div style=" background-color: #F4F4F4; flex-grow: 0; height: 12px; width: 16px; transform: translateY(-4px);"></div> <div style=" width: 0; height: 0; border-top: 8px solid #F4F4F4; border-left: 8px solid transparent; transform: translateY(-4px) translateX(8px);"></div></div></div> <div style="display: flex; flex-direction: column; flex-grow: 1; justify-content: center; margin-bottom: 24px;"> <div style=" background-color: #F4F4F4; border-radius: 4px; flex-grow: 0; height: 14px; margin-bottom: 6px; width: 224px;"></div> <div style=" background-color: #F4F4F4; border-radius: 4px; flex-grow: 0; height: 14px; width: 144px;"></div></div></a><p style=" color:#c9c8cd; font-family:Arial,sans-serif; font-size:14px; line-height:17px; margin-bottom:0; margin-top:8px; overflow:hidden; padding:8px 0 7px; text-align:center; text-overflow:ellipsis; white-space:nowrap;"><a href="https://www.instagram.com/p/CqiOB3zo5lS/?utm_source=ig_embed&utm_campaign=loading" style=" color:#c9c8cd; font-family:Arial,sans-serif; font-size:14px; font-style:normal; font-weight:normal; line-height:17px; text-decoration:none;" target="_blank">Ein Beitrag geteilt von Karnevalverein Frohsinn 1890 e. V. (@frohsinn1890)</a></p></div></blockquote> <script async src="//www.instagram.com/embed.js"></script>
|![[Archiv]]||!Informatives |[[Pressearchiv]]|[[Vereinsfahne]]|[[Prinzen|Tollitäten]]|[[Orden]]|[[Vorstand]]|[[Satzung]]|[[Publikationen]]| | [[Der Frohsinn]] | --- --- !Die Geschichte der Oberurseler Karnevals-Prinzen Bis zum Jahre 1996 stellte der Verein Frohsinn den “Prinz der Narren in Oberursel”<br> Der erster Vereinsprinz war 1928 Karl Simon.<br> Bis 1988 wurden alle Prinzenwappen und Orden von Paul Dick entworfen. <br> |!Kampagne|!Name|!Bürgerlicher Name|!Heimatverein|!Page|!Page|!Hofmarschall| | |1928|Karl I. |Karl Simon |KV-Frohsinn||| |1933|Jean I. |Jean Weber |KV-Frohsinn||| |1934|Jean I. |Jean Weber |KV-Frohsinn||| |1935|Rudolf I. |Rudolf Münzberg |KV-Frohsinn||| |1936|Paul I. |Paul Dick |KV-Frohsinn||| |1937|Aureus I. |Aureus Spang |KV-Frohsinn||| |1938|Aureus I. |Aureus Spang |KV-Frohsinn||| |1939|Jean II. |Jean Specht |KV-Frohsinn||| |II. Weltkrieg| |1947|Willi I. |Willi Trapp |KV-Frohsinn||| |1948|Karl II. |Karl Affemann |KV-Frohsinn||| |1949|Rolf I. |Rolf Brinkmann |KV-Frohsinn||| |1950|Jean I. |Jean Weber |KV-Frohsinn||| |1951|Eberhard I.|Eberhard Greiner |KV-Frohsinn||| |1952|Willi II. |Willi Bechthold |KV-Frohsinn||| |1953|Arthur I. |Arthur Lindener |KV-Frohsinn||| |1954|Günther I. |Günther Habighorst |KV-Frohsinn||| |1955|Josef I. |Jupp Weigand |KV-Frohsinn||| |1956|Friedel I. |Friedel Fischer |KV-Frohsinn||| |1957|Franz-Josef I.|Franz-Josef Kleebach |KV-Frohsinn||| |1958|Willi III. |Willi Oppermann |KV-Frohsinn||| |1959|Dieter I. |Dieter Buchholz |KV-Frohsinn||| |1960|Willi IV. |Willi Sauer |KV-Frohsinn||| |1961|Hans I. |Hans Bokor |KV-Frohsinn|Ursula|Andrea|| | |1962|Hans II. |Hans Mereien |KV-Frohsinn||| |1963|Günter II. |Günter ~Müller-Sturm |KV-Frohsinn||| |1964|Erich I. |Erich Diener |KV-Frohsinn||| |1965|Balser I. |Balser Hachemeister |KV-Frohsinn||| |1966|Claus I. |Claus Pott |KV-Frohsinn||| |1967|Claus I. |Claus Pott |KV-Frohsinn||| |1968|Hermann I. |Hermann Gerstner |KV-Frohsinn||| |1969|Eckard I. |Eckard Dittmar |KV-Frohsinn||| |1970|Karl-Heinz I|Karl-Heinz Barth |KV-Frohsinn||| |1971|Werner I. |Werner Schuch |KV-Frohsinn||| |1972|Ingo I. |Ingo Weber |KV-Frohsinn||| |1973|Ernst I. |Ernst Völker |KV-Frohsinn||| |1974|Ekkehard I.|Ekkehard Gries |KV-Frohsinn||| |1975|Rudi III. |Rudi Klüber |KV-Frohsinn|Christine Amsel|Renate Neugebauer| |1976|Karl-Heinz II.|Karl-Heinz Biersack |KV-Frohsinn|Renate Bechtold|| |1977|Georg I. |Georg Oeter |KV-Frohsinn||| |1978|Lorenz I. |Lorenz Caprano |KV-Frohsinn||| |1979|Willi V. |Willi Seng |KV-Frohsinn||| |1980|Wilfried I.|Wilfried Barth |KV-Frohsinn||| |1981|Rolf I. |Rolf Höck |KV-Frohsinn||| |1982|Kurt I. |Kurt Christoph |KV-Frohsinn||| |1983|Franz I. |Franz Zimmermann |KV-Frohsinn||| |1984|Karl-Heinz III.|Karl-Heinz Paul |KV-Frohsinn|Martina Schneider|Sabine Winkler|Willi Seng| |1985|Michael I. |Michael Kehrer |KV-Frohsinn||| |1986|Gero I. |Gero Koelgen |KV-Frohsinn||| |1987|Rudi IV. |Rudi Bernhardt |KV-Frohsinn||| |1988|Georg I. und Rita I.|Georg Oeter u. Rita Fisch|KV-Frohsinn||| |1989|Kein Prinz | |1990|Klaus II. |Klaus Weiße |KV-Frohsinn||| |1991|Dieter II. |Dieter Rosentreter |KV-Frohsinn||| |1992|Dieter II. |Dieter Rosentreter |KV-Frohsinn||| |1993|Joachim I. |Joachim Weiße |KV-Frohsinn||| |1994|Carol I. |Carol Madl |KV-Frohsinn||| |1995|Rolf II. |Rolf Riegel |KV-Frohsinn||| |1996|Werner I. |Werner Schuch |KV-Frohsinn||| |Nach Gründung des Narrenrates| |1996/97|Alexander I. |Alexander Becker |CV-Stierstadt|Stephanie Gerecht|Monika Schmidt|~Karl-Heinz Barth| |1997/98|Harald I. |Harald Pratt|[[BCV]]|Sandra Hieronymi|Angeloka Wagner|~Karl-Heinz Paul| |1998/99|Günter III. |Günter Bill |CV-Stierstadt|Christina Krämer|Nicole Böhm|G.M.Sturm| |1999/2000|Wolfgang I. |Wolfgang Wehrheim|[[BCV]]|Andrea Stöckel|Manuela Auer|Willi Sauer| |2000/01|Norbert I. |Norbert Fechner|KV-Frohsinn|Inga Fechner|Isabelle Helbach|Alexander Becker| |2001/02|Rolf III. |Rolf Bender|CluGeHu|Carina Kohlmann|Tanja Bilitewski|Wolfgang Wehrheim| |2002/03|Hans III. |Hans Walther|CV-Stierstadt|Stefanie Schilb|Stephanie Feest (Eisel)|Alexander Becker| |2003/04|Reimund I. |Reimund Krammich|[[BCV]]|Sabine Wagner|Silke Gebhart|Uwe Eilers| |2004/05|Henning I. |Henning Weinert|CluGeHu|Alexandra Siebenhaar|Corinna Watteroth|Rolf Bender| |2005/06|Gerd I. |Gerd Krämer |KV-Frohsinn|Petra Sommer|Regina Ruppel|Dieter Rosentreter| |2006/07|Uwe I. |Uwe Eilers |CluGeHu|Marion Schorr|Susanne Knebel|Reimund Krammich| |2007/08|Frank I. |Frank Steier |KV-Frohsinn |Monika Barthel|Sabine Wieland|Harald Pratt| |2008/09|Ludwig I. |Ludwig Reuscher|CV-Stierstadt|Fiona Becker|Carina Reuscher|Norbert Fechner| |2009/10|Kein Prinz| |2010/11|Frederick I.|Frederick Wilkinson|KV-Frohsinn|Yvonn Volz|Melanie Bremser|Ludwig Reuscher|http://www.prinzfrederick1.de| |2011/12|Patrick I|Patrick Volz|KV-Frohsinn|Annekatrin Rode|Carolyn Wilkinson|Frederick Wilkinson|http://www.prinzpatrick1.de| |2012/13|Sabine I.|Sabine Wagner|[[BCV]]|Nadine Stephan|Dirk Hummel|Reimund Krammich| |2013/14|Benjamin I.|Benjamin Müller|[[BCV]]|Nadine Hoffmann|Nathalie Kopp|Harald Pratt|http://www.prinzbenjamin1.de| |2014/15|Jürge I.|Jürgen Sommer|KV-Frohsinn|Sonja Coy|Helga Hartwigk|Patrick Volz|http://www.prinzjuergen1.de| |2015/16|Kein Prinz| |2016/17|Rüdiger I.|Rüdiger Koch|[[BCV]] & KV-Frohsinn|Daniela Dobbertin|Sandy Mohr|Benjamin Müller|http://www.prinzruediger1.de| |2017/18|Karsten I.|Karsten Jörg Wolf|CluGeHu|Nina Kohlmann|Francesco Cognetta|Uwe Eilers & Patrick Volz| |2018/19|Marcel I.|Marcel Walther|CV-Stierstadt|Natalie Bender|Pia Oberreich|Ex-Prinz Ludwig I. & Ex-Prinz Jürgen I.|http://prinz-marcel.de https://www.facebook.com/pg/Prinz-Marcel-1-259226668275211| |2019/20|Vanessa I.|Vanessa Küster|BCV|Natalie Tomillo|Angela Deicke|Ex-Prinzessin Sabine I.|https://www.facebook.com/PrinzessinVaneesa1| |2020/21|Kein Prinz|wegen Corona| | |2021/22|Kein Prinz|wegen Corona| | |2022/23|Fiona I. |Fiona Becker |The Ravens |Katrin Müller |Laura- Sophie Volkmann |Ex-Prinz Ludwig I. |https://www.facebook.com/profile.php?id=100086189433668 | <br> !Multimedia |!Homepage|https://www.karnevalverein-frohsinn.de/html/kvf-info-prinzen.html| |!Classic-Version|https://www.karnevalverein-frohsinn.de/html/vf-verein-chronik-prinzen.html| |!Narrenrat|https://www.narrenrat-oberursel.de/html/nrprinzen.html| !www.frohsinn-oberursel.de (lokal) file:///C:\Data\GUTH--ONLINE\www-FROHSINN-OBERURSEL-DE\html\vf-verein-chronik-prinzen.html !Narrenrats-Prinzen von www.narrenrat-oberursel.de (lokal) file:///C:\Data\GUTH--ONLINE\www-NARRENRAT-DE\html\nrprinzen.html !~NarrenRatWikki file:///C:/Data/GUTH--ONLINE/www-NARRENRAT-DE/wiki/narrenrat-wiki.html --- --- [[Nach oben...|Tollitäten]]
|![[Archiv]]||!Informatives |[[Pressearchiv]]|[[Vereinsfahne]]|[[Prinzen|Tollitäten]]|[[Orden]]|[[Vorstand]]|[[Satzung]]|[[Publikationen]]| | [[Der Frohsinn]] | --- --- | [img[https://www.karnevalverein-frohsinn.de/assets/images/chronik_fahne-2.jpg]] | [img[https://www.karnevalverein-frohsinn.de/assets/images/chronik_fahne-1.jpg]] | |Die Fahne zeigt auf dieser Seite deutlich, dass der Verein seinen Ursprung aus dem musikalischen Treiben ableitet. Der Gruss “Mit Heil” Lyra und Noten- band, sowie Taktstock vervollkommenen dieses Bild. Im Zentrum sind die Daten 1917 und 1921 sowie der Name Frohsinn nachträglich eingefügt.|Die Gegenseite gibt uns einen Hinweis auf humoristisches Treiben, die Masken am oberen Rand, Gefallen am Rollen- und Maskenspiel. Im Zentrum ein jugendlicher Narr reitend auf einer Eule und das närrische Zepter schwingend. Auch hier fehlt nicht der Hinweis auf die Musik, denn mit dem Spruch “Musik ist die Sprache des Herzens” wird dies deutlich dokumentiert.| !Die Geschichte der Vereinsfahne Unmittelbar nch der Gründung des damaliegen Musik Verein Humor, am 10. August 1890, wurde über die Anschaffung eines Vereinsbanners im Vor- stand beraten. Ab März 1891, werden mit verschiedenen Fahnenherstellern Gespräche geführt, die zu keinem Ergebnis führten. Das ganze wurde ad Acta gelegt und ruhte fast 10 Jahre, zwar gelegentlich andiskutiert aber nicht zu Ende gebracht. In einer Versammlung am 19. März 1900 im Gasthaus ‘Zur Krone’, wird die Gründung eines Garantie- und Fahnenfond beschlossen, dieser Fond sollte sicherstellen, dass die Fahne auch bezahlt werden kann. Nachdem so einer Anschaffung nichts mehr im Wege stand, wurde mit der “Thüringer Fahnenfabrik Heinrich Arnold in Coburg” ein Vertrag zur Lief- erung eines Banners abgeschlossen. Preis 500,- Mark. Die Fahne soll laut Vertrag in einzelnen Teilen geliefert werden und wird in Oberursel montiert. Über Komposition und farbliche Zusammenstellung ist in alten Berichten kein Hinweis zu finden. Etwas mehr als 10 Jahre nach der Gründung des Vereins am 8. und 9. Juli 1900 findet das Fest der Fahnenweihe statt. 40 Vereine wirkten damals bei diesem Ereignis mit und gaben dem Fest so einen würdigen der Zeit entsprechenden Rahmen. | [img[https://www.karnevalverein-frohsinn.de/assets/images/Festschrift-100-Jahre-VF_s030_fahnenweihe_45002.jpg]] | | Die Fahnenabordnungen anläßlich der Fahnenweihe des Verein Humor<br>Aufgenommen am Sonntag, 8. Juli 1900 im Garten des Gasthauses “Zum Taunus” | Im jahr 1921, dem Jahr der Verschmelzung der Vereine Humor und Frohsinn, wird das Gründungsdatum der ~Stammtisch-Gesellschaft Frohsinn 1917 sowie das Jahr der Verschmelzung eingefügt. Die Stickereien wurden von Fräulein Ursula Leser, der späteren Frau Äppelwein Müller, (so steht es geschrieben) in mühevoller Handarbeit eingefügt. In den Kriegsjahren 1939-1945 wird die Vereinsfahne von Mitgliedern versteckt, auch die Sammlerleidenschaft der Sieger und den schwarzen Markt hat sie überlebt. | [img[https://www.karnevalverein-frohsinn.de/assets/images/chronik_fahne-1964-stadtfest-246.jpg]] | | Die Frohsinn-Fahne beim Festzug zum Stadtjubiläum 1964 in der Eppsteiner Straße,<br>begleitet von Oberurseler Karnevalisten:<br>(von links) Heinz Ohl, Balser Hachemeister, Fritz Weber, und Lorenz Caprano | Zum 100jährigen Jubiläum 1990 wurde die Fahne restauriert. Laut Auskunft einer Frankfurter Fahnenfabrik würde der heutige Preis unserer Fahne in Sammlerkreisen ca. 5.000€ und 8.000€ betragen. Bis zum heutigen Tage repräsentiert die Fahne bei freudigen und traurigen Ereignissen den “Verein Frohsinn 1890” und eine vielfältige Schicht von Menschen die in diesem Verein Ihre Freude und Freizeitbeschäftigung zum Wohle Ihrer Heimatstadt Oberursel gefunden haben und noch immer finden. --- --- [[Nach oben...|Vereinsfahne]]
|![[Archiv]]||!Informatives |[[Pressearchiv]]|[[Vereinsfahne]]|[[Prinzen|Tollitäten]]|[[Orden]]|[[Vorstand]]|[[Satzung]]|[[Publikationen]]| | [[Der Frohsinn]] | --- --- |[[Senatoren]]|[[Ausschüsse]]|[[Downloads]]|[[Sponsoren]]|[[Partner]]|[[Kontakt]]| [img[Bildbenennung|https://www.karnevalverein-frohsinn.de/assets/galerie-flip/1990-festschrift100/pages/190.jpg]] !Vorsitzende des Karneval-Verein Frohsinn seit 1917 ||Georg Süss | ||Adolf Schauß | ||Jean Weber | ||Heinrich Weber | ||Wilhelm Oeffinger | ||Eberhard Greiner ??? | ||Balser Hachemeister | ||Fritz Weber | ||Lorenz Caprano | |1969 bis 1983|Friedel Fischer | |1984 bis 1987|Herrmann Reul | |1987 bis 1987|Eckart Dittmar | |bis 2011|Karl-Heinz-Barth | |ab 2011|Stephan Remes | |ab 2021|Ulfert Hahn | <br> |!Vorstand 1956/57 | | | 1.Vorsitzender: | Balthasar Hachemeister| | <br> |!Vorstand 1981/82 | | | 1.Vorsitzender: | Friedel Fischer | | 2.Vorsitzender: | Hans Krönung | | 1.Kassierer: | | | 2.Kassierer: | | | Schriftführer: | | | Pressesprecher: | | | Zeugwart: | | <br> |!Vorstand 1982/83 | | | 1.Vorsitzender: | Friedel Fischer | | 2.Vorsitzender: | Hans Krönung | | 1.Kassierer: | | | 2.Kassierer: | | | Schriftführer: | | | Pressesprecher: | | | Zeugwart: | | <br> |!Vorstand 1983/84 | | | 1.Vorsitzender: | Friedel Fischer | | 2.Vorsitzender: | Hans Krönung | | 1.Kassierer: | Heinz Baldes | | 2.Kassierer: | | | Schriftführer: | | | Pressesprecher: | | | Zeugwart: | | <br> |!Vorstand 1984/85 | | | 1.Vorsitzender: | Herrmann Reul | | 2.Vorsitzender: | Eckart Dittmar | | 1.Kassierer: | Heinz Baldes | | 2.Kassierer: | Helmut Weisbrod | | Schriftführer: | Wolfgang Weber | | Schriftführer: | Klaus Peter Hieronymi | | Zeugwart: | Norbert Nickel | | Zeugwart: | Kurt Ickert | | Pressesprecher: | | <br> |!Vorstand 1985/86 | | | 1.Vorsitzender: | Herrmann Reul | | 2.Vorsitzender: | Eckart Dittmar | | 1.Kassierer: | Erika Sommer | | 2.Kassierer: | | | Schriftführer: | | | Pressesprecher: | | | Zeugwart: | | <br> |!Vorstand 1986/87 | | | 1.Vorsitzender: | Herrmann Reul | | 2.Vorsitzender: | Eckart Dittmar | | 1.Kassierer: | | | 2.Kassierer: | | | Schriftführer: | | | Pressesprecher: | | | Zeugwart: | | <br> |!Vorstand 1987/88 | | | 1.Vorsitzender: | Herrmann Reul | | 2.Vorsitzender: | Eckart Dittmar | | 1.Kassierer: | | | 2.Kassierer: | | | Schriftführer: | | | Pressesprecher: | | | Zeugwart: | | <br> |!Vorstand 1988/89 | | | 1.Vorsitzender: | Eckart Dittmar | | 2.Vorsitzender: | Wilfried Abt | | 1.Kassierer: | | | 2.Kassierer: | | | Schriftführer: | | | Pressesprecher: | | | Zeugwart: | | <br> |!Vorstand 1989/90 | | | 1.Vorsitzender: | Eckart Dittmar | | 2.Vorsitzender: | Wilfried Abt | | 1.Kassierer: | Erika Sommer | | 2.Kassierer: | Helmut Weisbrod | | Schriftführer: | Wolfgang Weber | | Pressesprecher: | Klaus-Perter Hieronymo | | Zeugwart: | Kurt Icker | <br> --- --- <br> !Vorstand 2000/01 [img[Bildbenennung|../assets/images/vorstand-2000.jpg]] | 1.Vorsitzender: | Karl-Heinz-Barth | | 2.Vorsitzender: | Klaus Roth | | 1.Kassierer: | Rainer Voß | | 2.Kassierer: | Elke Dietz | | Schriftführer: | Daniela Neuhäuser | | Pressesprecher: | Stephan Remes | | Zeugwart: | Rolf Affemann | <br> |!Vorstand 2001/02 | | | 1.Vorsitzender: | Karl-Heinz-Barth | | 2.Vorsitzender: | Klaus Roth | | 1.Kassierer: | | | 2.Kassierer: | | | Schriftführer: | Daniela Neuhäuser | | Pressesprecher: | Stephan Remes | | Zeugwart: | | <br> !Vorstand 2002/03 [img[Bildbenennung|../assets/images/vorstand-2002.jpg]] | 1.Vorsitzender: | Karl-Heinz-Barth | | 2.Vorsitzender: | Klaus Roth | | 1.Kassierer: | | | 2.Kassierer: | | | Schriftführer: | Daniela Neuhäuser | | Pressesprecher: | Stephan Remes | | Zeugwart: | | <br> |!Vorstand 2003/04 | | | 1.Vorsitzender: | Karl-Heinz-Barth | | 2.Vorsitzender: | Klaus Roth | | 1.Kassierer: | | | 2.Kassierer: | | | Schriftführer: | Daniela Neuhäuser | | Pressesprecher: | Stephan Remes | | Zeugwart: | | <br> |!Vorstand 2004/05 | | | 1.Vorsitzender: | Karl-Heinz-Barth | | 2.Vorsitzender: | Klaus Roth | | 1.Kassierer: |Elke Dietz | | 2.Kassierer: | Jutta Eckhard | | Schriftführer: | Daniela Neuhäuser | | Pressesprecher: | Stephan Remes | | Zeugwart: | Frank Steier | <br> --- --- <br> !Vorstand der Kampagne 2006/2007: [img[Bildbenennung|../assets/images/vorstand-2006.jpg]] |1.Vorsitzender:|[[Karl-Heinz-Barth]]| |2.Vorsitzender:|Stephan Remes| |Schriftführerin:|Daniela Neuhäuser| |1.Kassiererin:|Elke Dietz| |2.Kassiererin:|Jutta Eckard| |Zeugwart:|Frank Steier| |Pressesprecher:|Gerd Krämer| !Vorstand der Kampagne 2007/2008: !Vorstand der Kampagne 2008/2009: [img[Bildbenennung|../assets/images/vorstand-2008.jpg]] |1.Vorsitzender:|[[Karl-Heinz-Barth]]| |2.Vorsitzender:|Stephan Remes| |Schriftführerin:|Daniela Neuhäuser| |1.Kassiererin:|Elke Dietz| |2.Kassiererin:|Jutta Eckard| |Zeugwart:|Max Kuntsche| |Zeugwart:|Detlef Unruh| |Pressesprecher:|Gerd Krämer| !Vorstand der Kampagne 2009/2010: |1.Vorsitzender:|[[Karl-Heinz-Barth]]| |2.Vorsitzender:|Stephan Remes| |Schriftführerin:|Daniela Neuhäuser| |1.Kassiererin:|Elke Dietz| |2.Kassiererin:|Jutta Eckard| |Zeugwart:|Max Kuntsche| |Zeugwart:|Detlef Unruh| |Pressesprecher:|Gerd Krämer| !Vorstand der Kampagne 2010/2011: [img[Bildbenennung|../assets/images/vorstand-2010_570.jpg]] |1.Vorsitzender:|[[Karl-Heinz-Barth]]| |2.Vorsitzender:|Stephan Remes| |Schriftführerin:|Daniela Neuhäuser| |1.Kassiererin:|Elke Dietz| |2.Kassiererin:|Jutta Eckard| |Zeugwart:|Max Kuntsche| |Zeugwart:|Detlef Unruh| |Pressesprecher:|Gerd Krämer| !Vorstand der Kampagne 2011/2012 & 2012/2013: (gewählt für 2 Jahre) |1.Vorsitzender:|Stephan Remes| |2.Vorsitzender:|Freddy Wilkinson| |Schriftführerin:|Daniela Neuhäuser| |1.Kassierer:|Michi Kukuruzovicz| |2.Kassiererin:|Jutta Eckard| |Zeugwart:|Detlev Unruh| |Pressesprecher:|Gerd Krämer| !Vorstand der Kampagne 2013/2014: |1.Vorsitzender:|Stephan Remes| |2.Vorsitzender:|Freddy Wilkinson| |Schriftführerin:|Daniela Neuhäuser| |1.Kassierer:|Michi Kukuruzovicz| |2.Kassiererin:|Jutta Eckard| |Zeugwart:|Detlev Unruh| |Pressesprecher:|Gerd Krämer| !Vorstand der Kampagne 2014/2015 & 2015/2016: (gewählt für 2 Jahre) [img[Bildbenennung|../assets/images/vorstand-2014.jpg]] |1.Vorsitzender|Stephan Remes| |2.Vorsitzender:|Gerd Krämer| |Schriftführerin:|Daniela Neuhäuser| |1.Kassierer: |Michi Kukuruzovicz| |2.Kassierer: |Jutta Eckard| |Zeugwart:|Detlev Unruh| |Zeugwart:|Axel Friedrich|ab 2015| |Pressesprecher:|Gerd Krämer| !Vorstand der Kampagne 2016/2017 & 2017/2018: (gewählt für 2 Jahre) |1.Vorsitzender|Stephan Remes| |2.Vorsitzender:|Gerd Krämer| |Schriftführerin:|Daniela Neuhäuser| |1.Kassierer: |Michi Kukuruzovicz| |2.Kassierer: |Jutta Eckard| |Zeugwart:|Detlev Unruh| |Zeugwart:|Axel Friedrich| |Pressesprecher:|Gerd Krämer| !Vorstand der Kampagne 2018/2019 [img[Bildbenennung|../assets/images/vorstand-2017_570.jpg]] |1.Vorsitzender|Stephan Remes| |2.Vorsitzender:|Gerd Krämer| |Schriftführerin:|Daniela Neuhäuser| |1.Kassierer: |Michi Kukuruzovicz| |2.Kassierer: |Jutta Eckard| |Zeugwart:|Detlev Unruh| |Zeugwart:|Axel Friedrich| |Pressesprecher:|Gerd Krämer| !Vorstand der Kampagne 2019/2020 [img[Bildbenennung|../assets/images/vorstand-2019_570.jpg]] |1.Vorsitzender|Stephan Remes| |2.Vorsitzender:|Jens Landefeld| |Schriftführerin:|Daniela Neuhäuser| |1.Kassierer: |Michi Kukuruzovicz| |2.Kassierer: |Jutta Eckard| |Zeugwart:|Detlev Unruh| |Pressesprecher:|David Görge| !Vorstand der Kampagne 2021/2022 [img[Bildbenennung|../assets/images/vorstand-2021_570.jpg]] |1.Vorsitzender|Ulfert Hahn| |2.Vorsitzender:|Jens Landefeld| |Schriftführerin:|Daniela Neuhäuser| |1.Kassierer: |Michi Kukuruzovicz| |2.Kassierer: |Jutta Eckard| |Zeugwart:|Saskia Werner| |Pressesprecher:|David Görge| !Vorstand der Kampagne 2022/2023 [img[Bildbenennung|../assets/images/vorstand-2021_570.jpg]] |1.Vorsitzender|Ulfert Hahn| |2.Vorsitzender:|Jens Landefeld| |Schriftführerin:|Daniela Neuhäuser| |1.Kassierer: |Michi Kukuruzovicz| |2.Kassierer: |Jutta Eckard| |Zeugwart:|Saskia Werner| |Pressesprecher:|David Görge| !Vorstand der Kampagne 2023/2024 [img[https://www.karnevalverein-frohsinn.de/assets/images/vorstand-2023_500.jpg]]<br> |1.Vorsitzender|Ulfert Hahn| |2.Vorsitzender:|Jens Landefeld| |Schriftführerin:|Daniela Neuhäuser| |1.Kassierer: |Michi Kukuruzovicz| |2.Kassierer: |Jutta Eckard| |Pressesprecher:|David Görge| |Zeugwart:| | --- [[Nach oben...|Vorstand]]
!07.04.21 Vorstand-IT Sitzung Stephan, David, Rainer --- Stephan teilte mit: Wichtigkeit der HP, Facebook, ect. und daraus folgend ein moderneres Autfit & Funktionen ==> Bildung einer Redaktion, monatliches Treffen, Erarbeitung von Beiträgen ect. ==> Engagement von Florian Steden ==> Anpassung (Aufbau und Layout) der HP ==> Erstellen einer Art "[[Landig Page]]" Stephan hat ein Angebot von Marcel Fetzberger, die HP neu zu erstellen. Referenzen: Stadt Oberursel, Kelterei Steden ect Angebot: statt € 5000,- die eine Firma bezahlen müßte, für € 1500,- ''Stephan hat dem Angebot bereits zugesagt'' ''Frage an Rainer:'' Würdest Du bereit sein, dabei mit zu arbeiten und die "alten" Seiten der HP in das neue System zu übertragen. Rainer erteilte die Zusage, da er die Möglichkeiten nicht hat, die technischen Funktionen, wie sie die HP der Stadt Obeursel hat, umzusetzen !Analyse dieser Fakten Die Idee eine Redaktion zu gründen und diese mit Leben zu füllen ist hervoragend. Ein Engagement von Florian Steden u.a.ist zu bergüßen. Damit kommt "Neuer Wind" in die Darstellung des Vereins i.d.Öffentlichkeit. Marketing des Vereins Die HP zu modernisieren (schlanker, anderes Layout, zusätzliche Funktionen ect.) und zusätzlicher Auftritt bei Instagram macht auf jeden Fall Sinn. !Kritik aus Sicht des Vereinsmitgliedes Es wurde versäumt zu ermitten, ob es mit den gegebenen Ressourcen möglich ist, diese Anforderungen (Anpassung: Aufbau und Layout der HP) umzusetzen. ''Dies ist nicht geschehen. Es wurde eine Zusage an Marcel Fetzberger erteilt'' Wie sieht die Vereinbarung mit Marcel im Detail aus: Umfang der Arbeit und Laufzeit Folgekosten (Provider, Webspace), Domain eMail-Adressen-Management SCHNELLSCHUSS ohne vorherige Beratung ![[Marcel Fetzberger]] Marcel erstellt nicht die Seite der Stadt Oberursel Projekte sind: "Oberursel im Dialog" im Auftrag der Stadt Oberursel, Kelterei Steden ect. ~Web-Generator: WIX / ein ~CMS-System (~ContentManagmentSystem), das Module zum Ausfüllen liefert und das ganze Projekt in einer Cloud speichert. !Statement Die Technik des WIX Systems ist mit dem von mir inzwischen ''auch'' verwendeten System vergleichbar. Damit sollten sich die geforderten Änderungen (Schlankerer Aufbau & Layout) und mit dem Engagement von Florian oder Anderen umsetzen lassen. ''Aufgrund dieser Gegebenheiten ziehe ich meine Zusage zur Mitarbeit und Übertragung der bisherigen ~HP-Seiten in das neue System zurück.'' Wäre konstruktive Kritik gekommen und wäre eine gemeinsame "Weiterentwicklung" der HP mit Unterstützung von Florian u.A.entstanden, wäre das in meinem Sinne gewesen. So hätte ich dann gerne das Zepter weitergeben. Der Aufwand die gegebenden Seiten in das WIX System zu übertragen ist groß. Dies steht in keinem Verhältnis zum gewünschten Ergebnis Hierzu bin ich nicht bereit. Bleibt es bei der Entscheidung, die HP zukünftig von Marcel gestalten zu lassen, bin ich beim Thema HP und Facebook komplett raus. Rainer Affront Hierzu bin ich bereit: - die gegegebne HP an ein neues Layout, soweit möglich, anzupassen, - wenn gewünscht, diese als "CHRONIK" weiter zu führen. Soweit die bisherigen Provider- und Webspace -Kosten vom Verein getragen werden
|[[Archiv]]|[[Chronik]]| !''ARCHIV - CHRONIK - ZEITLEISTE'' |!HP2022|https://www.karnevalverein-frohsinn.de/html/kvf-chronik-zeitleiste.html| |!Classic-Version|https://www.karnevalverein-frohsinn.de/html/vf-verein-chronik.html| |!Mobirise-Version|https://www.karnevalverein-frohsinn.de/mob/chronik.html| __Anmerkung:__<br> Beginn der Kampagne : JHV (Vorstand der kommenden Kampagne) und dem 11.11. <br> Ende der Kampagne: bis zur JHV, auch Veranstaltungen nach dieser |[[Chronologie ab 1890]]|(1890 bis 1945)| |[[Chronologie ab 1946]]|(1946 bis 1999)| |[[Chronologie ab 2000]]|(2000 bis 2007)| |[[Chronologie ab 2008]]|(2008 bis 2013)| | [[Kampagne 1970/71]] | [[Kampagne 1980/81]] | [[Kampagne 1990/91]] | [[Kampagne 2000/01]] | [[Kampagne 2010/11]] | [[Kampagne 2020/21]] | | [[Kampagne 1971/72]] | [[Kampagne 1981/82]] | [[Kampagne 1991/92]] | [[Kampagne 2001/02]] | [[Kampagne 2011/12]] | [[Kampagne 2021/22]] | | [[Kampagne 1972/73]] | [[Kampagne 1982/83]] | [[Kampagne 1992/93]] | [[Kampagne 2002/03]] | [[Kampagne 2012/13]] | [[Kampagne 2022/23]] | | [[Kampagne 1973/74]] | [[Kampagne 1983/84]] | [[Kampagne 1993/94]] | [[Kampagne 2003/04]] | [[Kampagne 2013/14]] |[[Kampagne 2023/24]] | | | [[Kampagne 1974/75]] | [[Kampagne 1984/85]] | [[Kampagne 1994/95]] | [[Kampagne 2004/05]] | [[Kampagne 2014/15]] | | | [[Kampagne 1975/76]] | [[Kampagne 1985/86]] | [[Kampagne 1995/96]] | [[Kampagne 2005/06]] | [[Kampagne 2015/16]] | | | [[Kampagne 1976/77]] | [[Kampagne 1986/87]] | [[Kampagne 1996/97]] | [[Kampagne 2006/07]] | [[Kampagne 2016/17]] | | | [[Kampagne 1977/78]] | [[Kampagne 1987/88]] | [[Kampagne 1997/98]] | [[Kampagne 2007/08]] | [[Kampagne 2017/18]] | | | [[Kampagne 1978/79]] | [[Kampagne 1988/89]] | [[Kampagne 1998/99]] | [[Kampagne 2008/09]] | [[Kampagne 2018/19]] | | | [[Kampagne 1979/80]] | [[Kampagne 1989/90]] | [[Kampagne 1999/00]] | [[Kampagne 2009/10]] | [[Kampagne 2019/20]] | | |[[Chronologie-Pool]]|(1980 bis 2010)| --- ''__Online-Version (Homepage) :__'' https://www.karnevalverein-frohsinn.de/html/kvf-chronik-zeitleiste.html <p><iframe src="https://www.karnevalverein-frohsinn.de/html/kvf-chronik-zeitleiste.html" frameborder="0" width="1040" height="1350"></iframe></p> --- --- --- [[Nach oben...|Zeitleiste]]