Git Product home page Git Product logo

octolinker / octolinker Goto Github PK

View Code? Open in Web Editor NEW
5.2K 92.0 280.0 66 MB

OctoLinker — Links together, what belongs together

Home Page: https://octolinker.vercel.app

License: MIT License

JavaScript 13.44% CSS 0.18% Shell 0.08% HTML 85.62% Dockerfile 0.03% Java 0.03% Go 0.04% Ruby 0.01% Svelte 0.04% Less 0.04% PHP 0.06% R 0.04% Swift 0.17% Python 0.18% Solidity 0.04%
github productivity octolinker github-extension browser-extension hacktoberfest

octolinker's Introduction

What is OctoLinker?

OctoLinker is a browser extension for GitHub, that turns language-specific statements like include require or import into links.

Install

Trusted by over 30,000 developers! Install OctoLinker from Chrome Web Store, Mozilla Add-ons Store, Mac App Store, Microsoft Store and Opera Add-ons Store.

Special thanks to

Sponsors

▲ Vercel Memetria complex

I am truly grateful to all the wonderful humans and companies supporting the development of OctoLinker. Please consider donations through GitHub Sponsors or Open Collective – Thank you 🙇‍♂️

Privacy Policy

Our Privacy Policy describes our practices related to the use, storage and disclosure of information we collect when you're using our service.

Related

Disclaimer

OctoLinker is not affiliated with, sponsored by, or endorsed by GitHub Inc.

Copyright (c) 2014–present Stefan Buck and other contributors.

octolinker's People

Contributors

agudulin avatar arkni avatar auto-merge-app[bot] avatar barryvdh avatar bildja avatar broud avatar dannyfritz avatar deecewan avatar dependabot-preview[bot] avatar dependabot[bot] avatar dpeukert avatar edavidaja avatar flaxxas avatar fregante avatar jamestalmage avatar jmcmahon443 avatar josephfrazier avatar kfigiela avatar kidonng avatar leomoty avatar lucaperret avatar marktiedemann avatar matthewdg avatar mii9000 avatar morganj avatar olsh avatar stefanbuck avatar tehshrike avatar vinmaster avatar xt0rted avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

octolinker's Issues

Add CoffeeScript support

Require statements in a .coffescrript file should also clickable.

request = require 'request'

Lazy/pre-load

Since the changes is loading it on request, using the API. we can't directly see the link anymore on hover.

Perhaps a few possibilities:

  • When the document has loaded, request all the packages
  • Load the link on hover, instead of click.

Although the first option would dramatically increase the API requests. Could partially be overcome by using some local cache with recent items?

Incorrect linking in JS markdown codeblocks

The plugin is trying to resolve every string in JS markdown codeblocks as a module.

An example of this can be seen in the README for the gulp-htmlbars repo, the plugin is trying to resolve every string in the gulpfile.js codeblock as a module, even paths.

image

image

Opening in new tab

Hello, thanks for the great extension. What about opening package in new tab on middle mouse click?

Support for PHP imports

I'm not sure this is doable, but bear with me. Currently in JS files, Github Linker will autolink requires that are in the same repository:

require('./../foobar.js'); // Will be autolinked

Would it be in any way possible to provide the same kind of features for PHP uses, when you have per example:

src/Foobar/SomeClass.php

namespace Foobar;

use Foobar\Bar\Baz; // autolink to src/Foobar/Bar/Baz.php

class SomeClass {}

Most repositories nowadays follow some sort of autoloading standard so namespaces/class names share a 1:1 relation with the folder structure. If not it can be read in the composer.json autoload directive:

"autoload": {
  "psr-4": {
    "Foobar\\": "src"
  }
}

Am I aiming too high or would this be somehow doable?

Permission confusion

image

How come it needs the change permission?

Read and change your data on gist.github.com, github.com, and githublinker.herokuapp.com.

Add support for github enterprise

Basically it would need to:

  1. Accept a url other than github.com
  2. Read the .npmrc file next to package.json to see which registry its pointing.

Safari support

I love this plugin. I would love to see safari support. Thanks!

Support for Haskel

import Mod
import qualified Mod
import Mod
import Mod ()
import Mod (x,y)
import qualified Mod
import qualified Mod (x,y)
import Mod hiding (x,y)
import qualified Mod hiding (x,y)
import Mod as Foo
import Mod as Foo (x,y)
import qualified Mod as Foo
import qualified Mod as Foo (x,y)
-- A lot of other combinations excluded. See the link.
-- There might also be a formal grammar somewhere.

https://wiki.haskell.org/Import

Git urls

Git urls are a bit complicated and can come in the form of

<user|org>/<repo> #link to githbb
<clone method>://<url>

It'd be sweet if support for these were added, I played with it myself but didn't get far

Firefox support

would be great to get this great extension also in firefox

Performance. 250ms to initialize

On my macbook air, this extension pauses the load of the page for 250ms while it compiles and runs:

image

image

The upfront parsing is what really kills it. I am guessing because of the enormous JSON blob.

To profile this i'm using about:tracing in chrome which gives you this level of detail.

Check if resource is a directory or file

Shouldn't append index.js when the resource is a file.

require('./adapter') // is a directory
/adapter/index.js

require('./adapter') // is a file
/adapter.js

Defer execution a tad

Been noticing this slows down page loads lately...

image

Here you can see Linker is definitely the most expensive of all my extensions.

Is there any reason it needs to run immediately at document_end ? I'd much prefer document_idle

it will run at window.load or 200ms after DOMContentLoaded, whichever comes first.

src: https://code.google.com/p/chromium/codesearch#chromium/src/extensions/renderer/script_injection_manager.cc&sq=package:chromium&type=cs&q=f:script_injection_manager%20%22We%20try%20to%20run%20idle%20in%20two%20places%22&l=141

It'd definitely give the browser a chance to do some work before handing over another 180ms of execution

Support for Vim plugins

Vim plugin managers make you list out your plugins like this, with the tail end of GitHub URLs:

Plug 'terryma/vim-multiple-cursors'
Plug 'terryma/vim-expand-region'
Plug 'junegunn/vim-easy-align'

You can see more examples of this in my Vim configuration file: https://github.com/evanrelf/dotfiles/blob/master/nvimrc#L26

It would be awesome if this browser extension could make the part in the single quotes a link, like it does for NPM packages and the like.

+++ Dear GitHub +++

Imagine the OctoLinker would be part of GitHub.com and available for all languages and users.

Please react comment with 👍 to show your interest.

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.