Skip to content
For the best reading experience
Vue JavaScript TypeScript CSS
Branch: master
Clone or download
Latest commit 4755791 Oct 15, 2019



Provide a scroll mode and book mode, for a better reading experience.






It creates a new element in the Eh page, and inject Vue components to provide a scroll mode and book mode.


Chrome: Web store Firefox: Web store Tampermonkey: Greasy fork

You also can get it from the 'release' of this project.


  1. In a Node environment, run npm install, and npm run dev, then you will in dev mode.
  2. In the top of chrome://extensions, open the develop mode, and select the /dist.
  3. Run npm run publish to package a zip file in /publish_output for the web store of Chrome and Firefox.
  4. Tampermonkey: run npm run build, and the /dist/inject.js is target, just use it.
  5. Run npm run test to test.


    |-gulpfile.js // gulp file for packaging
    | // webpack file for dev
    | // webpack file for prod
  |-dist // the directory of release 
    |-assets // resources
      |-img // images
        |-String.js // for i18n
        |-tags.js // tags
        |-version.js // the informations of update in this version
    |-bean // bean classes
    |-components // Vue components
      |-widget // button, pagination, switch etc..
        |-AlbumBookView.vue // the component of book mode
        |-AlbumScrollView.vue // the component of scorll mode
        |-ModalManager.vue // manage dialogs
        |-PageView.vue // the component of page, loading in AlbumBookView and AlbumScrollView
        |-ReaderView.vue // the component of reader,including of AlbumBookView, AlbumScrollView,ThumbScrollview and TopBar
        |-ThumbScrollview.vue // the component of thumbnail column
        |-TopBar.vue // top bar
      |-parser // the parseres of Eh pages
      |-request // the request classes.
          |-Stroage.js // extend from react-native-storage, supporting
        |-AlbumCacheService.js // cache the urls of images, the size of images.
        |-LocalStorage.js // wrap Storage.js,basing on the window.localStorage
        |-SyncStorage.js //  wrap Storage.js,basing on the It can sync the datas with Cloud of Google.
      |-api.js // the api of Eh
      |-InfoService.js // show the dialog of instructions, the dialog of update, etc..
      |-SettingServie.js // save settings and get 
      |-PlatformService.js // some apis, for cross platfroms
      |-StringService.js // provide strings of i18n
    |-store // Vuex
    |-style // the variables of sass, and the style of Markdown
        |-bezier-easing.js // using Cubic Bezier in the scroll of scroll mode
        |-MdRenderer.js // the renderer of Markdown
        |-VueUtil.js // add some frequently-used functions in Vue
    |-app.inject.vue // the main components of Vue
    |-app.popup.vue // the main components of Vue in popup window
    |-main.inject.js // the entry of webpeck and some earlier stage processing before injecting view of Vue.
    |-main.popup.js // the entry of webpeck. in popup window.
    |-config.js // version and update server
    |-mainifest.json // the mainifest for chrome and firefox extension
You can’t perform that action at this time.