mirror of
https://github.com/Jermolene/TiddlyWiki5
synced 2024-11-23 10:07:19 +00:00
Limited implementation of external text tiddlers in the browser
Triggered by the discussion in #1917
This commit is contained in:
parent
abd8201aaa
commit
a204784c0c
@ -26,6 +26,23 @@ Attributes are stored as hashmaps of the following objects:
|
||||
|
||||
var WikiParser = function(type,text,options) {
|
||||
this.wiki = options.wiki;
|
||||
var self = this;
|
||||
// Check for an externally linked tiddler
|
||||
if($tw.browser && options._canonical_uri) {
|
||||
$tw.utils.httpRequest({
|
||||
url: options._canonical_uri,
|
||||
type: "GET",
|
||||
callback: function(err,data) {
|
||||
if(!err) {
|
||||
var tiddlers = self.wiki.deserializeTiddlers(".tid",data,self.wiki.getCreationFields())
|
||||
if(tiddlers) {
|
||||
self.wiki.addTiddlers(tiddlers);
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
text = "Loading external text from ''" + options._canonical_uri + "''\n\nIf 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";
|
||||
}
|
||||
// Initialise the classes if we don't have them already
|
||||
if(!this.pragmaRuleClasses) {
|
||||
WikiParser.prototype.pragmaRuleClasses = $tw.modules.createClassesFromModules("wikirule","pragma",$tw.WikiRuleBase);
|
||||
|
@ -43,7 +43,7 @@ exports.convertStyleNameToPropertyName = function(styleName) {
|
||||
// Convert it by first removing any hyphens
|
||||
var propertyName = $tw.utils.unHyphenateCss(styleName);
|
||||
// Then check if it needs a prefix
|
||||
if(document.body.style[propertyName] === undefined) {
|
||||
if($tw.browser && document.body.style[propertyName] === undefined) {
|
||||
var prefixes = ["O","MS","Moz","webkit"];
|
||||
for(var t=0; t<prefixes.length; t++) {
|
||||
var prefixedName = prefixes[t] + propertyName.substr(0,1).toUpperCase() + propertyName.substr(1);
|
||||
|
@ -58,7 +58,11 @@ exports.httpRequest = function(options) {
|
||||
if(data && !$tw.utils.hop(headers,"Content-type")) {
|
||||
request.setRequestHeader("Content-type","application/x-www-form-urlencoded; charset=UTF-8");
|
||||
}
|
||||
request.send(data);
|
||||
try {
|
||||
request.send(data);
|
||||
} catch(e) {
|
||||
options.callback(e);
|
||||
}
|
||||
return request;
|
||||
};
|
||||
|
||||
|
10
core/templates/canonical-uri-external-text.tid
Normal file
10
core/templates/canonical-uri-external-text.tid
Normal file
@ -0,0 +1,10 @@
|
||||
title: $:/core/templates/canonical-uri-external-text
|
||||
|
||||
<!--
|
||||
|
||||
This template is used to assign the ''_canonical_uri'' field to external text files.
|
||||
|
||||
Change the `./text/` part to a different base URI. The URI can be relative or absolute.
|
||||
|
||||
-->
|
||||
./text/<$view field="title" format="doubleurlencoded"/>.tid
|
@ -28,6 +28,17 @@ The new [[Résumé Builder Edition]] by @inmysocks is a custom edition to guide
|
||||
|
||||
The new [[Text-Slicer Edition]] is a custom edition with tools to help advanced users slice longer texts up into individual tiddlers.
|
||||
|
||||
!! External Text Tiddlers
|
||||
|
||||
Limited support for tiddlers stored in external `.tid` files:
|
||||
|
||||
* standalone TiddlyWiki HTML files with external text tiddlers can be built under Node.js
|
||||
* wikis with external text tiddlers can be worked with in the browser, automatically lazily loading the content of external text tiddlers when it is first referenced
|
||||
** saving changes in the browser doesn't work as expected: if edited, the external text tiddler is replaced with an ordinary tiddler
|
||||
** lazy loading of external text tiddlers doesn't work in Chrome when viewing the TiddlyWiki HTML file on a ''file:'' URI; it works OK in Firefox. It works on an HTTP URI on all browsers
|
||||
|
||||
See [[Alice in Wonderland]] for an example. Try opening it without a network connection.
|
||||
|
||||
! Other Improvements
|
||||
|
||||
!! Translation Improvements
|
||||
|
3709
editions/tw5.com/tiddlers/demonstrations/Alice in Wonderland.tid
Normal file
3709
editions/tw5.com/tiddlers/demonstrations/Alice in Wonderland.tid
Normal file
File diff suppressed because it is too large
Load Diff
@ -20,8 +20,10 @@
|
||||
"build": {
|
||||
"index": [
|
||||
"--savetiddlers","[tag[external-image]]","images",
|
||||
"--rendertiddlers","[tag[external-text]]","$:/core/templates/tid-tiddler","text","text/plain",".tid",
|
||||
"--setfield","[tag[external-image]]","_canonical_uri","$:/core/templates/canonical-uri-external-image","text/plain",
|
||||
"--setfield","[tag[external-image]]","text","","text/plain",
|
||||
"--setfield","[tag[external-text]]","_canonical_uri","$:/core/templates/canonical-uri-external-text","text/plain",
|
||||
"--setfield","[tag[external-image]] [tag[external-text]]","text","","text/plain",
|
||||
"--rendertiddler","$:/core/save/all","index.html","text/plain"],
|
||||
"encrypted": [
|
||||
"--password", "password",
|
||||
|
Loading…
Reference in New Issue
Block a user