Compare commits

..

16 Commits

Author SHA1 Message Date
e9b5a0be39 v1.0.6: update deps 2018-11-07 10:40:37 -07:00
23d867c36b v1.0.5: merge estranged v1.0.4 2018-11-07 10:37:38 -07:00
7a02a7fe49 v1.0.5: merge estranged v1.0.4 2018-11-07 10:34:59 -07:00
dd9d9732e8 v1.0.4: update links and license 2018-11-07 10:32:45 -07:00
AJ ONeal
f5c34ce532 bump 2015-01-31 00:41:41 -07:00
AJ ONeal
dc4ae437c6 add native desi view 2015-01-31 00:40:41 -07:00
AJ ONeal
0de6cc6f41 v1.0.2 2015-01-23 17:44:36 -07:00
AJ ONeal
332566a662 added view.url, data.host 2015-01-23 17:44:29 -07:00
AJ ONeal
f2ef8c6857 typo fix 2015-01-23 15:16:52 -07:00
AJ ONeal
08ae7f35f4 version bump 2015-01-23 15:16:33 -07:00
AJ ONeal
ef68b011e9 ignore node_modules 2015-01-23 15:16:20 -07:00
AJ ONeal
9821298f3d ignore bower_components 2015-01-23 15:16:02 -07:00
AJ ONeal
ef32ef512e fix for stylesheets.load 2015-01-23 15:15:10 -07:00
AJ ONeal
1494d764c1 fix base_path more thoroughly 2015-01-23 04:11:11 -07:00
AJ ONeal
d9d94013de handle stylesheets.load 2015-01-23 03:54:04 -07:00
AJ ONeal
8bb749c4a7 updated README, add versions stub 2015-01-15 22:35:29 -07:00
5 changed files with 90 additions and 23 deletions

3
.gitignore vendored
View File

@ -1,3 +1,6 @@
node_modules
bower_components
# Logs # Logs
logs logs
*.log *.log

View File

@ -1,2 +1,31 @@
# datamap-ruhoh # datamap-ruhoh
A ruhoh-compatible data mapper for desirae
A ruhoh-compatible data mapper for [desirae](http://dear.desi)
This mapper attempts to map both `ruhoh@1.0` (ruhoh-twitter)
and `ruhoh@2.6` (ruhoh-bootstrap-2) views onto the same object.
As it turns out, there don't seem to be any conflicts,
but if we find out there are, we can separate into two functions.
```bash
npm install --save desirae-datamap-ruhoh
bower install --save desirae-datamap-ruhoh
```
### browser
```javascript
Desirae.registerDataMapper('ruhoh', exports.DesiraeDatamapRuhoh);
Desirae.registerDataMapper('ruhoh@1.0', exports.DesiraeDatamapRuhoh);
Desirae.registerDataMapper('ruhoh@2.6', exports.DesiraeDatamapRuhoh);
```
### io.js / node.js
```javascript
Desirae.registerDataMapper('ruhoh', require('desirae-datamap-ruhoh').DesiraeDatamapRuhoh);
Desirae.registerDataMapper('ruhoh@1.0', require('desirae-datamap-ruhoh').DesiraeDatamapRuhoh);
Desirae.registerDataMapper('ruhoh@2.6', require('desirae-datamap-ruhoh').DesiraeDatamapRuhoh);
```

View File

@ -1,6 +1,6 @@
{ {
"name": "desirae-datamap-ruhoh", "name": "desirae-datamap-ruhoh",
"version": "1.0.0", "version": "1.0.2",
"homepage": "https://github.com/DearDesi/datamap-ruhoh", "homepage": "https://github.com/DearDesi/datamap-ruhoh",
"authors": [ "authors": [
"AJ ONeal <awesome@coolaj86.com>" "AJ ONeal <awesome@coolaj86.com>"

View File

@ -7,12 +7,39 @@
function map(view) { function map(view) {
var newview var newview
, analytics
, comments
, desi = {}
; ;
comments = view.site.disqus_shortname &&
Mustache.render(view.desi.partials.disqus, { disqus: {
shortname: view.site.disqus_shortname
, identifier: view.entity.disqus_identifier || undefined
, url: !view.entity.disqus_identifier && view.entity.disqus_url || undefined
}})
;
analytics = view.site.google_analytics_tracking_id &&
Mustache.render(view.desi.partials.google_analytics, { google_analytics: {
tracking_id: view.site.google_analytics_tracking_id
}})
;
Object.keys(view).forEach(function (key) {
desi[key] = view[key];
});
desi.desi = {};
Object.keys(view).forEach(function (key) {
desi.desi[key] = view[key];
});
newview = { newview = {
content: view.contents desi: desi
, content: view.contents
, page: { , page: {
title: view.entity.yml.title || view.site.title // in rt title: view.entity.yml.title || view.site.title // in rt
, filename: view.entity.name // in rt
, tagline: view.entity.yml.tagline // in rt , tagline: view.entity.yml.tagline // in rt
, description: view.entity.yml.description // in rt , description: view.entity.yml.description // in rt
, content: view.contents , content: view.contents
@ -24,6 +51,7 @@
, next: view.entities[view.entity_index + 1] , next: view.entities[view.entity_index + 1]
, previous: view.entities[view.entity_index - 1] , previous: view.entities[view.entity_index - 1]
, date: view.entity.year + '-' + view.entity.month + '-' + view.entity.day , date: view.entity.year + '-' + view.entity.month + '-' + view.entity.day
, url: view.entity.relative_link
// TODO , url: view.entities. // TODO , url: view.entities.
} }
, 'page?previous': view.entities[view.entity_index - 1] // ruhoh-twitter only , 'page?previous': view.entities[view.entity_index - 1] // ruhoh-twitter only
@ -34,9 +62,9 @@
, posts: { collated: view.desi.collated } , posts: { collated: view.desi.collated }
, urls: { , urls: {
base_url: view.env.base_url base_url: view.env.base_url
// /something -> good (leading slash) // /something/ -> good (leading and trailing slash)
// / -> bad (trailing slash) // / -> bad good (leading and trailing slash)
, base_path: view.env.base_path.replace(/^\/$/, '') , base_path: (view.env.base_path + '/').replace('//', '/')
} }
, data: { , data: {
author: { author: {
@ -44,20 +72,22 @@
, twitter: view.author.twitter , twitter: view.author.twitter
} }
, title: view.site.title , title: view.site.title
, host: view.env.base_url.replace(/^https?:\/\//, '')
} }
, stylesheets: { 'load': function () {
return function (text, render) {
// TODO pay attention to text of which styles to load?
// this is unescaped, right?
return render(view.desi.styles.join('\n'));
};
}}
, styles: view.desi.styles.join('\n') , styles: view.desi.styles.join('\n')
, assets: view.desi.styles.join('\n') // ruhoh-twitter , assets: view.desi.styles.join('\n') // ruhoh-twitter only
, comments: comments // ruhoh-twitter only
, analytics: analytics // ruhoh-twitter only
, widgets: { , widgets: {
comments: view.site.disqus_shortname && comments: comments
Mustache.render(view.desi.partials.disqus, { disqus: { , analytics: analytics
shortname: view.site.disqus_shortname
, identifier: view.entity.disqus_identifier || undefined
, url: !view.entity.disqus_identifier && view.entity.disqus_url || undefined
}})
, analytics: view.site.google_analytics_tracking_id &&
Mustache.render(view.desi.partials.google_analytics, { google_analytics: {
tracking_id: view.site.google_analytics_tracking_id
}})
, facebook_connect: view.desi.partials.facebook_connect , facebook_connect: view.desi.partials.facebook_connect
, twitter: view.desi.partials.twitter , twitter: view.desi.partials.twitter
, google_plusone: view.desi.partials.google_plusone , google_plusone: view.desi.partials.google_plusone
@ -87,5 +117,10 @@
return newview; return newview;
} }
// shoulda made this an object at the start... oops
map.ruhoh = map;
map['ruhoh@1.0'] = map;
map['ruhoh@2.6'] = map;
exports.DesiraeDatamapRuhoh = map.DesiraeDatamapRuhoh = map; exports.DesiraeDatamapRuhoh = map.DesiraeDatamapRuhoh = map;
}('undefined' !== typeof exports && exports || window)); }('undefined' !== typeof exports && exports || window));

View File

@ -1,6 +1,6 @@
{ {
"name": "desirae-datamap-ruhoh", "name": "desirae-datamap-ruhoh",
"version": "1.0.0", "version": "1.0.6",
"description": "A ruhoh datamap plugin for desirae", "description": "A ruhoh datamap plugin for desirae",
"main": "datamapper-ruhoh.js", "main": "datamapper-ruhoh.js",
"scripts": { "scripts": {
@ -8,7 +8,7 @@
}, },
"repository": { "repository": {
"type": "git", "type": "git",
"url": "https://github.com/DearDesi/datamap-ruhoh.git" "url": "https://git.coolaj86.com/coolaj86/desirae-datamap-ruhoh.js.git"
}, },
"keywords": [ "keywords": [
"ruhoh", "ruhoh",
@ -18,12 +18,12 @@
"datamap" "datamap"
], ],
"author": "AJ ONeal <coolaj86@gmail.com> (http://coolaj86.com/)", "author": "AJ ONeal <coolaj86@gmail.com> (http://coolaj86.com/)",
"license": "Apache2", "license": "(MIT OR ISC OR Apache-2.0)",
"bugs": { "bugs": {
"url": "https://github.com/DearDesi/datamap-ruhoh/issues" "url": "https://git.coolaj86.com/coolaj86/desirae-datamap-ruhoh.js/issues"
}, },
"homepage": "https://github.com/DearDesi/datamap-ruhoh", "homepage": "https://git.coolaj86.com/coolaj86/desirae-datamap-ruhoh.js",
"dependencies": { "dependencies": {
"mustache": "^1.0.0" "mustache": "^2.3.2"
} }
} }