Jeremy Ruston
f2ac04943f
Fixed tag autocomplete popup on focus
2013-10-23 17:41:12 +01:00
Jeremy Ruston
d5f09a4608
Prevented generation of illegal elements
...
Previously, text like <-> would try to generate an element with an
illegal name, causing a JS error
2013-10-23 12:36:34 +01:00
Jeremy Ruston
6f2dbd0978
Refactor name of "findNextSiblingDomNode()" method for consistency
2013-10-22 18:14:16 +01:00
Jeremy Ruston
7393a296dd
Add a fieldmangler widget
2013-10-21 22:54:58 +01:00
Jeremy Ruston
06af26b1c8
Give the edit-text widget support for the placeholder attribute
2013-10-21 22:54:48 +01:00
Jeremy Ruston
e2b8249a1b
Fix problem with findNextSibling()
2013-10-21 22:27:12 +01:00
Jeremy Ruston
409152afb8
Make the default list widget template include a div or span
...
Otherwise writing this makes a list on one line:
```
{{{ [tag[done]] }}}
```
2013-10-21 22:26:36 +01:00
Jeremy Ruston
c96cb6e956
Parse typed blocks with the new parser
2013-10-21 20:20:44 +01:00
Jeremy Ruston
a99f912bad
Fix typo
2013-10-21 20:20:32 +01:00
Jeremy Ruston
2a571b4f5f
Switch the notifier and modal mechanisms to use the new widget mechanism
...
Note the use of the `$tw.rootWidget` to collect together the root event
handlers
2013-10-21 20:14:01 +01:00
Jeremy Ruston
48dbacc88a
Add support for widget event listeners to be specified as functions
2013-10-21 20:13:08 +01:00
Jeremy Ruston
ce1fb300f8
Use the new widget mechanism for stylesheet parsing and rendering
2013-10-21 18:38:20 +01:00
Jeremy Ruston
89310e71c8
Add a new version of rendertiddlers command
...
So that we can test static html generation
2013-10-21 18:33:00 +01:00
Jeremy Ruston
26ac940637
Fix typo
2013-10-21 18:32:29 +01:00
Jeremy Ruston
e33f588b73
Let the new rendering methods accept a parent widget
2013-10-21 18:32:19 +01:00
Jeremy Ruston
dc9c2522b9
Fix typo in macro variable substitution
2013-10-21 18:31:41 +01:00
Jeremy Ruston
167116d416
Fix output type for view format htmlwikified
2013-10-21 18:31:27 +01:00
Jeremy Ruston
3005604b83
Give link widget support for configuration variables
...
One can now use `\define tw-wikilinks() no` to disable wikilinks, and
`tw-wikilink-template` to configure the link template.
2013-10-21 18:31:04 +01:00
Jeremy Ruston
2b5fb9801f
Add skype: protocol for external links
...
The matching of external links is hacky at the moment. The plan is to
make it more easily extensible (ie without writing code)
2013-10-20 10:47:02 +01:00
Jeremy Ruston
25612958d7
Fixed bugs in previous commit to extend search to titles and tags of binary tiddlers
2013-10-18 16:09:10 +01:00
Jeremy Ruston
3f151ba70e
Add support for macro modules
...
Now JavaScript macros can be defined in "macro" modules
2013-10-17 16:57:07 +01:00
Jeremy Ruston
55d479c540
Extend macrocall widget to take parameters both from the parse tree node and the attributes
...
This allows us to invoke macros using the ordinary widget syntax, which
in turn allows us to use features like indirection on the parameters.
2013-10-17 16:55:23 +01:00
Jeremy Ruston
6b9b75142b
Fix text reference regexp to allow for tiddler titles with embedded spaces
2013-10-17 16:40:13 +01:00
Jeremy Ruston
e11c620c27
Fix search filter so that titles and tags of binary tiddlers are searched
2013-10-17 16:34:50 +01:00
Jeremy Ruston
a3eaffa666
Add a linkcatcher widget
2013-10-16 16:30:06 +01:00
Jeremy Ruston
adb395d10f
Fix edit-text widget to work with indexed values
2013-10-16 16:29:51 +01:00
Jeremy Ruston
7f6d770ca6
The reveal widget should generate a span when in inline mode
...
The only reason that the reveal widget generates an element is so that
we can use `display:none/block;` (as did the pre-refactored code) as a
quick way of hiding and showing the content. We don't do that yet, and
it may be best never to do it.
2013-10-16 16:29:35 +01:00
Jeremy Ruston
77248d08a8
Add the count widget
2013-10-15 21:07:13 +01:00
Jeremy Ruston
5b4ca67d6e
Make the reveal widget hide the div element if it is not open
2013-10-15 21:06:52 +01:00
Jeremy Ruston
78bc89cbdb
Add a edit text widget
...
Now rather than a separate module type for different editors, we
instead have a meta-widget "edit" that chooses the appropriate concrete
widget (currently just "edit-text", but soon to be joined by
"edit-bitmap" as well)
2013-10-15 14:32:27 +01:00
Jeremy Ruston
a696c716e3
Support the remaining events on the navigator widget
2013-10-15 14:30:36 +01:00
Jeremy Ruston
933afee996
Get rid of the old setstyle widget
...
And fix up the colouring of tiddler icons
2013-10-15 08:36:19 +01:00
Jeremy Ruston
20cd398e88
Fix popup positioning in the reveal widget
2013-10-14 23:32:01 +01:00
Jeremy Ruston
707024a118
Set the colour of the tag pills
...
We no longer need the old setstyle widget
2013-10-14 21:38:12 +01:00
Jeremy Ruston
e3dcb8cdc1
Fix view widget to display friendly text of tiddler values
2013-10-14 21:02:03 +01:00
Jeremy Ruston
468fe8b6f1
Add macrocall widget
...
Now the fields table works in the tiddler info popup
2013-10-14 17:48:26 +01:00
Jeremy Ruston
ebd28c8dc7
Get the tiddler info panel fields list working properly
...
Now we can display the fields list as a proper table.
We've had to temporarily hack the list widget again…
2013-10-14 17:35:52 +01:00
Jeremy Ruston
94c2eacdc9
Support selectedClass properly in the button widget
2013-10-14 16:56:13 +01:00
Jeremy Ruston
0c73c56b70
Fixes to button refreshing
2013-10-14 13:52:03 +01:00
Jeremy Ruston
1669c6eab5
Make recursion markers include the current tiddler
...
Otherwise the generated qualifying state title is not unique. In other
words, clicking the "i" button on a tiddler was opening the info panels
for all open tiddlers.
2013-10-14 13:06:07 +01:00
Jeremy Ruston
ea0b298b78
Deal with viewing date fields that don't exist
2013-10-14 12:59:39 +01:00
Jeremy Ruston
cc4940f41f
Use the setvariable widget instead of macrodef
...
setvariable is more general
2013-10-13 23:40:11 +01:00
Jeremy Ruston
942e463b20
Fixes to get recent changes list to work
2013-10-13 22:59:14 +01:00
Jeremy Ruston
ce4a6ffa49
More useful class variables for tiddler status
2013-10-13 22:46:45 +01:00
Jeremy Ruston
9278c43a91
Add support for macro definitions
2013-10-13 22:39:05 +01:00
Jeremy Ruston
79dcc9a557
Refactor macro parameter substitution
...
Now macros can also include references to variables as `$(variable)$`
2013-10-13 22:38:46 +01:00
Jeremy Ruston
987890c085
Add button widget
2013-10-13 21:31:00 +01:00
Jeremy Ruston
b0503cf709
Fixes to make SVG and MathML elements work properly
2013-10-13 20:14:31 +01:00
Jeremy Ruston
ed35d91be6
Initial Commit
...
Carried over from the abortive pull request #169
2013-10-12 17:05:13 +01:00
Jeremy Ruston
d3d72eff1b
Search over tags as well as the title and text fields
2013-10-11 08:46:09 +01:00
Jeremy Ruston
f2b598ef13
Correct example
2013-10-05 16:01:07 +01:00
natecain
c45f4d1c62
Small revision to previous commit, avoids double encoding.
...
We don't need to encodeURIComponent at all when using blob links.
The data never goes into the dom directly, just a guid reference.
This makes saving with blobs very fast!
2013-10-01 17:35:58 -04:00
natecain
aef8e63cf8
Use Blob api to generate data links in download saver
...
This should fix crashing on large wikis under chrome
see chrome bug: https://code.google.com/p/chromium/issues/detail?id=103234
This should also speed up generating the download html by a couple of seconds
it avoids repeatedly marshalling the base64 encoded href string across the sandbox boundary
it avoids some time and memory consumed by "large" dom manipulation
major remaining delay is in encodeURIComponent
TODO: consider using iconv on the server
TODO: consider async invocation of regular expressions to avoid client "lockup"
Conflicts:
core/modules/savers/download.js
2013-10-01 17:35:47 -04:00
David Johnston
d321508437
Remove incorrect slice parameter.
...
Remove incorrect slice parameter, which made the ! (not) prefix fail to return any results.
2013-10-01 10:50:13 +01:00
David Johnston
f0b6790ae1
Previous in list filter.
2013-09-22 09:58:18 +01:00
David Johnston
b72afda7a2
Next in List filter
2013-09-22 09:57:23 +01:00
Jeremy Ruston
f51d0c55fe
Fix eachday and sameday filter operators
...
There was some inconsistency of UTC vs. timezone handling
2013-09-21 10:08:16 +01:00
Jeremy Ruston
d0db2221d3
Fix problem with lowercase drive letters when saving with TiddlyFox under Windows
2013-09-19 13:50:28 +01:00
Jeremy Ruston
dec7870eeb
Update HTML5 saver to use current filename where possible
...
Most browsers still ignore the specified filename, sadly.
2013-09-19 10:50:14 +01:00
Jeremy Ruston
3d5d5952b7
Fix broken regexps
...
Using .|\n was a very bad idea, as it doesn't match other newline
characters
2013-09-18 19:09:54 +01:00
Jeremy Ruston
b563d8e98a
Ensure getTiddlerList() returns a copy of the tiddler list
...
Fixes #155
2013-09-18 12:12:29 +01:00
Jeremy Ruston
10a635927d
Add confirmation when overwriting an existing tiddler
...
Now there's a JavaScript confirm when attempting to save a tiddler that
has been renamed to the name of an existing tiddler
2013-09-14 21:57:23 +01:00
Jeremy Ruston
4fb6836481
Add an untagged filter operator and sidebar tab
2013-09-14 16:28:46 +01:00
Jeremy Ruston
4a663d1661
Improve docs for $tw.utils.addEventListeners()
2013-09-14 13:47:51 +01:00
Jeremy Ruston
e39663ede3
Fix crash on processing anonymous macro parameters
...
Fixes #151
2013-09-10 22:08:09 +01:00
Jeremy Ruston
e034f28091
Bail out earlier when displaying a modal for a non-existent tiddler
2013-09-10 15:28:15 +01:00
Jeremy Ruston
2be9e82f84
Get rid of the modal popup for empty wikis
...
Ugly and clumsy.
2013-09-01 22:33:23 +01:00
Jeremy Ruston
83f85cad7d
Add support for MathML namespace
...
It doesn't actually work, though, which is weird, since SVG works just
fine using the same mechanism
2013-08-31 11:15:50 +01:00
Jeremy Ruston
ee33cbbc2e
Fix up some problems when the animation duration is zero
...
We want to be able to suppress animations by making the duration zero
2013-08-29 12:43:24 +01:00
Jeremy Ruston
1b094b1d5c
Avoid attempts to save a tiddler with an empty title
...
Clicking "save" with a blank title will now be ignored
2013-08-28 19:46:21 +01:00
Jeremy Ruston
fbfe5a26c5
Move the animation duration into a tiddler so that we can easily let it be adjusted in the control panel
2013-08-28 15:15:56 +01:00
Jeremy Ruston
e8425131f4
Correct typo in 954a987d31
2013-08-28 14:44:59 +01:00
Jeremy Ruston
954a987d31
Extend the edit widget to be able to edit properties of data tiddlers
2013-08-28 11:23:14 +01:00
Jeremy Ruston
dfb49f811e
Fixed problem with importing tiddlers with double quotes, gt, lt etc
...
Reported by @giffmex
2013-08-28 09:25:54 +01:00
Jeremy Ruston
06599bcfc6
Fix up closing tiddlers in the zoomin listview
...
One for @giffmex
2013-08-26 14:48:05 +01:00
Jeremy Ruston
779d8b3aad
Update TW2 wikitext content type to text/x-tiddlywiki
...
And also stop assigning the default content type of
`text/vnd.tiddlywiki` to imported tiddlers.
2013-08-25 22:06:28 +01:00
Jeremy Ruston
d0dff80d6d
Fix problem with insertBefore() on Win7/IE10
...
The problem is that insertBefore() on Win7/IE10 crashes if the second
parameter is undefined, rather than behaving as if the parameter is
missing, as all other browsers do. Aaargh.
2013-08-24 23:28:17 +01:00
Jeremy Ruston
df0a1a7c42
Fix problem with wiki.search() incorrectly searching missing tiddlers
2013-08-24 16:51:54 +01:00
Jeremy Ruston
be06257430
Split "transclude" widget into a separate "tiddler" and "transclude" widget
...
Belatedly realised that the design would be clearer without these two
separate concepts being conflated into a single widget.
As a result of this change, any other widget or template that generates
transclude widgets has needed adjustment.
2013-08-24 16:45:45 +01:00
Jeremy Ruston
3b563e19cf
Removed obsolete comments
2013-08-23 18:38:44 +01:00
Jeremy Ruston
d6ec1ea1e5
Remove plugin
field now that we've got the plugin-type
field
...
I've been meaning to remove the `plugin` field for ages.
2013-08-23 18:37:54 +01:00
Jeremy Ruston
e1a38d88a7
Add a count widget
2013-08-21 23:09:54 +01:00
Jeremy Ruston
44f172c5ec
Correct harmless but confusing typo
2013-08-21 23:09:40 +01:00
Jeremy Ruston
ca142dbdb5
Remove extraneous references to current field context variable
...
This should have been done as part of
6fc4e5db7c
2013-08-21 22:42:05 +01:00
Jeremy Ruston
5fe2d718e0
Fix crash with "fields" filter operator applied to missing tiddlers
...
Fixes #132
2013-08-21 22:33:04 +01:00
Jeremy Ruston
8cbb98d44d
Hack the list widget
...
Usually the list transcludes each tiddler through the sample template.
This hack makes it work differently, where each tiddler is used as a
template to render the same current tiddler. The attribute that
switches modes is called "hackTemplate" because this is a temporary
implementation of this capability for experimental purposes
2013-08-21 20:50:08 +01:00
Jeremy Ruston
a427702628
Allow username to be set for the built-in server
2013-08-21 09:53:45 +01:00
Jeremy Ruston
1fd59a4bd3
First pass at a saver for the AndTidWiki app on Android
2013-08-19 13:55:40 +01:00
Jeremy Ruston
bc56253479
Extend the list widget to allow the generated HTML elements to be controlled
...
This makes it possible to generate UL or OL lists as well as the
current divs and spans.
This feature is clearly necessary but I'm not very happy with it. It
feels as though the syntax should be modifying a UL tag to specify the
extra information required to generate the list, rather than turning
the list widget to indirectly specify it's elements.
2013-08-19 11:08:00 +01:00
Jeremy Ruston
a36d3895ff
Remove type attribute from the list widget
...
It's just a shortcut that clutters things up; easier to do the same
thing with a macro
2013-08-18 20:41:46 +01:00
Jeremy Ruston
f4b4415676
Fix problem which was preventing transcluded indexed properties from being parsed inline
2013-08-16 13:11:44 +01:00
Jeremy Ruston
b88079442c
Add "listed" filter operator for retrieving the tiddlers that list a specified tiddler
2013-08-16 09:31:05 +01:00
Jeremy Ruston
6fc4e5db7c
Get rid of the old "fieldgrid" and "fieldlist" widgets
...
Instead, we'll use the "list" widget with the new support for macros.
2013-08-15 18:17:11 +01:00
Jeremy Ruston
8c48d45479
Add a "fields" filter operator
2013-08-15 18:15:54 +01:00
Jeremy Ruston
6be8afe49f
Extend the list widget to allow it to render each element as a macro
...
This will enable us to drop several existing widgets: fields,
fieldlist, fieldgrid
2013-08-13 19:33:45 +01:00
Jeremy Ruston
e27c5005ef
File renames for 46b2fde2d9
2013-08-09 22:00:42 +01:00
Jeremy Ruston
0cf4c578d4
First take of the ConfigInfo panel
...
It displays internal configuration information for debugging and
learning about TiddlyWiki. Also introduces a way of interleaving
documentation tiddlers (complete for tiddler fields, more module type
docs to come)
2013-08-09 21:57:05 +01:00
Jeremy Ruston
0bda00ae71
Extend the fieldlist widget to retrieve all fields used across all tiddlers
2013-08-09 16:46:17 +01:00
Jeremy Ruston
9b7cee81f2
Add type="modules" support to the info widget
...
With type="modules", the info widget outputs a list of the currently
loaded modules, grouped by module type.
2013-08-09 16:45:40 +01:00
Jeremy Ruston
46b2fde2d9
Rename "dump" command to "print" command
...
Being pan-cultural is hard.
2013-08-09 09:24:58 +01:00
Jeremy Ruston
7e82eb13eb
Fix problem with stray drag image showing
...
Changes to the main layout CSS a few weeks ago meant that the drag
image element was visible at the top left corner of the window.
Astoundingly, the fix is to cover it with another div with the same
background colour as the page….
2013-08-08 21:46:38 +01:00
Jeremy Ruston
a9a2ae2223
Add sorting by tiddler lists
...
The tag and tagging filters now sort their results by the list field of
the tag, if present
2013-08-08 17:39:34 +01:00
Jeremy Ruston
83ea953a1d
Switch the story list over to using the new list field
2013-08-07 17:54:27 +01:00
Jeremy Ruston
8443a9d6ca
Fix comment
2013-08-07 16:04:06 +01:00
Jeremy Ruston
85007cb1e1
Correct comments
2013-08-06 15:27:02 +01:00
Jeremy Ruston
39b6091258
Don't set modification fields on synced tiddlers
2013-08-06 15:26:48 +01:00
Jeremy Ruston
0ae0f68257
Update filenames to reflect changes in 05ac094d2e
2013-08-04 22:31:09 +01:00
Jeremy Ruston
05ac094d2e
Rename the savetiddler
/savetiddlers
commands to rendertiddler
/rendertiddlers
...
'Render' reflects what the commands actually do, and frees up 'save'
for actually saving the raw content of a tiddler.
2013-08-04 22:26:45 +01:00
Jeremy Ruston
be7cc67ab6
Correct mistaken classification of savetiddlers command as asynchronous
2013-08-04 22:02:19 +01:00
Jeremy Ruston
86e73ee323
Set modified field and other metadata for newly created and modified tiddlers
...
Right now we're setting the created/modified time, and only setting the
creator/modifier if the tiddler `$:/status/UserName` is defined.
2013-08-04 14:02:07 +01:00
Jeremy Ruston
5994a84644
Extend ginsu.sh to generate a split.recipe file
2013-08-03 15:03:07 +01:00
Jeremy Ruston
799647e38b
Fix problem with search term being filtered from search results
...
Some leftover code meant that tiddlers titled with the precise search
term were excluded from the results.
2013-08-03 09:28:51 +01:00
Jeremy Ruston
602b9d34e4
Unpack the object returned by getBoundingClientRect()
...
Embedding the return object directly doesn't survive the object being
passed as an event parameter.
Fixes #114
2013-07-25 16:58:42 +01:00
Jeremy Ruston
a79e876806
First pass at a grid widget
...
Need to add support for cell templates and in place editing.
2013-07-22 13:03:46 +01:00
Jeremy Ruston
f1a7e433ab
Allow widget names to include digits
2013-07-14 23:13:42 +01:00
Jeremy Ruston
8c73d8db4b
Confirmation message for $tw.slowmo()
2013-07-14 23:13:13 +01:00
Jeremy Ruston
1a160485a8
Documentation correction
2013-07-08 21:44:12 +01:00
Jeremy Ruston
6e98af3bbd
Experimenting with different easing functions for the zoomin animation
2013-07-08 17:20:06 +01:00
Jeremy Ruston
24ad677d75
Add back the zoomin view
...
An alternative visualisation for the story list. It just shows the
currently selected tiddler, with smooth animations between tiddlers.
Not entirely finished yet; for instance, if you close the current
tiddler you get a blank screen until you select another tiddler.
2013-07-08 15:19:00 +01:00
Jeremy Ruston
ea8c795d01
Add a hack to switch slowmo animation mode
...
Just type `$tw.slowmo()` in the developer console to engage slowmo mode.
2013-07-08 15:17:29 +01:00
Jeremy Ruston
1304bfd0d4
Special treatment so that text reference to title field works for missing tiddlers
...
The title field is the one field that we know for missing tiddlers.
This is needed in a subsequent commit of viewswitcher.
2013-07-08 15:16:55 +01:00
Jeremy Ruston
53ead15273
Refactor scroller so that the scrollIntoView() method is a bit more usable
...
Passing an event instead of a DOM node was silly.
2013-07-08 15:15:53 +01:00
Jeremy Ruston
594f4ba204
Update animations to use a timer instead the transitionEnd event
...
Thr trouble is that the transitionEnd event doesn't fire under some
circumstances (eg if the animated element is hidden). So, it's more
reliable to use a timer instead
2013-07-06 12:57:37 +01:00
Jeremy Ruston
b51fb9cfa9
Linting
2013-07-05 22:37:55 +01:00
Jeremy Ruston
6d3f224817
Fix problem with pop listview animation
...
It turns out the transitionEnd event fires separately for each animated
property. We'll just remove ourselves on the first one
2013-07-05 11:15:51 +01:00
Jeremy Ruston
c72a63849b
Add some more methods to the fake DOM
...
These methods are needed to get static saving working in the browser
again (click "Save Static" in the Demo tiddler)
2013-07-05 10:47:08 +01:00
Jeremy Ruston
e6450e60e2
Add a popping animation to the tags editor
2013-07-04 12:50:31 +01:00
Jeremy Ruston
647bd51299
Fix problem with erroneous initialisation of changedTiddlers member
2013-07-03 16:00:48 +01:00
Jeremy Ruston
e583c1d72d
Use empty string as default value for reveal widget
2013-07-03 16:00:26 +01:00
Jeremy Ruston
627dba01e4
Make getContextScopeId() more selective about context fields that are included
...
We were getting a problem whereby macro definitions were showing up in
the context string.
2013-07-03 16:00:10 +01:00
Jeremy Ruston
6299026407
Fix issue with child nodes of macro call not being refreshed
2013-07-03 15:59:09 +01:00
Jeremy Ruston
0edfc855b4
Replace obsolete content type
2013-06-27 10:19:38 +01:00
Jeremy Ruston
d93e6b1229
Always default to a href='#title' format for tiddler links
...
The link format will be overridden when we're creating links within
static HTML representations
2013-06-27 09:03:59 +01:00
Jeremy Ruston
12b471b8fb
Extend the HTML rendering mechanism to support attributes specified as macro invocations
2013-06-18 15:37:19 +01:00
Jeremy Ruston
18f8b7266e
Refactor the HTML element parser
...
The purpose is to allow attributes to be specified as macro
invocations. For example `<div myattr=<<mymacro param1 param3>>>`. The
parser needed sprucing up in order to copy with the nesting of angle
brackets. The refactoring has been done with an eye on using the same
technique in the filter expression parser (which is pretty messy at the
moment -- it throws exceptions for syntax errors, which is bad). Later
I'm hoping to extend the technique to create a more flexible table
parser.
2013-06-15 15:12:05 +01:00
Jeremy Ruston
cb34ef20ad
Add input type handling to the texteditor
...
This allows us to customise the input element used for each field type.
The only one implemented at the moment is color, which currently only
works on Chrome
2013-06-13 09:17:36 +01:00
Jeremy Ruston
8471a2217a
Improve handling of fieldmodules lacking a stringify method
2013-06-13 09:16:26 +01:00
Jeremy Ruston
204bd69e83
Fix issue preventing tags being added to a tiddler with no existing tags
2013-06-11 14:52:01 +01:00
Jeremy Ruston
d6654c4a0b
Fixed problem with not being able to manually scroll after navigating to a tiddler
2013-06-10 21:07:23 +01:00
Jeremy Ruston
3cda8758ae
Refactor scrolling animation to use requestAnimationFrame() instead of setInterval()
2013-06-10 14:11:58 +01:00
Jeremy Ruston
2c20e6579d
Update edit widget to trigger a popup when focussed
...
This will allow us to do autocompletion
2013-06-09 19:27:45 +01:00
Jeremy Ruston
e4aa80b277
Update the transclude widget to update parameters for remove tag message
2013-06-09 19:27:15 +01:00
Jeremy Ruston
d4b6c05bc2
Update linkcatcher to optionally trigger a different event
2013-06-09 19:26:42 +01:00
Jeremy Ruston
0cbb89770f
Update fieldmangler widget to be able to add and remove tags
2013-06-09 19:26:05 +01:00
Jeremy Ruston
92fee547a9
Allow class to be specified for list widget frame element
2013-06-09 19:25:11 +01:00
Jeremy Ruston
a20eb4867e
Update link widget to use current tiddler as default target
2013-06-09 19:24:45 +01:00
Jeremy Ruston
2c8352c442
Update the popup manager to allow popup state to be forced, rather than toggled
...
We'll be needing this shortly
2013-06-09 19:24:21 +01:00
Jeremy Ruston
b3c6b51fc7
Make the prefix filter operator be case insensitive by default
2013-06-09 19:23:52 +01:00
Jeremy Ruston
aeb8d0d1e6
Allow a placeholder attribute to be specified on the edit widget
...
Also fix some problems with handling of the class and style attributes
2013-06-08 17:30:54 +01:00
Jeremy Ruston
694ca76e7f
Improve the bitmap editor to allow the bitmap to be resized
...
A bit rough and ready, too
2013-06-06 20:55:43 +01:00
Jeremy Ruston
6ae73e0fc7
Fix regex typos
...
The trouble with regexs being that they breed typos…
Fix #103
2013-06-05 19:06:31 +01:00
Jeremy Ruston
d81f45764a
Start refactoring the bitmap editor to permit a more complex UI
2013-06-05 19:04:40 +01:00
Jeremy Ruston
2d5d1d1ce1
Improve editting of corrupt images
...
We now detect errors loading the image and initialise a blank canvas
instead.
This means that it's possible to open HelloThere for editting, and then
change the "type" field to "image/jpeg", and the textarea automatically
switches to a blank bitmap. Next up is making it possible to change the
size of the bitmap.
2013-06-05 15:47:44 +01:00
Jeremy Ruston
c0a26d2849
Ensure that the edit widget refreshes whenever the editor type changes
2013-06-05 15:38:29 +01:00
Jeremy Ruston
131874e154
Fix typo
2013-06-05 15:38:06 +01:00
Jeremy Ruston
e925f1c3dd
Adjust fields widget to sort fields
...
Making it easier to track .tid files under source code control
2013-06-05 14:12:52 +01:00
Jeremy Ruston
1f21bd36d6
Fix problem with displaying modals before the page container is initialised
2013-06-04 16:22:37 +01:00
Jeremy Ruston
854a9d6d1c
Toggle a style on the page container when a modal is displayed
2013-06-04 16:19:47 +01:00
Jeremy Ruston
348a6976b7
Add fieldmangler widget that allows fields to be added and removed to tiddlers
2013-06-04 12:02:37 +01:00
Jeremy Ruston
ab75dde048
Update transclude widget to flag events with the current field
2013-06-04 12:02:18 +01:00
Jeremy Ruston
7a080b7aac
Update class for fieldlist widget
2013-06-04 12:01:40 +01:00
Jeremy Ruston
fb76ee5606
Fix problem that was stopping buttons being able to set tiddlers to the empty string
2013-06-04 12:01:28 +01:00
Jeremy Ruston
538d12e017
Add the fieldlist widget
...
Allows us to render a sequence of fields
2013-06-02 23:20:43 +01:00
Jeremy Ruston
938124ca37
Extend the info widget to return the current field
2013-06-02 23:20:24 +01:00
Jeremy Ruston
6f3f4528c9
Make the edit and view widgets default to the current field
2013-06-02 23:20:08 +01:00
Jeremy Ruston
d5b0a0fb68
Extend the transclude widget to allow a currentField to be set
...
We set the current field as a context variable for the transcluded
content
2013-06-02 23:19:50 +01:00
Jeremy Ruston
456d50b6ef
Make the setstyle widget refresh itself properly
...
This will allow us to dynamically change the colour of tags
2013-06-02 23:18:54 +01:00
Jeremy Ruston
f743e09e7a
Corrected typo
2013-06-02 23:17:53 +01:00
Jeremy Ruston
bf4216f3ac
Don't count references to shadow tiddlers as missing tiddlers
2013-05-31 17:53:11 +01:00
Jeremy Ruston
b0d183070c
Don't allow < and > in external links
2013-05-31 17:42:40 +01:00
Jeremy Ruston
28b0b58a11
Make a distinction between templates and UI
...
Templates are the low-level bits and pieces that allow TW5 to generate
HTML and CSS renderings of tiddlers. The UI folder contains the
user-visible UI of TW5
2013-05-31 15:38:27 +01:00
Jeremy Ruston
d27cb19e22
Update titles of certain widgets that were misspelled
2013-05-31 13:23:25 +01:00
Jeremy Ruston
a8b1da33de
Improvements to slide animation
2013-05-28 16:47:16 +01:00
Jeremy Ruston
5cdcadd8b2
Make the reveal widget use the new animator mechanism
2013-05-28 16:28:38 +01:00
Jeremy Ruston
227cadd326
Add a barebones animation framework
...
The idea is to allow us to package animations/transitions into plugins
2013-05-28 16:28:16 +01:00
Jeremy Ruston
cf75b209ba
Add eachday
and sameday
filter operators
...
These operators will enable us to group the recent changes list by day
2013-05-27 17:59:33 +01:00
Jeremy Ruston
ca51634041
Add the each
filter operator
...
This makes it possible to do grouping within lists
2013-05-27 17:59:03 +01:00
Jeremy Ruston
887d955fc4
Change the search filter operator to not indirect through a tiddler
...
Now that we can make any filter operator indirect through a tiddler we
don't need to have that as a special capability of the search operator.
2013-05-27 17:58:27 +01:00
Jeremy Ruston
f4a3b25d3e
Extend the filter mechanism to allow operands to be indirected through a tiddler text reference
...
In other words, as well as `[sort[myfield]]` to sort by the field
called `myfield`, one can do `[sort{MyTiddler}]` to sort by the field
whose name is in the text of the tiddler `MyTiddler`.
2013-05-27 17:57:37 +01:00
Jeremy Ruston
9193937125
Fixed problem with field filter operator not performing string comparisons
2013-05-27 17:55:45 +01:00
Jeremy Ruston
31a4b96f57
Fixed problem with getTextReference() not always returning a string
2013-05-27 17:55:23 +01:00
Jeremy Ruston
0cf5dc699e
Refactor the filter mechanism
...
Long overdue rewrite to make it simpler, and break the filter operators
out into individual modules.
2013-05-25 17:26:22 +01:00
Jeremy Ruston
5394fc4ee1
Fix typo
2013-05-25 16:40:44 +01:00
Jeremy Ruston
d19affc9c3
Fix problem with non-shadow stylesheets not being recognised at startup
2013-05-25 16:40:34 +01:00
Jeremy Ruston
1e5842dc1c
Fix download saver on Firefox
...
Turns out that Firefox needs the link to be in the document before it
will honour the click on it.
2013-05-23 11:26:47 +01:00
Jeremy Ruston
4ad6f05010
Fix issue with scrolling while editting long tiddlers in Firefox
2013-05-21 17:54:10 +01:00
Jeremy Ruston
d3fa781287
Switch to using a slider for tiddler info
2013-05-19 12:11:18 +01:00
Jeremy Ruston
96462de2f5
Fix problem with not encoding body of non-base64 data URIs
2013-05-18 16:59:53 +01:00
Jeremy Ruston
3806168038
Fixed problem with non-shadow style tiddlers not being recognised
2013-05-18 16:59:24 +01:00
Jeremy Ruston
d8abc0e9e3
Fix up more document references
2013-05-17 17:37:39 +01:00
Jeremy Ruston
5abc0a7835
Get rid of the obsolete font parser
2013-05-17 17:30:33 +01:00
Jeremy Ruston
f3bcc1c0af
Add a datauri widget
...
Used in stylesheets to get a data URI for a font or bitmap
2013-05-17 17:30:03 +01:00
Jeremy Ruston
6e1cd46bc7
Fix document references
2013-05-17 17:29:43 +01:00
Jeremy Ruston
551ebdc005
Major refactoring of rendering mechanism
...
We now use a fake DOM implementation on the server to let us share more
rendering code between the text output vs. DOM output paths.
2013-05-17 10:12:25 +01:00
Jeremy Ruston
07d4c9a639
A slightly better fix for the render context inheritance issue with the htmlwikified viewer for the view widget
2013-05-15 22:15:57 +01:00
Jeremy Ruston
98986ba9cc
Fix problem with render context not inherited into htmlwikified view widgets
2013-05-15 21:33:40 +01:00
Jeremy Ruston
0a3389c277
Add namespace support to the element renderer
...
This allows us to create SVG elements with the correct namespace, which
allows us to have inline SVG images (coming up next)
2013-05-15 18:44:23 +01:00
Jeremy Ruston
dd2a7199f6
Allow a default value to be specified for WikiRenderTree.getContextVariable
2013-05-15 18:43:19 +01:00
Jeremy Ruston
8564602256
Refactor rendertree to simplify context handling
...
Get rid of the separate renderContext stack and instead have a parent
pointer on renderer nodes. This lets us walk back up the render tree to
resolve context references
2013-05-15 17:32:17 +01:00
Jeremy Ruston
c0683fd65c
Added a saver for the TWEdit iPad/iPhone app
2013-05-14 20:20:48 +01:00
Jeremy Ruston
6864251962
Cleaning up content types
...
Dealt with some inconsistencies
2013-05-13 17:42:07 +01:00
Jeremy Ruston
15d1abf523
Fix problem with context-menu paste not triggering saving of edits
...
We'll use the input event to detect changes, which is reliable but
doesn't work on older browsers
2013-05-11 10:03:11 +01:00
Jeremy Ruston
f43e22f8e5
Remove early bail on switching to a non-existent theme
...
Fixes #98
The excised code was unnecessary, as the rest of the function operates
correctly even if the theme tiddler is missing
2013-05-10 20:24:40 +01:00
Jeremy Ruston
6e44a20804
Fix problem with TiddlyFox on Windows
...
Fix #97
2013-05-10 18:14:01 +01:00
Jeremy Ruston
abcf7df875
Adjust bitmap editor to draw with a yellow pen
...
For highlighting
2013-05-08 15:11:53 +01:00
Jeremy Ruston
8796f312cb
A different animation for hiding notifications
...
Only slightly different, but it seems to add visual interest
2013-05-08 13:27:04 +01:00
Jeremy Ruston
e501c0ec2a
Enhance TiddlyFox saver to display a notification on success
2013-05-07 18:09:15 +01:00
Jeremy Ruston
24db38c06b
Add simple notification mechanism
2013-05-07 18:08:44 +01:00
Jeremy Ruston
ed5f88ab84
Fix problem with importing TW files
2013-05-03 19:19:01 +01:00
Jeremy Ruston
1696daf2bf
More explanation of the linkcatcher widget
...
Prompted by @pmaro
2013-05-01 16:11:52 +01:00
Jeremy Ruston
408fcd8aa3
Add a parser for woff fonts
...
It's a bit of a hack to have a parser dedicated to fonts. We'll replace
it with a mechanism that handles generic binary data
2013-05-01 13:04:27 +01:00
Jeremy Ruston
aa7b9441fd
Add a linkcatcher widget
...
It intercepts navigation events and saves the target tiddler title into
a specified text reference
2013-05-01 12:02:33 +01:00
Jeremy Ruston
c373fea350
Ensure themes get initialised on the server as well as the browser
...
To make sure that static site generation has access to the theme shadow
tiddlers
2013-04-30 23:04:15 +01:00
Jeremy Ruston
523d70127b
Allow themes to be switched by changing the tiddler $:/theme
2013-04-30 22:57:10 +01:00
Jeremy Ruston
e875de63a9
Ignore shadow tiddlers in the syncer
2013-04-30 22:55:06 +01:00
Jeremy Ruston
a54a7806d5
Remove redefinition of Tiddler.hasField() and added Tiddler.isPlugin()
...
hasField() was already being defined in boot.js
2013-04-30 22:37:02 +01:00
Jeremy Ruston
e12fbf0f9f
Comment clarification
2013-04-30 22:35:52 +01:00
Jeremy Ruston
594871e2d1
Fix for the link macro to work around iPhone annoyance
...
This prevents Mobile Safari from sliding the address bar into view
whenever a tiddler link is clicked
2013-04-29 16:03:35 +01:00
Jeremy Ruston
152fb798eb
Start responding to dynamic stylesheet changes
...
This mechanism will only be triggered by changes to the stylesheet
tiddlers themselves, and not to any dependencies that they might have.
It'll stay that way for a while.
The next thing is making the theme manager actually switch themes,
forcing the right wiki change events to make the stylesheet manager
update itself
2013-04-29 12:07:39 +01:00
Jeremy Ruston
c3e14a85a6
Give tiddlers a hasField() method
2013-04-29 12:05:58 +01:00
Jeremy Ruston
17cfd57390
Start making themes switchable
...
Separately switch in ordinary plugins and themes. Change the convention
for plugin information to use dashes rather than camel case.
2013-04-28 22:52:26 +01:00
Jeremy Ruston
996a7279ed
Switch to using tags to identify stylesheets
...
Using module-type was confusing, because we weren't actually using the
module infrastructure for stylesheet processing.
2013-04-28 18:13:57 +01:00
Jeremy Ruston
b305debf97
Add a close all tiddlers button
...
For @pmario
2013-04-27 16:35:59 +01:00
Jeremy Ruston
059a36b23d
Animate tiddler closures to the left
...
As @pmario points out, avoids nasty interactions with the sidebar
2013-04-27 16:24:41 +01:00
Jeremy Ruston
f487ea68d1
Store the parser list in the wiki constructor
2013-04-25 17:40:12 +01:00
Jeremy Ruston
e42a062dcc
Fixed bug with negated title filter
2013-04-25 10:03:37 +01:00
Jeremy Ruston
82308f642a
Use the text parser to parse CSS
2013-04-25 09:05:17 +01:00
Jeremy Ruston
64eadcfc41
Add an HTML parser
...
Allows one to embed raw HTML in wikitext with `$$$.html`/`$$$`
2013-04-10 17:02:37 +01:00
Jeremy Ruston
94287c9ac3
Tidying up drag and drop
2013-04-10 16:55:25 +01:00
Jeremy Ruston
e39d246317
Added basic support for drag and drop of tiddlers
...
Links are now draggable. Dragging outside the browser will drop the
wiki text of the tiddler. Dragging to another TW5 browser window will
drop the entire tiddler, including fields.
2013-04-08 18:47:46 +01:00
Jeremy Ruston
45ee2b3048
Fix bug that was preventing pasting into edit textareas or input boxes
2013-04-05 13:57:55 +01:00
Jeremy Ruston
b69f87484d
Remove extraneous debugging code
2013-04-04 14:24:37 +01:00
Jeremy Ruston
4bcebf5bbf
Fix HTML element parser to not pass capturing parenthesis in terminating regexp
2013-04-04 14:24:21 +01:00
Jeremy Ruston
dc00e584fb
Add support for filtering shadow tiddlers
2013-04-03 14:29:12 +01:00
Jeremy Ruston
6c210df0bd
Update HTML deserializer to cope with TiddlyWiki classic and TW5 files
2013-04-03 12:57:17 +01:00
Jeremy Ruston
c182533efc
Parse TiddlyWiki classic wikitext as plain text
...
Too many errors if we try to parse it as TW5 wikitext
2013-04-02 18:20:38 +01:00
Jeremy Ruston
a17e3588a6
Fix problem triggered by stale history list
2013-04-02 09:28:48 +01:00
Jeremy Ruston
c287d9d6d0
First pass at a widget for importing tiddlers
2013-04-01 19:06:39 +01:00
Jeremy Ruston
d99db91dd5
Fixed attribute assignment
2013-03-28 21:47:51 +00:00
Jeremy Ruston
0f0a96c4da
Update list widget to transclude block vs. inline correctly
2013-03-28 21:29:42 +00:00
Jeremy Ruston
abf3673fc9
Update texteditor to respect prevailing classes and styles
2013-03-28 21:29:20 +00:00
Jeremy Ruston
cd36f594c5
Make the core into a plugin
2013-03-28 17:07:30 +00:00
Jeremy Ruston
54d858a371
Improved default logic for the reveal widget
2013-03-27 13:48:39 +00:00
Jeremy Ruston
e88db07085
Fixed problem with ignored default in wiki.getTiddlerText()
2013-03-27 13:48:17 +00:00
Jeremy Ruston
b6345a9223
Remove logging from the server command
...
We really need to update the logging infrastructure
2013-03-25 20:19:36 +00:00
Jeremy Ruston
f427339a78
Add renderContext parameter to wiki.renderTiddler
2013-03-25 10:42:14 +00:00
Jeremy Ruston
70def07d63
Clearer logging preparatory to implementing file synchronisation
2013-03-24 12:53:09 +00:00
Jeremy Ruston
2870a09dc1
Make some of the sync adaptor methods be optional
2013-03-24 12:27:46 +00:00
Jeremy Ruston
638ed6429c
Show affected filepaths on the server
...
Preparatory to doing file sync on the server
2013-03-23 22:43:39 +00:00
Jeremy Ruston
4848a21c6b
Add GettingStarted tiddler for empty TiddlyWikis
2013-03-21 22:21:34 +00:00
Jeremy Ruston
6f88a57a41
Add wiki.countTiddlers() method
2013-03-21 22:21:00 +00:00
Jeremy Ruston
738952029b
Icons for editing tiddlers
2013-03-20 17:20:46 +00:00
Jeremy Ruston
0d2ac57ff7
Make static links to tiddlers with spaces work
...
A bit of a hack - the savetiddlers command should generate filenames
better
2013-03-20 11:02:06 +00:00
Jeremy Ruston
cbf2e9add9
Add fieldgrid in tiddler info dropdown
2013-03-19 22:39:24 +00:00
Jeremy Ruston
d4ada346dd
The list widget should parse the empty message as inline text
2013-03-19 22:39:04 +00:00
Jeremy Ruston
2aff4db744
Fix relative date viewer so that it displays absolute dates in static HTML representations
2013-03-19 19:06:23 +00:00
Jeremy Ruston
ec83bc5c64
Bring back the relativedate viewer
2013-03-19 18:59:13 +00:00
Jeremy Ruston
dbfbad3dd3
Let view widget viewers get postRenderInDom() callbacks
2013-03-19 18:59:00 +00:00
Jeremy Ruston
28707edd72
Decode paths for TiddlyFox
2013-03-19 18:36:27 +00:00
Jeremy Ruston
5a6c2b91f8
Parse JSON as text so that it doesn't generate missing tiddlers
2013-03-19 18:26:55 +00:00
Jeremy Ruston
952f1b3900
Add tiddler info dropdown
...
Including backlinks
2013-03-19 16:45:07 +00:00
Jeremy Ruston
069bb624e5
Fix popup removal
2013-03-19 16:44:32 +00:00
Jeremy Ruston
7cb65a3816
Add 'missing' and 'orphan' tabs
2013-03-19 10:14:44 +00:00
Jeremy Ruston
a1260dc57d
Basic first implementation of tabs for the sidebar
2013-03-18 22:18:54 +00:00
Jeremy Ruston
4af8026e28
Fix savetiddlers command to create files with special characters in the name
2013-03-18 22:16:01 +00:00
Jeremy Ruston
5b6376a386
Better titles for drafts of new tiddlers
2013-03-18 10:59:47 +00:00
Jeremy Ruston
5e12868e76
Fixes to ensure revision field is always a string
...
TiddlyWeb returns it as a number, which seems like it might be an
accident.
2013-03-18 10:13:36 +00:00
Jeremy Ruston
d14c61ef45
Switch "userName" to "username"
...
Because the former is naff
2013-03-17 19:37:31 +00:00
Jeremy Ruston
822f436534
Fix revision handling
2013-03-17 19:26:13 +00:00
Jeremy Ruston
d19fa16ca6
Fix inclusion of revision field when getting a tiddler
2013-03-17 19:25:59 +00:00
Jeremy Ruston
2624fed4f1
Get rid of the support for old-style syncers
2013-03-17 18:45:22 +00:00
Jeremy Ruston
210f596d0c
Marginally improve the elegance of the simple HTTP server
2013-03-17 17:57:46 +00:00
Jeremy Ruston
dbde2bf23b
Started refactoring TiddlyWeb syncer into generic syncer + TiddlyWeb adaptor
...
The refactored plugin is `tiddlyweb2` for the moment. The idea is to be
able to use the same syncer with a different adaptor for syncing
changes to the local file system.
2013-03-17 15:28:49 +00:00
Jeremy Ruston
8e6ce3733d
Use "self" rather than "me" for consistency
2013-03-17 15:06:09 +00:00
Jeremy Ruston
17a9cdd1e3
Remove initSyncers() from wiki.js
2013-03-16 11:06:44 +00:00
Jeremy Ruston
71aa79013d
Remove invokeSyncers() method from wiki.js
2013-03-16 10:58:47 +00:00
Jeremy Ruston
854e8d7083
Use the wiki event mechanism to dispatch lazyLoad notifications to syncers
...
We're trying to get to the point where wiki.js doesn't know about
syncers
2013-03-16 10:50:36 +00:00
Jeremy Ruston
c3b57507b0
Refactored wiki event mechanism to support multiple event types
2013-03-16 10:42:46 +00:00
Jeremy Ruston
623a3ec8f8
Rename "shadow" tiddlers to "system" tiddlers
...
What we have at the moment isn't really the same as TiddlyWiki
classic's shadow tiddlers, it's a much simpler system for excluding
tiddlers. We'll use the term "shadow" instead to refer to the way that
tiddlers in plugins behave, which is exactly like TiddlyWiki classic's
shadow tiddlers.
2013-03-15 22:00:19 +00:00
Jeremy Ruston
e5443e27cb
Minor tweaks to getTiddlers
2013-03-15 20:02:31 +00:00
Jeremy Ruston
71ecb022ef
Update TiddlyWeb support
...
Lots of changes:
* Make the built-in server support recipes and bags, albeit there's
just one of each, called "default"
* Correctly parse returned Etag to get bag of freshly PUT tiddlers
* URI encoding for tiddler titles, so that tiddlers with slashes and so
on work OK
2013-03-12 19:18:56 +00:00
Jeremy Ruston
7e57c422dc
Re-introduce video widget
2013-03-12 19:17:13 +00:00
Jeremy Ruston
6b78352764
Fixed handling of deleting tiddlers over HTTP
2013-03-11 10:04:44 +00:00
Jeremy Ruston
ab8fc26ba1
Update server command to be compatible with the TiddlyWeb syncer
...
Now TW5 in the browser can use the TiddlyWeb syncer to talk to TW5 on
the server
2013-03-10 19:28:24 +00:00
Jeremy Ruston
00ad0bc7a9
Docs update
2013-03-10 19:27:44 +00:00
Jeremy Ruston
fc33df8829
Add support for deleting tiddlers
2013-03-10 19:24:49 +00:00
Jeremy Ruston
21cb1e233e
Add "info" widget for displaying information about tiddlers
...
Currently only supports displaying the changecount of a tiddler
2013-03-10 19:24:22 +00:00
Jeremy Ruston
83a141752c
Further simplifications to syncer interface
...
Dropped the idea of exposing separate server connections
2013-03-09 09:54:01 +00:00
Jeremy Ruston
3da508b7c4
Simplify syncer interface
2013-03-08 20:29:13 +00:00
Jeremy Ruston
7d589b4b27
Removed extraneous debugging code
2013-03-08 17:50:40 +00:00
Jeremy Ruston
0731135866
Adding comment
2013-03-07 17:18:04 +00:00
Jeremy Ruston
f85afdb964
Fixed #70
2013-03-06 22:12:21 +00:00
Jeremy Ruston
06c5308c4b
More explicit name for "touchTiddler"
...
Thanks to @boycook for the conversation that triggered this refactoring
2013-03-05 19:59:55 +00:00
Jeremy Ruston
9155b8475f
Use synchronous file writes for saving tiddlers
...
So that we don't get problems with "docs.tid" overwrites "Docs.tid"
halfway through each other
2013-03-05 11:56:15 +00:00
Jeremy Ruston
8e9b2996eb
Restore qualifyHoverTitles
attribute to link widget
2013-03-05 11:55:25 +00:00
Jeremy Ruston
15a9e04a6a
Add support for static site generation
...
See http://five.tiddlywiki.com/static.html for an example
2013-03-04 18:15:54 +00:00
Jeremy Ruston
c24c00e8d6
Make the htmwikified viewer pass the renderContext through
2013-03-04 18:05:22 +00:00
Jeremy Ruston
fc79db53ab
Allow templating with the link widget
...
And add some documentation
2013-03-04 11:13:10 +00:00
Jeremy Ruston
79bb082b92
Restore password widget
...
Hence allowing TiddlySpot integration to work again
2013-03-04 11:12:49 +00:00
Jeremy Ruston
4c06bd72de
Fix #59
...
Much more intelligent automatic scrolling
2013-03-03 20:06:23 +00:00