Coder Social home page Coder Social logo

enixcoda / gitako Goto Github PK

View Code? Open in Web Editor NEW
2.4K 2.4K 103.0 4.67 MB

🐙 File tree extension for GitHub on Chrome & Firefox & Edge

Home Page: https://chrome.google.com/webstore/detail/gitako/giljefjcheohhamkjphiebfjnlphnokk

License: MIT License

JavaScript 8.23% TypeScript 83.17% Makefile 0.46% Shell 0.10% SCSS 6.69% Swift 1.35%
chrome-extension edge-extension firefox-addon gitee github

gitako's Introduction

Gitako

Gitako is a free file tree extension for GitHub, available on Chrome, Firefox and Edge.

Features

  • 📂 File tree for repository and pull request
  • 🔎 Instant file search and navigation
  • 🕶️ Support private repositories
  • 🧩 Support GitHub enterprise, Gitea, Gitee, and more
  • 🏎 Always performant, even in gigantic projects
  • ⌨️ Intuitive keyboard navigation
  • 📋 Copy snippets and file content
  • 🎨 Various icons and official themes support
  • 🗂 Support git submodule
  • 📏 Fold source code

Install

Chrome Edge Firefox

It is more recommended for Edge users to install from Chrome store. It may delay for weeks before updates got published to Edge store because its review process is slow.

Help Gitako

Gitako is FREE. If you like it, please

  • ⭐️ Star it at GitHub
  • 👍 Review in the extension store

Feature discussions and bug reports are also welcome!

Check out contributing.md if you want to contribute to Gitako directly.

About

Source of the name and logo?

The totem of GitHub is a cute octopus. And octopus in Japanese is タコ(tako). Then concat them together:

git + tako -> gitako

The logo of Gitako is a tentacle of octopus, indicates that Gitako works like a part of GitHub.

gitako's People

Contributors

arlendp avatar bbsonlin avatar chojonghoon avatar dependabot[bot] avatar dishuostec avatar enixcoda avatar fregante avatar giladgd avatar innei avatar kidonng avatar laoshu133 avatar lazzzis avatar nezteb avatar wayjam 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

gitako's Issues

Catch runtime errors

It's obviously needed for improving quality of Gitako.

What I worried about most is that Gitako might crash in some cases, then disappointed users and leave silently (not every user would be sooooo nice and patient to write a issue here for a non-famous extension).

Lag due to scroll into view

Problem

When file list is long (about hundreds items), it takes a while to render the next frame after fold/unfold a folder.

Profiling

when expanding a folder:

image
In above example, it took 280ms to render a frame after expanding the list length from 50 to 500, in which scrollIntoView took about half of the time (137ms).

when folding a folder:

image
In this example, querySelectorAll invoked Recalculate Style, which is not expected. As what I want was just query all the file list elements.

Solution

  1. call scrollIntoView less, e.g. not call it when expandNode is invoked by mouse click
  2. use another method to query file list elements, instead of querySelectorAll
  3. use virtual scrolling

More

The diff method of React (in fact it's preact) takes an average of 25ms every time when fold/unfold fold. No matter how many (50 or 500) elements are there. Is it possible to even reduce it?

Scroll position not stable

The scroll position of page content is not stable, if manipulate browser history to go back & forth multiple times.

Dark Theme

Is it possible to add different themes or just dark theme?

How to enlarge width

如何调整宽度, java 和 android 项目 文件夹层次太深了, 宽度不够看。

一些功能请求

很好到插件,比octotree良心多了。
作者可以将插件上传到火狐吗?
作者能否适配下码云?

Use pjax-api

Found a new generation of PJAX

Replace current PJAX with it will resolve a lot of legacy issues,

  • conflicts with PJAX used by GitHub page
  • could not programmatically trigger PJAX

Header of sidebar is not as tall as GitHub's header

GitHub is showing in different themes on Chrome Canary and Chrome:

left: Chrome Canary, right: Chrome
image

Seems GitHub is going to release a new theme?
Maybe a new theme for Gitako is needed. It will not only solve the header issue, but also provide a way for toggling whether to show the sidebar.

Aggressive tree data loading

image

How:
Request for meta data and tree data(guess URL with branch and path info from URL/page content)
When meta data is retrieved, we'll know if the guessed URL was right, we successfully saved time.

Animation for file search

Javascript process duration of searching doesn't take much time, but rendering the result (when the keyword is short, result list will be long) blocks UI.

Setting up a generator for async search would help?

scroll to nav repeatedly when go back in history

problem

When browsing a repo, redirect within the repo for a few times and trigger go back (browser action). Then scroll up or down a bit, you would notice page get scrolled back to nav and it might repeat a few times.

solution

add examinations for the url when last pjax:end was triggered, if url is not changed, do not invoke scrollToRepoContent

能增加gitlab私服的支持吗?

非常感谢作者提供了这么好的一个插件。
公司采用的是自己搭建的gitlab私服的方式,所以gitako就无法使用了。

Let user know what has been updated.

Like showing a popup of change log when it's updated?

At least I need to inform users that I'm pushing on it without annoying them (most update popups make me feel annoyed).

[Feature] Update icons (and add option to customize?)

What about removing the icon animation when a page loads and the tree is closed (I find it annoying 😅), and update the icon to show something more meaningful to the action?

I did a small test, here it's how it would look (the icon is just to test, eventually in the future you could also add an option to select an octicon):

gitako

Amazing job!!! 👏

Image Host

I'll use this issue to host images used in wiki pages.

Doesn't work with custom repos

Hi. We have custom enterprise Github with DNS like: github.my.company.com
The extension doesn't render the tree on the left side. Looks like it doesn't understand that current page is a github page.

handle commit page

Gitako is not collapsed in pages whose URL look like https://github.com/:username/:repoName/commit/:commitSHA (e.g. ee4b213).
image

Also, even after collapsed manually, the icon is not at the right place.
image

Regex filter doesn't work as expected

I wanted to use the filter only to show all .go files. However, a lot of files that do not end with .go were displayed. See the below image. Is this a bug, or where am I wrong?
image

Can not open file page in firefox

OS: MacOS 10.14.6
Firefox: 73.0

The webpage is loading forever when clicking file link in Gitako sidebar, and nothing output to dev tool.

Hide empty middle packages

In java/scala projects, the package path is long.
It will be great to hide the empty middle packages/directories.

For example, in Gitako project, it will display

-- src
---- asserts/icons
-------- Gitako.jpg

instead of

-- src
---- asserts
-------- icons
------------ Gitako.jpg

Use primer components

Gitako currently depends on stylesheets provided by Github HTML, i.e. CSS class hack.

Maybe using primer will make its UI more consistent.

Sync settings

For now settings of Gitako is saved in Chrome local extensions storage (not the localStorage).
As it is getting more config options, sync them with Chrome sync extensions storage might be a good feature.

Toggle Icon moving animation

When enlarging window's width from under 1520px, the toggle sidebar icon jumps from left next to the GitHub icon.

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.