Giter Site home page Giter Site logo

octoproject's Introduction


OctoProject logo
OctoProject

Browser extension that helps to work with multiple projects on GitHub

Chrome Web Store

Features

Adds the following features to GitHub:

  • merged project boards. Just create a new project board and in the description put URLs to your other project boards
  • "Copy snapshot" button that puts a text summary of the project to clipboard. You can make a new snapshot or an incremental update at the end of an existing snapshot.

Installing

You can install it for Chrome and Firefox.

Build Setup

# install dependencies
npm install

# build for production with minification
npm run build

After you build, you'll have a build directory with two sub-directories webextension and firefox. WebExtension folder can be used for every browser that supports WebExtension except Firefox, and you can use firefox directory with you-guessed-it browser.

Adding to browser

  • Chrome: You can add build/webextension folder as an unpacked extension by going to chrome://extensions/ and clicking "Load unpacked extension".
  • Firefox: You can add build/firefox folder as an unpacked extension by going to about:debugging#addons then clicking "Load Temporary Add-on" and selecting manifest.json file.
  • Opera: You can add build/webextension folder as an unpacked extension by clicking Menu (or press alt), then selecting "Extensions", then on the top-right corner select "Developer Mode" then "Load unpacked extension", then select the folder.

Easier development

You can run

npm install -g webpack
webpack -w

This will watch for file changes and compile again after every file modification you make. Then in the browser, you'll need to "Reload extension" after each modification. Each modification will take you ~2 seconds to see live. Easy enough.

Publishing

After you build, you'll need to zip the extension and upload it to the desired store.

To do

Write tests

octoproject's People

Contributors

warpech avatar

Watchers

 avatar  avatar  avatar

octoproject's Issues

Copy snapshot should have a prompt for a GitHub link

Copy snapshot should have a prompt for a GitHub link that contains a previous version of the snapshot. If provided, the resulting snapshot will be a diff between the snapshot and the current state.
If not provided, it will make a full snapshot.

window.initialSnapshot = '';

function makeProjectSnapshot() {
	let sb = [];
	const newLine = "\r\n";
	const title = document.querySelector("h3.d-flex.flex-items-center.f5");
	const cols = document.querySelectorAll("div.project-column");
	const date = new Date();

	sb.push("# ", title.innerText, " - ", date.getFullYear(), ".", (date.getMonth() + 1), ".", date.getDate(), newLine, newLine);

	for (let i = 0; i < cols.length; i++) {
		const col = cols[i];
		const title = col.querySelector("span.js-project-column-name").innerText;

		sb.push("### ", title);

		const issues = col.querySelectorAll("a.h5.d-block");

		sb.push(" (", issues.length, ")");
		sb.push(newLine, newLine);

		for (let j = 0; j < issues.length; j++) {
		  const issue = issues[j];
			if (window.initialSnapshot.indexOf(issue.href) > -1) {
				continue;
			}
			const url = issue.href;
			const name = escapeSpecialMarkdownChars(issue.innerText);

			sb.push("- [", name, "](", url, ")", newLine);
		}

		sb.push(newLine)
	}

	return sb.join("");
}

function escapeSpecialMarkdownChars (str) {
	str = str.replace(/</g, "&lt;");
	str = str.replace(/>/g, "&gt;");
	str = str.replace(/_/g, "\\_");
	return str;
}

makeProjectSnapshot()

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.