Преглед на файлове

Save posts locally with title/summary metadata

tags/v1.3
Matt Baer преди 8 години
родител
ревизия
30972cd532
променени са 3 файла, в които са добавени 63 реда и са изтрити 22 реда
  1. +61
    -0
      H.js
  2. +1
    -2
      context.js
  3. +1
    -20
      popup.js

+ 61
- 0
H.js Целия файл

@@ -15,4 +15,65 @@ var H = {
}
return val;
},
createPost: function(id, editToken, content) {
var summaryLen = 200;
var titleLen = 80;
var getPostMeta = function(content) {
var eol = content.indexOf("\n");
if (content.indexOf("# ") === 0) {
// Title is in the format:
//
// # Some title
var summary = content.substring(eol).trim();
if (summary.length > summaryLen) {
summary = summary.substring(0, summaryLen) + "...";
}
return {
title: content.substring("# ".length, eol),
summary: summary,
};
}

var blankLine = content.indexOf("\n\n");
if (blankLine !== -1 && blankLine <= eol && blankLine <= titleLen) {
// Title is in the format:
//
// Some title
//
// The body starts after that blank line above it.
var summary = content.substring(blankLine).trim();
if (summary.length > summaryLen) {
summary = summary.substring(0, summaryLen) + "...";
}
return {
title: content.substring(0, blankLine),
summary: summary,
};
}

var title = content.trim();
var summary = "";
if (title.length > titleLen) {
// Content can't fit in the title, so figure out the summary
summary = title;
title = "";
if (summary.length > summaryLen) {
summary = summary.substring(0, summaryLen) + "...";
}
} else if (eol > 0) {
title = title.substring(0, eol);
}
return {
title: title,
summary: summary
};
};
var post = getPostMeta(content);
post.id = id;
post.token = editToken;
post.created = new Date();
return post;
},
};

+ 1
- 2
context.js Целия файл

@@ -20,7 +20,7 @@ function publish(content, font) {
// Save the data
posts = JSON.parse(H.get('posts', '[]'));
posts.push({id: id, token: editToken});
posts.push(H.createPost(id, editToken, content));
H.set('posts', JSON.stringify(posts));
// Launch post
@@ -62,4 +62,3 @@ chrome.contextMenus.create({"title": "Publish code", "contexts": ["selection", "
});
}
});


+ 1
- 20
popup.js Целия файл

@@ -46,7 +46,7 @@ function publish(content, font) {

// Save the data
posts = JSON.parse(H.get('posts', '[]'));
posts.push({id: id, token: editToken});
posts.push(H.createPost(id, editToken, content));
H.set('posts', JSON.stringify(posts));
} else {
alert("Failed to post. Please try again.");
@@ -56,25 +56,6 @@ function publish(content, font) {
http.send(params);
}

var H = {
save: function($el, key) {
this.set(key, $el.value);
},
load: function($el, key) {
$el.value = this.get(key, "");
},
set: function(key, value) {
localStorage.setItem(key, value);
},
get: function(key, defaultValue) {
var val = localStorage.getItem(key);
if (val == null) {
val = defaultValue;
}
return val;
},
};

document.addEventListener('DOMContentLoaded', function() {
$content = document.getElementById("content");
$publish = document.getElementById("publish");


Зареждане…
Отказ
Запис