Skip to content

Instantly share code, notes, and snippets.

View hperrin's full-sized avatar

Hunter Perrin hperrin

View GitHub Profile
@hperrin
hperrin / nymphquery.js
Last active May 10, 2018 00:42
Example Nymph Query from Frontend
try {
const entities = await Nymph.getEntities(
{'class': BlogPost.class},
{'type': '&',
'like': ['title', '%easy%'],
'equal': ['archived', false]
}
);
console.log(entities);
} catch (e) {
@hperrin
hperrin / Slim.php
Last active May 9, 2018 01:05
PHP Slim archiving class. Slim is a portable file archive format based on JSON. It can be self extracting in multiple languages.
<?php
/**
* Slim archiving class.
*
* Slim is a portable file archive format based on JSON. It can be self
* extracting in multiple languages.
*
* @license https://www.apache.org/licenses/LICENSE-2.0
* @author Hunter Perrin <hperrin@gmail.com>
@hperrin
hperrin / Get caret Y position in HTML (WYSIWYG) editor from document origin.
Created February 5, 2014 18:54
This function will give the Y position of the text cursor (caret) when it is in a contenteditable element. This particular one only works on CKEDITOR.
var getCaretYPosition = function(){
var editor = CKEDITOR.instances.editor1, //get your CKEDITOR instance here
sel = editor.getSelection(), // text selection
obj = sel.getStartElement().$, // the element the selected text resides in
range = editor.getSelection().getRanges(), // range of selection
container = range[0].startContainer.$, // get the DOM node of the selected text, probably a textnode
textlen = typeof obj.textContent === "undefined" ? obj.innerText.length : obj.textContent.length, // get the length of the text in the container
offset = range[0].startOffset; // get the offset from the beginning of the text in the container to the caret
if (container.nodeType === 3) { // if the container is a text node
while (container.previousSibling) { // add the length of all the preceding text nodes and elements in the same parent element