Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
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
3 changes: 3 additions & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
src/**/*.css diff=css
src/**/*.html diff=html

Comment thread
kdidenko marked this conversation as resolved.
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1 +1,4 @@
.vscode/
.idea/
build/
node_modules/
71 changes: 71 additions & 0 deletions Gruntfile.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
/**
* A module that defines the configuration and registers both
* defaults and globals for the project's Grunt tasks
* @module tabsaver/grunt
* @author Kostyanntyn Didenko <kdidenko@ito-global.com>
* @since 1.2.0
*
* @todo: 1. define module:tabsaver.grunt.uglify tasks using `grunt-contrib-uglify` plug-in
* @todo: 2. define module:tabsaver.grunt.watch tasks using `grunt-contrib-watch` plug-in
* @todo: 3. define module:tabsaver.grunt.cssmin tasks using `grunt-contrib-cssmin` plug-in
* */

/**
* @function
* Creates the initial Grunt configuration, loads the rest of Grunt tasks
* and registeres Grunt's global tasks
*
* @param {IGrunt} grunt - instance itself
* @returns void
*/
module.exports = function (grunt) {
'use strict';

// init Grunt project configuration
grunt.initConfig({
/**
* @readonly
* read and store the project's metadata and settings
*/
package: grunt.file.readJSON('package.json'),
/**
* @readonly
* @enum enumerates main paths for current project
*/
paths: {
src: 'src/',
build: 'build/',
tests: 'test/',
grunt: {
file: 'Gruntfile.js',
tasks: 'grunt/'
}
},
/**
* @readonly
* @enum enumerates main matching globs for project files
*/
globs: {
js: {
flat: '*.js',
deep: '**/*.js'
}
}
});
/**
* @external
* load and marge external Grunt tasks into current configuration
*/
grunt.loadTasks(grunt.config('paths.grunt.tasks'));
/**
* @global
* register Grunt project global tasks
* @requires module:tabsaver.grunt.jshint
*/
grunt.registerTask('build', ['jshint-all']);
/**
* @default
* register Grunt project default task
*/
grunt.registerTask('default', ['build']);
};
17 changes: 13 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,9 +1,18 @@
# TabSaver v 1.1.14
# TabSaver v1.x.y

TabSaver is a simple and lightweight Google Chrome Extension for saving, synchronizing and restoring the list of opened tabs before closing the browser.
---
## Overview

Have you ever faced a mess of tabs in your browser? Do you want to browse a lot of information and at the same time not to spend much time organizing your browser tabs? TabSaver will help you!
**«TabSaver»** - is a simple and lightweight Google Chrome Extension for saving, synchronizing, and restoring user's browsing sessions before closing the browser in a form of simple list of opened tabs.

TabSaver - is an easy way to sort, select and save the list of opened browser tabs instantly. There’s no need to be annoyed with too many confusing tabs in Chrome. You can shut down the browser at any time and continue your navigation from anywhere - saved tabs will be simply re-opened. One click will save your minutes every day which you can use later in a better way.
>Have you ever faced a mess of tabs in your browser? Do you want to browse a lot of information and at the same time not to spend much time organizing your browser tabs? TabSaver will help you!

---
## Simple Functionality

Our browser extension - is an easiest way to sort, select and save the list of opened browser tabs instantly. There’s no need to be annoyed with too many confusing tabs in Chrome. You can shut down the browser at any time and continue your navigation from anywhere - saved tabs will be simply re-opened. One click will save your minutes every day which you can use later in a better way.

---
## FOSS "Forever Free" Approach

Designed by a group of Free Open Source Software enthusiasts, with a simple and user-friendly interface in mind, making it extremely easy to save your browsing sessions by converting all your opened tabs into the synchronizable list with just one click. Now, it is easy to work with a lot of information in a browser without worry about its persistence.
70 changes: 70 additions & 0 deletions grunt/jshint.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
/**
* A module that defines Grunt's JSHint linting task configuration
* @module tabsaver/grunt/jshint
* @author Kostyanntyn Didenko <kdidenko@ito-global.com>
* @since version 1.2.0
*/

/**
* @function
* When executed, loads the JSHint Grunt task plug-in, defines its configuration
* and registers it as a Grunt's global task
*
* @param {IGrunt} grunt - instance itself
* @returns void
*/
module.exports = function (grunt) {
'use strict';

// load the JSHint plug-in
grunt.loadNpmTasks('grunt-contrib-jshint');
// define the JSHint task configuration
grunt.config('jshint', {
// task-level linting options for JSHint
options: {
reporter: require('jshint-stylish'), // let's do it with style ;)
esversion: 6
},
/** @exports jshint:grunt */
grunt: {
/**
* @override
* target-level options overrides
*/
options: {
force: true,
node: true
},
src: [
'<%= paths.grunt.file %>',
'<%= paths.grunt.tasks %><%= globs.js.deep %>'
]
},
/** @exports jshint:tests */
tests: {
/**
* @override
* target-level options overrides
*/
options: {
force: true,
node: true
},
src: ['<%= paths.tests %><%= globs.js.deep %>']
},
/** @exports jshint:build */
build: {
/**
* @override
* target-level options overrides
*/
options: { force: false },
src: ['<%= paths.src %><%= globs.js.deep %>']
}
});
/**
* @global
* register additional `jshint-all` task for current module
*/
grunt.registerTask('jshint-all', ['jshint:grunt', 'jshint:tests', 'jshint:build']);
};
41 changes: 0 additions & 41 deletions manifest.json

This file was deleted.

Loading