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) {
|
var WikiParser = function(type,text,options) {
|
||||||
this.wiki = options.wiki;
|
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
|
// Initialise the classes if we don't have them already
|
||||||
if(!this.pragmaRuleClasses) {
|
if(!this.pragmaRuleClasses) {
|
||||||
WikiParser.prototype.pragmaRuleClasses = $tw.modules.createClassesFromModules("wikirule","pragma",$tw.WikiRuleBase);
|
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
|
// Convert it by first removing any hyphens
|
||||||
var propertyName = $tw.utils.unHyphenateCss(styleName);
|
var propertyName = $tw.utils.unHyphenateCss(styleName);
|
||||||
// Then check if it needs a prefix
|
// 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"];
|
var prefixes = ["O","MS","Moz","webkit"];
|
||||||
for(var t=0; t<prefixes.length; t++) {
|
for(var t=0; t<prefixes.length; t++) {
|
||||||
var prefixedName = prefixes[t] + propertyName.substr(0,1).toUpperCase() + propertyName.substr(1);
|
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")) {
|
if(data && !$tw.utils.hop(headers,"Content-type")) {
|
||||||
request.setRequestHeader("Content-type","application/x-www-form-urlencoded; charset=UTF-8");
|
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;
|
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.
|
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
|
! Other Improvements
|
||||||
|
|
||||||
!! Translation 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": {
|
"build": {
|
||||||
"index": [
|
"index": [
|
||||||
"--savetiddlers","[tag[external-image]]","images",
|
"--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]]","_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"],
|
"--rendertiddler","$:/core/save/all","index.html","text/plain"],
|
||||||
"encrypted": [
|
"encrypted": [
|
||||||
"--password", "password",
|
"--password", "password",
|
||||||
|
Loading…
Reference in New Issue
Block a user