Skip to content

Instantly share code, notes, and snippets.

View trevorparscal's full-sized avatar

Trevor Parscal trevorparscal

View GitHub Profile
@trevorparscal
trevorparscal / TransplantStyles.js
Last active August 29, 2015 14:14
Transplant the CSS styles from as parent document to a frame's document
View TransplantStyles.js
/**
* Transplant the CSS styles from as parent document to a frame's document.
*
* This loops over the style sheets in the parent document, and copies their nodes to the
* frame's document. It then polls the document to see when all styles have loaded, and once they
* have, resolves the promise.
*
* If the styles still haven't loaded after a long time (5 seconds by default), we give up waiting
* and resolve the promise anyway. This protects against cases like a display: none; iframe in
* Firefox, where the styles won't load until the iframe becomes visible.
@trevorparscal
trevorparscal / example.js
Last active August 29, 2015 14:10
Promisification utilities for OOjs UI
View example.js
// Sycnhronous before
MyClass.prototype.doSomething = function () {
// do something synchronously after parent method that may or may not return a promise
this.test = 1;
return OO.ui.promisify( MyClass.super.prototype.doSomething ).call( this );
};
// Sycnhronous after
MyClass.prototype.doSomething = function () {
return OO.ui.promisify( MyClass.super.prototype.doSomething ).call( this ).then( function () {
View spec.php
<?php array(
'help' => 'help.svg',
'next' => array(
'image' => array(
'ltr' => 'next.svg',
'rtl' => 'prev.svg'
),
),
'list' => array(
'image' => array(
View update-class-names-mmv.sh
# Execute this in the root of the mmv repo
# Find and replace script symbols
find resources/mmv -name \*.js -exec sed -i '' \
-e 's/TextInputMenuWidget/TextInputMenuSelectWidget/g' \
-e 's/MenuWidget/MenuSelectWidget/g' \
-e 's/MenuItemWidget/MenuOptionWidget/g' \
-e 's/MenuSectionItemWidget/MenuSectionOptionWidget/g' \
-e 's/OutlineWidget/OutlineSelectWidget/g' \
-e 's/OutlineItemWidget/OutlineOptionWidget/g' \
View update-class-names-ve-mw.sh
# Execute this in the root of the ve mw repo
# Find and replace script symbols
find modules -name \*.js -exec sed -i '' \
-e 's/MWInternalLinkMenuItemWidget/MWInternalLinkMenuOptionWidget/g' \
-e 's/MWLinkMenuItemWidget/MWLinkMenuOptionWidget/g' \
-e 's/ContextMenuWidget/ContextSelectWidget/g' \
-e 's/ContextItemWidget/ContextOptionWidget/g' \
-e 's/TextInputMenuWidget/TextInputMenuSelectWidget/g' \
-e 's/MenuWidget/MenuSelectWidget/g' \
View update-class-names-ve.sh
# Execute this in the root of the ve repo
# Find and replace script symbols
find . -name \*.js -exec sed -i '' \
-e 's/ContextMenuWidget/ContextSelectWidget/g' \
-e 's/ContextItemWidget/ContextOptionWidget/g' \
-e 's/TextInputMenuWidget/TextInputMenuSelectWidget/g' \
-e 's/MenuWidget/MenuSelectWidget/g' \
-e 's/MenuItemWidget/MenuOptionWidget/g' \
-e 's/MenuSectionItemWidget/MenuSectionOptionWidget/g' \
View update-class-names.sh
# Execute this in the root of the oojs-ui repo
# Find and replace script symbols
find . -name \*.js -exec sed -i '' \
-e 's/TextInputMenuWidget/TextInputMenuSelectWidget/g' \
-e 's/MenuWidget/MenuSelectWidget/g' \
-e 's/MenuItemWidget/MenuOptionWidget/g' \
-e 's/MenuSectionItemWidget/MenuSectionOptionWidget/g' \
-e 's/OutlineWidget/OutlineSelectWidget/g' \
-e 's/OutlineItemWidget/OutlineOptionWidget/g' \
View gist:0cf898f169ed3ec4a8fb
// Override mixins
@useInvertedIcons() {
&:extend(.oo-ui-icon-foo-inverted);
&:extend(.oo-ui-icon-bar-inverted);
// ...and more for each icon...
}
// ...and more for each version (normal, inverted, constructive, destructive, progressive)...
// Icon definitions
.oo-ui-icon-foo { foo.png; }
View Sync OOJS
function sync() {
if [ "$1" = "oo" ] ; then
oo
grunt
# Copy to OOJS UI
ooui
cp ~/Sites/oojs/core/dist/oojs.js lib/oojs.js
cd -
@trevorparscal
trevorparscal / gist:9495342
Created March 11, 2014 21:20
Example data for configuring citation tools.
View gist:9495342
var tools = [
{ 'name': 'web', 'icon': 'cite-web', 'template': 'Cite web', 'title': 'Web site' },
{ 'name': 'book', 'icon': 'cite-book', 'template': 'Cite book', 'title': 'Book' },
{ 'name': 'news', 'icon': 'cite-news', 'template': 'Cite news', 'title': 'News' },
{ 'name': 'journal', 'icon': 'cite-journal', 'template': 'Cite journal', 'title': 'Journal' }
];