1
0
mirror of https://github.com/Jermolene/TiddlyWiki5 synced 2024-11-18 07:44:51 +00:00
Commit Graph

351 Commits

Author SHA1 Message Date
Saq Imtiaz
041c3e817c
Support for macro params in filter operands (#5836)
* Exploratory pass at adding support for macro params in filter operands

* whitspace correction

* rename varInfo to varTree for disambiguation

* Refactored parseMacroInvocation to be re-usable, performance improvements for variables with no params and tests

* Revised regular expression and removed spurious white space changes

* Revised regular expression and removed spurious white space changes

* More whitespace cleanup and added more tests for edge cases

* Added test for macro params with square brackets
2021-06-29 22:21:39 +01:00
Mario Pietsch
9c0d6a46cc
Add "commentpragma" html style rule (#5726)
* html-comment, that can be used in the pragma area

* add commentpragma test

* fix typo

* fix typo and change comments ab bit

* combine html-comment and pragma-comment and add some docs, how to use it

* Make docs simpler by removing caching info

* change h2 wording
2021-06-14 17:39:56 +01:00
Joe Bordes
82ec63e711
style(App) eliminate whitespace at the end of code lines (#5735) 2021-05-30 19:20:17 +01:00
Miha Lunar
9b247f6d63 Removed fallback range logic 2021-05-29 20:30:04 +02:00
Cameron Fischer
61714cbda3
Fixed super minor issue with import pragma (#5521) 2021-05-23 17:39:06 +01:00
Miha Lunar
62fdaa633a Fixed fallback range logic + added ranges to tests 2021-04-25 16:03:35 +02:00
Miha Lunar
79f5e6b498 Merge remote-tracking branch 'origin/master' into parser-ranges 2021-04-25 13:17:44 +02:00
Miha Lunar
23bd7e7817 Replaced restructuring and added fallback comment 2021-04-25 13:12:45 +02:00
jeremy@jermolene.com
89546b3357 Add a hidden setting to control HTML sandboxing 2021-04-11 10:10:16 +01:00
jeremy@jermolene.com
9f9ce6595b Make it easier to subclass the wikitext parser with a custom rule set
We can now pass arrays of rule classes to the parser constructor, overriding the rules that would normally be used by the parser.

This allows us to create custom variants of the wikitext parser with their own content type.

It could also provide a basis for a new Markdown parser based on our existing wikitext parser but with new rules.
2021-02-03 15:13:56 +00:00
Cameron Fischer
4c7dcb83d1
Fix for #3306, inline/block widget glitch (#5452)
* Fix for #3306, inline/block widget glitch

* Just realized we don't need to set lastIndex anymore

* Forgot that parseBlocks doesn't use options
2021-01-29 14:57:30 +00:00
Cameron Fischer
45355a7fcf
Wikirules now use better macrocall parser (#5451)
* wikirules now use better macrocall parser

Before, wikirules would use a deficient macrocall parser which couldn't
handle certain types of arguments. Now it uses the same one that the
widget parser uses. Less code!

* style changes and removing weird switch statement

That switch statement made more sense in an earlier iteration.

* comment improvements

* oops, wikirule macrocalls could do ONE thing better

* '=' wasn't allowed for widget macros, but why?

Now they're allowed for both widget macros and macrocall macros.
2021-01-29 13:26:31 +00:00
jeremy@jermolene.com
ca95f1069f Fixed comment parsers to match end marker correctly
Fixes #5396
2021-01-13 11:48:42 +00:00
jeremy@jermolene.com
d25e540dd2 Add support for image/vnd.microsoft.icon content type
Fixes #5357
2021-01-03 10:04:52 +00:00
jeremy@jermolene.com
d181b96518 Wikitext parser: Refactor a poorly written utility function 2020-11-18 12:05:06 +00:00
Miha Lunar
1b226c7556 Fixed coding standard nits 2020-11-06 19:56:20 +01:00
Miha Lunar
2bd9cc45fa Added more start/end parser ranges 2020-11-04 21:02:17 +01:00
Nils-Hero Lindemann
322c37d693
Let chained > blockquotes generate valid HTML (#4332)
* Replace "p" with "div" in itemTag

'>> text' will now be valid html.

* Make the new div's behave like p's
2020-04-07 20:39:13 +01:00
Lee Sheng Long
96eca32b11
Add download button/link to binary tiddler warning banners in view and edit mode (#4423) 2020-01-31 09:13:28 +00:00
Stefan Krüger
1ed884cef4 Add support for file type webm & ogg theora (#4404) 2020-01-04 11:27:13 +00:00
donmor
588af44d4c Scale embedded videos and audios to fit their container (#3943)
* Update videoparser.js

* Update audioparser.js

* Update videoparser.js

* Update audioparser.js
2019-10-19 11:44:18 +01:00
Nils-Hero Lindemann
1c5b3e3d8d Remove duplicate code from transcludeblock parser (#4221) 2019-08-30 17:20:16 +01:00
Jermolene
fe85845c3c Add new "\import" pragma 2018-09-28 16:01:32 +01:00
Jermolene
09112ed455 Add support for webp, heic, and heif image formats
https://en.wikipedia.org/wiki/WebP
https://en.wikipedia.org/wiki/High_Efficiency_Image_File_Format
2018-08-21 11:46:46 +01:00
Jermolene
35cbb127a3 Restrict variable substitutions to macros defined with the define pragma
Fixes #3333
2018-06-15 08:31:02 +01:00
Jermolene
6b14969cf6 Display a warning for binary tiddlers in view mode
The base64 data is currently parsed as wikitext, which is slow and unhelpful

We already display the same warning for binary tiddlers in edit mode.
2018-05-18 17:53:07 +01:00
Matt Lauber
bbccb60c0b Code Cleanup (#3178)
Noticed an unused variable in the image parser, from before a old refactor.
2018-03-19 15:46:07 +00:00
Jermolene
ff6aa0570f Check for dollar sign within HTML element name
Fixes #3091
2018-01-16 22:13:40 +00:00
Jermolene
29364cbd08 Change http://*.tiddlywiki.com/* to https:// 2017-11-11 11:56:20 +00:00
Jermolene
d966583854 Add new "\whitespace" pragma
This will allow us to simplify some of the more unreadable core
wikitext tiddlers…
2017-07-12 16:46:13 +01:00
Jermolene
0383b98555 Add support for other movie content types 2016-12-23 08:34:07 +00:00
Jermolene
f143164cbe Correct the name of the video parser 2016-12-22 22:07:28 +00:00
Jermolene
74def9e080 Separate the PDF parser from the image parser
It was a bit of a hack, and made it harder to customise PDF presentation
2016-12-15 17:13:32 +00:00
Jermolene
7108e0d861 Add support for filtered attributes to HTML elements and widgets
Fixes #2624
2016-10-21 11:27:07 +01:00
Jermolene
accd4a1b65 Fix regexp performance problem introduced in c7b31b0242
This fixes a problem introduced in
c7b31b0242.

The changes by @tobibeer inadvertently made the regular expression
evaluation significantly more expensive because of lookahead. The is
less elegant but reverts the performance problem.
2016-10-17 19:08:01 +01:00
Jermolene
da298f037d Remove extraneous console.log()
Fixing f97c1226aa
2016-10-12 15:50:43 +01:00
Jermolene
f97c1226aa Prevent HTML parser from mis-recognising email addresses
Email addresses such as `<jeremy@example.com>` were being erroneously
parsed as HTML tags.

Fixes #2604
2016-10-12 13:17:53 +01:00
Tobias Beer
b9299309cc Fixes #2076 single line macros shouldn't need terminating line break 2016-10-08 13:44:30 +01:00
Tobias Beer
c7b31b0242 allows textPrimitives.anyLetter in syslink (#2596)
* allows textPrimitives.anyLetter in syslink

now only supports anyletter as per request by @jermolene
2016-10-08 11:51:07 +01:00
Jermolene
782553eb62 Remove tilde from characters not allowed in external URLs 2016-07-13 14:06:47 +01:00
Jermolene
dca9e008ce Remove single quote from illegal characters in URLs
Fixes #2493
2016-07-12 17:22:20 +01:00
Jermolene
682b1e7027 Fix sandbox attribute for html parser generated iframes
See
https://developer.mozilla.org/en/docs/Web/HTML/Element/iframe#attr-sandb
ox
2016-05-17 15:45:10 -06:00
Jermolene
3a3754aebb Add rel="noopener noreferrer" to external links
Background:
https://medium.com/@jitbit/target-blank-the-most-underestimated-vulnerab
ility-ever-96e328301f4c#.hduwdbjlb
2016-05-05 11:49:40 +01:00
Jermolene
df3e39d97a Update wikiparser file comment 2016-02-15 11:33:47 +00:00
Jermolene
99df9f46f7 Add support for tiddlers containing mp4 videos 2015-10-01 12:13:38 +01:00
Jermolene
ecdae4ceff Make lazy loading message be translateable 2015-09-08 10:41:27 +01:00
Jermolene
a204784c0c Limited implementation of external text tiddlers in the browser
Triggered by the discussion in #1917
2015-08-29 16:33:04 +01:00
Jermolene
58188cf805 Improvements to parser rule configuration
* Ignore parser rule configuration in safe mode
* Made text translatable
* Added new setting for camelcase links
* Added warning on parser rule configuration tab

See #1875
2015-07-31 13:33:33 +01:00
Jermolene
d5e690a06d First pass at global disabling of parser rules
This is to address #1875 more quickly than via #345.

This commit only includes a partial implementation of the UI - see the
ticket for details.
2015-07-30 12:28:29 +01:00
Jermolene
18e38bb2bc Fix bug with 2cb6400773
The problem was that we failed to escape the dash in the regexp,
meaning that it was matching all characters from “.” to “_”.
2015-07-14 08:33:12 +01:00
Jermolene
2cb6400773 Extend automatic system tiddler linking to digits and underscore
Fixes #1877
2015-07-13 14:42:55 +01:00
Jermolene
c6e48ebc2d Performance optimisations
In some situations, I’m seeing x2.5 speedups with these optimisations

Starts fixing #1864
2015-07-05 19:47:44 +01:00
Jermolene
b0cb17cd83 Re-establish caching of results of parsing a tiddler
I switched this optimisation off back in
ed35d91be6, in October 2013, as part of a
big refactoring of the parsing and widget mechanism. I’ve been meaning
to switch it back on for some time.

My rough measurements suggest that this optimisation can reduce
rendering time by 5-10%.
2015-07-05 17:48:18 +01:00
Jermolene
50c6ce8b73 Improve syslink parsing
Fixes #1767
2015-06-24 09:24:03 +01:00
Jermolene
050b643948 Sandbox HTML iframes
Otherwise Firefox allows code in html tiddlers to access the main
window:

https://groups.google.com/d/topic/tiddlywiki/NwOI-QER2ig/discussion
2015-01-28 13:50:39 +00:00
Tobias Beer
b43d4a33d6 simplified regexp
Ok, I think I've got it now. The following matches all...

1. starting with a literal `$:`
2. then any number of character not a whitespace, `<` or  `|`
3. closing with anything that is, again, not a whitespace, `<` or  `|`

Test here...

http://tbdemo.tiddlyspot.com/#Autolink%20System%20Tiddlers
2015-01-11 11:04:02 +01:00
Tobias Beer
795a929187 create syslink.js, revert extlink.js
introduces new parser for system links
2015-01-09 23:51:07 +01:00
Tobias Beer
8ba3e8973e autolinks system tiddlers
enhanced extlink parser to cover system tiddler links

of course, only those without spaces in their title

didn't want to open up an extra parser for this as extlink has all the
basics
2015-01-08 21:26:48 +01:00
Astrid Elocson
2f42c9fb8d Links and transclusions in railroad diagrams 2015-01-06 01:39:24 +00:00
Jermolene
1600beb193 Move the wikilink regexps into global config 2014-11-26 11:12:25 +00:00
Jermolene
93cb03eeab Allow whitespace after \end in macro definitions
Fixes #1090
2014-11-18 10:26:20 +00:00
Jermolene
5599f9f933 Fix problem with UTF-8 encoding of HTML tiddelrs
Fixes #1037
2014-11-03 16:20:49 +00:00
Xavier Cazin
6833bfb220 Add audio/ogg to the list of recognised audio formats 2014-10-19 22:09:17 +02:00
Jermolene
2ffe53f191 Add audio parser for handling audio content 2014-10-18 14:50:07 +01:00
Jermolene
a9f46525a0 Stop classifying digits as lower case letters in wikilinks
Fixes #842
2014-09-17 12:55:39 +01:00
Jermolene
3a67fdb768 Obeisance to JSHint for core modules
There are still some warnings about making functions in a loop, but
I’ll fix those as a separate pull request because the fixes are more
than typographic errors.
2014-08-30 20:44:26 +01:00
Jermolene
43aeb47fc3 Skip whitespace from start of inline macro definitions
Now `\define mymacro() yes` will not have a leading space in the
variable value
2014-08-28 20:21:09 +01:00
Jermolene
787481a804 Change more "tw-*" classes to "tc-*"
Part of #764
2014-08-28 18:21:08 +01:00
Jermolene
4a1c530da7 Rename "tw-tiddlylink-*" classes to "tc-tiddlylink-*"
Part of #764
2014-08-28 18:13:46 +01:00
Jermolene
b2e1dd2138 Allow whitespace after first line of multiline macro
Fixes the remaining part of #482
2014-08-11 13:52:10 +01:00
Jermolene
2526bfb078 Disable wikilinking when preceded with dash or underscore
“HelloThere” in “My-HelloThere” shouldn’t be wikified.

Part of #337
2014-08-08 16:20:15 +01:00
Jermolene
f8548cc8f2 Stop classifyinh "÷" (\u00f7) as an upper case letter
Part of #337
2014-08-08 16:12:23 +01:00
Jermolene
9c8564d5b0 Stop classifying "×" (\u00d7) as a lower case letter
Part of #337
2014-08-08 16:09:56 +01:00
Jermolene
d7390dbbe1 Remove support for underscore and dash in wikilinks
Starting to fix #337
2014-08-08 11:13:41 +01:00
Jermolene
5260899d8b Relax requirement for newline after macro definition 2014-08-07 16:00:20 +01:00
Jermolene
bf9a87dc0e Fix CR handling by HTML parser
@pmario and @welford - I’m not presenting this as a fix for #717
because I’m still not in a position to reproduce it.

However, I found this during a review of newline handling code, and
would be interested if it is implicated in the problems you are
reporting.
2014-08-03 09:43:22 +01:00
Mario Pietsch
6de453d796 remove stricethrough.js 2014-07-24 23:51:37 +02:00
Mario Pietsch
bb47f1dbad fix whitespace and filename 2014-07-24 23:49:42 +02:00
Mario Pietsch
95f6c92192 fixed whitespace 2014-07-24 23:47:13 +02:00
Mario Pietsch
7aa6c7c06d splited emphasis.js into several modules to have fine grained control with wikification rules eg: rules except bold ... This fixes #701 2014-07-24 17:43:03 +02:00
buggyj
0206358a1c added missing regex update for triple double-quotes macro params 2014-06-19 19:17:26 +02:00
buggyj
a2ec4c55e3 added triple double-quotes delimiters for marco/widget parameters (to support json strings) 2014-06-19 07:29:14 +02:00
Jermolene
9547a1f01c First pass at external image support
A bunch of little changes that together enable external image support.
Try:

```
tiddlywiki editions/tw5.com --verbose --build externalimages
```

Then open `externalimages.html`, look for the images in the more/types
tab of the sidebar, open them and verify that they are set with an
external SRC attribute, not a data URI.
2014-06-12 08:36:30 +01:00
Jermolene
f131c37893 Update HTML parser to use an IFRAME
Gives us better sandboxing of unsafe HTML content
2014-06-11 23:04:58 +01:00
Jermolene
f44f2b33ed Fixed missing class on external pretty links 2014-05-26 17:57:35 +01:00
Jermolene
c9c1b0fbb4 Get rid of the tweakParseTreeNode() hack
It’s an embarrassing hangover from a refactoring of the parsing
mechanism last year.
2014-05-14 08:51:08 +01:00
Jermolene
854b739a35 Implement explicit external links 2014-05-06 20:05:51 +01:00
Jermolene
abe0ce28b9 Fix typos in docs for image parser 2014-05-06 19:00:34 +01:00
Jermolene
552657fc58 Fix text parser to use codeblocks
This means that JavaScript and JSON tiddlers will be properly
highlighted if the highlight plugin is loaded.
2014-04-24 19:41:07 +01:00
Jermolene
ad4b03506a Added wikitext image support
We’ve added a parser to recognise the `[img[URL or tiddler title]]`
format, and an associated image widget.
2014-04-17 12:52:32 +01:00
Jermolene
ace57dd205 Refactor utilities out of HTML parser
Some of the functions are useful general purpose parser helpers.
2014-04-17 12:00:32 +01:00
Jermolene
4c648e7cdc Exclude more illegal characters from external links 2014-04-14 11:17:28 +01:00
Jermolene
93b9d16d6c Don't include pipe characters in URLs 2014-04-13 21:17:44 +01:00
Jermolene
ccefc1b17b Tolerate more whitespace in block elements
Previously the double newlines marking a block mode element couldn’t be
interspersed with whitespace.
2014-04-10 11:05:27 +01:00
Jermolene
5a085f7927 Add basic CSV parser 2014-03-31 12:41:02 +01:00
Jermolene
bdbbf94326 Update transclusion wikitext syntax to allow a template without a target tiddler
This allows us to transclude a tiddler without changing the current
tiddler with `{{||MyTiddler}}`.
2014-03-17 21:44:10 +00:00
Jermolene
cdf3e101a8 Fix crash with headings
`this.match[1].length` can get overwritten when we parse the content of
the heading
2014-03-17 20:55:08 +00:00
Jermolene
75ff9fb6c0 Allow the end of text to be treated as a linebreak for parsing HTML tags 2014-02-22 08:43:03 +00:00
Jermolene
c17844b815 Another fix for the block vs inline handline 2014-02-20 22:43:04 +00:00
Jermolene
06a0d21734 Use double linebreaks to indicate content of a widget or html element should be parsed in block mode
Fixes #82.

The old behaviour was to parse the content of a widget or html element
in block mode if the opening tag was followed by a line break. The new
behaviour requires two line breaks.

This makes it possible to include linebreaks more liberally within
wikitext, although care must still be taken to only use double line
breaks when the block mode behaviour is desired.

The code change here is very simple, just a single line change in
html.js. Most of the other changes are to convert various single line
breaks into double line breaks.
2014-02-20 21:42:31 +00:00