Skip to content

Instantly share code, notes, and snippets.

View tameemsafi's full-sized avatar

Tameem Safi tameemsafi

View GitHub Profile
@tameemsafi
tameemsafi / wp-nav-menu-helper.php
Last active March 31, 2018 16:31
Custom wordpress navigation menu helper
<?php
/**
* Navigation Menu helper
*
* Helper to get menu items
*
* @author Tameem Safi <tameem@safi.me.uk>
* @version 1.0.0
*/
@tameemsafi
tameemsafi / get-assets.sh
Created March 21, 2018 15:31
Copy dvsa front-end assets into specific folder
#!/bin/bash
# Hide all output
# exec 1>/dev/null 2>/dev/null
# Set git version tag
version="1.1.20"
# Set github repo url
repoUrl="https://github.com/dvsa/front-end.git"
@tameemsafi
tameemsafi / html-ie-conditional-markup.html
Created January 30, 2018 11:50
HTML - IE conditional markup
<!DOCTYPE html>
<!--[if lte IE 8 ]><html class="lte-ie8" lang="en"><![endif]-->
<!--[if IE 9 ]><html class="ie9" lang="en"><![endif]-->
<!--[if (gt IE 9)|!(IE)]><!--><html class="" lang="en"><!--<![endif]-->
@tameemsafi
tameemsafi / gds-ie-specific-mixin.scss
Created January 30, 2018 11:48
GDS - IE Specific mixin
@mixin ie-lte($version) {
@if & {
.lte-ie#{$version} & {
@content;
}
} @else {
.lte-ie#{$version} {
@content;
}
}
@tameemsafi
tameemsafi / nunjucks-example-usage-of-button-macro.njk
Created January 30, 2018 11:33
Nunjucks - Example usage of button macro
{{ components.button(text='Save and continue') }}
@tameemsafi
tameemsafi / nunjucks-example-macro.njk
Created January 30, 2018 11:31
Nunjucks - Example macro
{% macro button(text='', url=false, start=false, disabled=false) %}
{% set disabledCode = 'disabled="disabled" aria-disabled="true"' %}
{% if url %}
<a class="button {{ 'button-start' if start }}" href="{{ url }}" role="button">{{ text }}</a>
{% else %}
<input class="button" type="submit" value="{{ text }}" {{ disabledCode if disabled }}>
{% endif %}
{% endmacro %}
@tameemsafi
tameemsafi / nunjucks-import-all-macros-into-a-global-variable.njk
Created January 30, 2018 11:27
Nunjucks - Import all macros into a global variable
{# Import macros for global use in all views #}
{% set components = {} %}
{% for component in macroFilePaths %}
{% import component as temp %}{% set macro = _.assign(components, temp) %}
{% endfor %}
{# end #}
@tameemsafi
tameemsafi / add-global-variables-to-nunjucks.js
Last active October 1, 2020 05:04
Adding global variables functions to nunjucks
// Create express server
const app = express();
// Create nunjucks fileloader instance for the views folder
const nunjucksFileLoader = new nunjucks.FileSystemLoader(path.resolve('/path/to/views/folder'), {
noCache: true,
});
// Create a nunjucks instance to be used for the view engine
// This instance can be used to add filters and globals
@tameemsafi
tameemsafi / generate-output-html-expressjs.js
Created December 4, 2017 12:49
Generate html output before rendering response with expressjs
function(err, html) {
let outputFolder = path.resolve('output');
// Check if folder does not exist
if ( !fs.existsSync(outputFolder) ) {
// Create folder
fs.mkdirSync(outputFolder);
}
// Write html output to file
@tameemsafi
tameemsafi / feedback-url-new-params.js
Last active November 29, 2017 16:33
Replace old feedback URL params with new params
(function(document) {
// Object to store new query params,
// the current ones will be replaced,
// new ones will be added to the url
var newParams = {
'recall-ui': '',
'lambda-return-code': '',
'recall-outcome': '',
'recall-outcome-detail': '',