Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
71 commits
Select commit Hold shift + click to select a range
27e5053
Update readme with link to demo
kswedberg Mar 23, 2015
d353eea
Remove moot `version` property from bower.json
kkirsche Jun 12, 2015
2864923
Merge pull request #76 from kkirsche/patch-1
kswedberg Jun 13, 2015
806bdb8
Remove bower.json from list of files to be revved on grunt version
kswedberg Jun 13, 2015
041962a
Add a few tests (finally). Many more needed.
kswedberg Sep 8, 2015
f2b800c
Remove smooth-scroll.jquery.json. No longer used.
kswedberg Sep 8, 2015
6478c43
Add check for `document.scrollingElement`
kswedberg Sep 8, 2015
ba978e1
Bower is dead. Long live npm.
kswedberg Nov 15, 2015
adcccaa
Ensure variable [scrollDir]() is used, not scrollTop(). Use Math.ab()…
koenpunt Dec 16, 2015
e381940
Release 1.5.7
kswedberg Dec 16, 2015
9f34a80
Add optional support for event delegation
koenpunt Dec 22, 2015
dfe6c9e
Update docs and minor bump
kswedberg Dec 22, 2015
6568da7
Request window location on every click.
koenpunt Dec 26, 2015
f077aa1
Update grunt plugins and bump version.
kswedberg Dec 26, 2015
0d48ac7
Add grunt-jscs task
kswedberg Jan 16, 2016
d28ff55
Lint files with both jshint and jscs.
kswedberg Jan 16, 2016
b4288d0
Add contributing guidelines
kswedberg Jan 16, 2016
a7cadd3
Add devel: true to jshint options
kswedberg Jan 16, 2016
0987f08
Make plugin work in Firefox when CSS has `html {scroll-behavior: smoo…
kswedberg Jan 16, 2016
6bb5c2d
Update demos
kswedberg Jan 16, 2016
3064e26
Fix uglifying.
kswedberg Jan 16, 2016
bf6705f
Build and bump to 1.6.2.
kswedberg Jan 16, 2016
c768fee
Put Bower support (bower.json) back in. Fixes #91
kswedberg Jan 18, 2016
6902687
Fix version from bad tag
kswedberg Jan 18, 2016
b192367
Bump for bower support and bad tag fix
kswedberg Jan 18, 2016
b37f577
Ensure links to nonexistent elements don't trigger scroll. Fixes #92.
kswedberg Jan 23, 2016
baa0e68
Add link to nonexistent element to demo and tests for avoiding scroll…
kswedberg Jan 23, 2016
cfb4c29
Gruntfile: fix grunt-version config so everything gets correct version.
kswedberg Jan 23, 2016
7c32726
Build and bump to 1.7.2.
kswedberg Jan 25, 2016
f0de324
Update readme with a couple examples
kswedberg Mar 20, 2016
bf3b07c
Documentation and demo updates.
kswedberg Jul 31, 2016
6d865c0
Update event methods from bind/delegate to on
kswedberg Jul 31, 2016
ab98c96
Bump to 2.0
kswedberg Jul 31, 2016
7017931
Update jQuery dependency and fix bower.json building in Gruntfile.js
kswedberg Sep 7, 2016
80e9fc7
Bump to 2.0.1
kswedberg Sep 7, 2016
91e3fa0
Add relative scroll feature
kswedberg Jan 1, 2017
fc48ff1
Tests for relative scroll feature
kswedberg Jan 1, 2017
cced664
Add relative scroll to demo and general demo cleanup
kswedberg Jan 1, 2017
0ded196
Release 2.1.0
kswedberg Jan 1, 2017
8cc29da
Build and bump to 2.1.1
kswedberg Jan 1, 2017
d3e8aa9
Update docs to include relative scrolling
kswedberg Jan 1, 2017
db02ef1
Tweak readme
kswedberg Jan 1, 2017
be5bc55
Add link from demo to repo
kswedberg Jan 1, 2017
6905213
Demo css tweak
kswedberg Jan 1, 2017
9090002
Remove console.log. Thanks, @Daijobou!
kswedberg Jan 19, 2017
1136a50
Build and patch increment
kswedberg Jan 19, 2017
f6c15d9
Update Grunt & its plugins. Switch to eslint
kswedberg May 5, 2017
ee541b6
Lint tests.js
kswedberg May 5, 2017
d73ec93
Grunt lint: fix: true
kswedberg May 5, 2017
8a981b4
Add autoFocus option
kswedberg May 5, 2017
6365a12
Update readme and tests for autoFocus
kswedberg May 5, 2017
e73a51d
Build and bump to 2.2
kswedberg May 5, 2017
f040c54
Update readme
kswedberg May 10, 2017
965affd
Add note about not using body by itself for scrollElement option
kswedberg Oct 8, 2017
d7df558
Lint readme.md and add .nvmrc
kswedberg Jan 13, 2020
3948290
Add note in readme about document.scrollingElement use. Closes #108
kswedberg Jan 13, 2020
c03648a
Update readme.md
yc-codes May 16, 2020
e8f8ab9
Merge pull request #114 from yc9274/patch-1
kswedberg Jul 9, 2020
6921aa0
Update readme with setup using CDN and grabbing standard or minified …
kswedberg Jul 9, 2020
5c99999
Update dependencies and fix a test
kswedberg Aug 30, 2022
81de13c
Lint js files
kswedberg Aug 29, 2023
2f99051
Update packages
kswedberg Aug 29, 2023
03ce9b7
Bump node version in .nvmrc
kswedberg Aug 29, 2023
641f46c
Update grunt-version
kswedberg Aug 29, 2023
5b52bcd
Move jquery dependency to devDependencies and update to latest 3.x.x
kswedberg Jan 2, 2024
1f98389
Bump braces from 3.0.2 to 3.0.3
dependabot[bot] Jul 23, 2024
2b9ed55
Merge pull request #118 from kswedberg/dependabot/npm_and_yarn/braces…
kswedberg Jul 23, 2024
c35c0a7
Bump micromatch from 4.0.5 to 4.0.8
dependabot[bot] Sep 25, 2024
67f2e89
Merge pull request #120 from kswedberg/dependabot/npm_and_yarn/microm…
kswedberg Sep 25, 2024
beeb7ea
Bump cross-spawn from 7.0.3 to 7.0.6
dependabot[bot] Dec 10, 2024
7efe954
Merge pull request #121 from kswedberg/dependabot/npm_and_yarn/cross-…
kswedberg Dec 10, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions .eslintrc.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
module.exports = {
extends: 'kswedberg/es5',
rules: {
'comma-dangle': ['warn', 'never']
}
};
88 changes: 88 additions & 0 deletions .jscsrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,88 @@
{
"requireCurlyBraces": [
"if",
"else",
"for",
"while",
"do",
"try",
"catch"
],
"requireSpaceAfterKeywords": [
"if",
"else",
"for",
"while",
"do",
"switch",
"case",
"return",
"try",
"catch",
"typeof"
],
"requireSpaceBeforeBlockStatements": true,
"requireParenthesesAroundIIFE": true,
"requireSpacesInConditionalExpression": true,
"disallowSpacesInNamedFunctionExpression": {
"beforeOpeningRoundBrace": true
},
"disallowSpacesInFunctionDeclaration": {
"beforeOpeningRoundBrace": true
},
"requireSpaceBetweenArguments": true,
"requireBlocksOnNewline": true,
"disallowEmptyBlocks": true,
"disallowSpacesInsideArrayBrackets": true,
"disallowSpacesInsideParentheses": true,
"disallowDanglingUnderscores": true,
"requireCommaBeforeLineBreak": true,
"disallowSpacesInCallExpression": true,
"disallowSpaceAfterPrefixUnaryOperators": true,
"disallowSpaceBeforePostfixUnaryOperators": true,
"disallowSpaceBeforeBinaryOperators": [
","
],
"requireSpacesInForStatement": true,
"requireSpaceBeforeBinaryOperators": true,
"requireSpaceAfterBinaryOperators": true,
"disallowKeywords": [
"with"
],
"disallowMixedSpacesAndTabs": true,
"disallowTrailingWhitespace": true,
"disallowKeywordsOnNewLine": [
"else"
],
"requireLineFeedAtFileEnd": true,
"requireCapitalizedConstructors": true,
"requireDotNotation": true,
"disallowNewlineBeforeBlockStatements": true,
"disallowMultipleLineStrings": true,
"requireSpaceBeforeObjectValues": true,
"validateQuoteMarks": "'",
"requireSpaceAfterLineComment": true,
"validateIndentation": 2,
"validateLineBreaks": "LF",
"disallowSpacesInFunction": {
"beforeOpeningRoundBrace": true
},
"requireSpacesInFunction": {
"beforeOpeningCurlyBrace": true
},
"disallowMultipleLineBreaks": true,
"disallowYodaConditions": true,
"disallowFunctionDeclarations": true,
"disallowMultipleVarDecl": "exceptUndefined",
"requirePaddingNewlinesBeforeKeywords": [
"do",
"for",
"if",
"switch",
"try",
"void",
"while",
"return"
],
"excludeFiles": ["**/node_modules/**", "**/min/**", "**/*.min.js"]
}
1 change: 1 addition & 0 deletions .nvmrc
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
16
126 changes: 58 additions & 68 deletions Gruntfile.js
Original file line number Diff line number Diff line change
@@ -1,38 +1,33 @@
/*global module:false*/

module.exports = function(grunt) {

var pkg = grunt.file.readJSON('package.json');
var marked = require('marked');
var hl = require('node-syntaxhighlighter');

marked.setOptions({
highlight: function(code, lang) {
lang = lang || 'javascript';
lang = hl.getLanguage(lang);
var language = hl.getLanguage(lang || 'javascript');

return hl.highlight(code, lang);
return hl.highlight(code, language);
},
gfm: true
});

// Project configuration.
grunt.initConfig({
pluginName: 'smooth-scroll',
bower: './bower.json',
pkg: grunt.file.readJSON('package.json'),
pkg: pkg,
meta: {
banner: '/*!<%= "\\n" %>' +
' * <%= pkg.title %> - v<%= pkg.version %> - ' +
'<%= grunt.template.today("yyyy-mm-dd") + "\\n" %>' +
'<%= pkg.homepage ? " * " + pkg.homepage + "\\n" : "" %>' +
' * Copyright (c) <%= grunt.template.today("yyyy") %> <%= pkg.author.name %>' +
'<%= "\\n" %>' +
' * Licensed <%= _.pluck(pkg.licenses, "type").join(", ") %>' +
' (<%= _.pluck(pkg.licenses, "url").join(", ") %>)' +
' * Licensed <%= pkg.license %>' +
'<%= "\\n" %>' + ' */' +
'<%= "\\n\\n" %>'
},
concat: {
concat: {
all: {
src: ['src/jquery.<%= pluginName %>.js'],
dest: 'jquery.<%= pluginName %>.js'
Expand All @@ -41,14 +36,14 @@ module.exports = function(grunt) {
stripBanners: true,
banner: '<%= meta.banner %>',
process: function(src) {
var umdHead = grunt.file.read('lib/tmpl/umdhead.tpl'),
umdFoot = grunt.file.read('lib/tmpl/umdfoot.tpl');
var umdHead = grunt.file.read('lib/tmpl/umdhead.tpl');
var umdFoot = grunt.file.read('lib/tmpl/umdfoot.tpl');

src = src
var ret = src
.replace('(function($) {', umdHead)
.replace('})(jQuery);', umdFoot);

return src;
return ret;
}
}
},
Expand All @@ -58,7 +53,8 @@ module.exports = function(grunt) {
'jquery.<%= pluginName %>.min.js': ['<%= concat.all.dest %>']
},
options: {
preserveComments: 'some'
banner: '<%= meta.banner %>'
// preserveComments: /\/\*[\s\S]*/
}
}
},
Expand All @@ -77,6 +73,7 @@ module.exports = function(grunt) {
all: ['Gruntfile.js', 'src/**/*.js'],
options: {
curly: true,
devel: true,
eqeqeq: true,
unused: true,
immed: true,
Expand All @@ -94,78 +91,71 @@ module.exports = function(grunt) {
}
}
},
eslint: {
target: ['Gruntfile.js', 'src/**/*.js', 'test/**/*.js'],
options: {
fix: true
// configFile: '.eslintrc.js',
}
},
version: {
patch: {
src: {
src: ['src/jquery.<%= pluginName %>.js']
},
banners: {
pkg: pkg,
src: [
'package.json',
'<%= pluginName %>.jquery.json',
'bower.json',
'src/jquery.<%= pluginName %>.js',
'jquery.<%= pluginName %>.js'
'jquery.<%= pluginName %>.js',
'jquery.<%= pluginName %>.min.js'
],
options: {
release: 'patch'
prefix: '- v'
}
},
same: {
src: ['package.json', 'src/jquery.<%= pluginName %>.js', 'jquery.<%= pluginName %>.js']
},
bannerPatch: {
src: ['jquery.<%= pluginName %>.js'],
options: {
prefix: '- v',
release: 'patch'
}
package: {
src: ['package.json']
}
}
});

grunt.registerTask( 'configs', 'Update json configs based on package.json', function() {
var pkg = grunt.file.readJSON('package.json'),
pkgBasename = grunt.config('pluginName'),
bowerFile = grunt.config('bower'),
bower = grunt.file.readJSON(bowerFile),
jqConfigFile = pkgBasename + '.jquery.json',
jqConfig = grunt.file.readJSON(jqConfigFile);

['main', 'version', 'dependencies', 'keywords'].forEach(function(el) {
bower[el] = pkg[el];
jqConfig[el] = pkg[el];
});

['author', 'repository', 'homepage', 'docs', 'bugs', 'demo', 'licenses'].forEach(function(el) {
jqConfig[el] = pkg[el];
});
grunt.registerTask('docs', 'Convert readme.md to html and concat with header and footer for index.html', function() {
var readme = grunt.file.read('readme.md');
var head = grunt.template.process(grunt.file.read('lib/tmpl/header.tpl'));
var foot = grunt.file.read('lib/tmpl/footer.tpl');
var doc = marked(readme);

jqConfig.keywords.shift();
grunt.file.write('index.html', head + doc + foot);
});

jqConfig.name = pkgBasename;
bower.name = 'jquery-' + pkgBasename;
grunt.registerTask('updateBower', 'Update bower.json to match package.json', function() {
var pkg = require('./package.json');
var props = ['name', 'main', 'homepage', 'version', 'repository', 'dependencies', 'keywords', 'license'];
var json = {
description: 'Easy implementation of smooth scrolling for same-page links'
};

grunt.file.write( bowerFile, JSON.stringify(bower, null, 2) + '\n');
grunt.log.writeln( 'File "' + bowerFile + '" updated."' );
props.forEach(function(item) {
if (pkg[item]) {
json[item] = pkg[item];
}
});

while ( /jquery/i.test(jqConfig.keywords[0]) ) {
jqConfig.keywords.shift();
}
json.authors = [pkg.author];
json.moduleType = ['amd', 'node'];
json.ignore = ['demo/', 'lib/', 'src/', 'test/', '**/.*', 'Gruntfile.js', 'package.json'];

grunt.file.write( jqConfigFile, JSON.stringify(jqConfig, null, 2) + '\n');
grunt.log.writeln( 'File "' + jqConfigFile + '" updated."' );
grunt.file.write('bower.json', JSON.stringify(json, null, 2));
});

grunt.registerTask('docs', 'Convert readme.md to html and concat with header and footer for index.html', function() {
var readme = grunt.file.read('readme.md'),
head = grunt.template.process( grunt.file.read('lib/tmpl/header.tpl') ),
foot = grunt.file.read('lib/tmpl/footer.tpl'),
doc = marked(readme);
grunt.registerTask('lint', ['eslint']);
grunt.registerTask('build', ['lint', 'concat', 'version', 'updateBower', 'uglify', 'docs']);
grunt.registerTask('default', ['build']);

grunt.file.write('index.html', head + doc + foot);
['patch', 'minor', 'major'].forEach(function(release) {
grunt.registerTask(release, ['lint', 'version:src:' + release, 'concat', 'uglify', 'version:banners:' + release, 'version:package:' + release, 'updateBower']);
});

grunt.registerTask('build', ['jshint', 'concat', 'version:same', 'configs', 'uglify', 'docs']);
grunt.registerTask('patch', ['jshint', 'concat', 'version:bannerPatch', 'version:patch', 'configs', 'uglify']);
grunt.registerTask('default', ['build']);

grunt.loadNpmTasks('grunt-eslint');
grunt.loadNpmTasks('grunt-contrib-jshint');
grunt.loadNpmTasks('grunt-contrib-uglify');
grunt.loadNpmTasks('grunt-contrib-concat');
Expand Down
42 changes: 31 additions & 11 deletions bower.json
Original file line number Diff line number Diff line change
@@ -1,21 +1,41 @@
{
"description": "Easy implementation of smooth scrolling for same-page links",
"name": "jquery-smooth-scroll",
"version": "1.5.5",
"main": "jquery.smooth-scroll.js",
"homepage": "https://github.com/kswedberg/jquery-smooth-scroll",
"version": "2.2.0",
"repository": {
"type": "git",
"url": "https://github.com/kswedberg/jquery-smooth-scroll"
},
"dependencies": {
"jquery": ">=1.3"
"jquery": ">=1.7.0"
},
"main": "jquery.smooth-scroll.js",
"keywords": [
"jQuery",
"jquery-plugin",
"scroll",
"animation"
],
"license": "MIT",
"authors": [
{
"name": "Karl Swedberg",
"email": "kswedberg@gmail.com",
"url": "https://karlswedberg.com/"
}
],
"moduleType": [
"amd",
"node"
],
"ignore": [
"demo/",
"lib/",
"src/",
"test/",
"**/.*",
"Gruntfile.js",
"package.json",
"smooth-scroll.jquery.json"
],
"keywords": [
"jquery-plugin",
"scroll",
"animation"
"package.json"
]
}
}
Loading