1
0
mirror of https://github.com/Jermolene/TiddlyWiki5 synced 2024-11-20 08:44:52 +00:00
TiddlyWiki5/core/modules/tiddler.js

71 lines
1.6 KiB
JavaScript
Raw Normal View History

/*\
title: $:/core/modules/tiddler.js
type: application/javascript
module-type: tiddlermethod
Extension methods for the $tw.Tiddler object (constructor and methods required at boot time are in boot/boot.js)
\*/
(function(){
2012-05-04 17:49:04 +00:00
/*jslint node: true, browser: true */
/*global $tw: false */
"use strict";
exports.hasTag = function(tag) {
return this.fields.tags && this.fields.tags.indexOf(tag) !== -1;
};
exports.isPlugin = function() {
return this.fields.type === "application/json" && this.hasField("plugin-type");
2014-06-23 07:09:59 +00:00
};
2013-04-29 11:05:58 +00:00
exports.isDraft = function() {
return this.hasField("draft.of");
};
/*
Get the value of a field as a list
*/
exports.getFieldList = function(field) {
var value = this.fields[field];
// Check for a missing field
if(value === undefined || value === null) {
return [];
}
return $tw.utils.parseStringArray(value);
};
/*
Get all the fields as a name:value block. Options:
exclude: an array of field names to exclude
*/
exports.getFieldStringBlock = function(options) {
options = options || {};
var exclude = options.exclude || [],
fields = Object.keys(this.fields).sort(),
result = [];
for(var t=0; t<fields.length; t++) {
var field = fields[t];
if(exclude.indexOf(field) === -1) {
result.push(field + ": " + this.getFieldString(field));
}
}
return result.join("\n");
};
exports.getFieldDay = function(field) {
if(this.cache && this.cache.day && $tw.utils.hop(this.cache.day,field) ) {
return this.cache.day[field];
}
var day = "";
if(this.fields[field]) {
day = (new Date($tw.utils.parseDate(this.fields[field]))).setHours(0,0,0,0);
}
this.cache.day = this.cache.day || {};
this.cache.day[field] = day;
return day;
};
})();