Difference between revisions of "Javascript API"

Jump to navigation Jump to search
1,870 bytes added ,  14:31, 18 October 2017
(add potential capabilities)
 
(9 intermediate revisions by 2 users not shown)
Line 1: Line 1:
== Overview ==
== Overview ==
Zim files can be seem as a subset and a snapshot of a website. Webpages in the zim file could have totally different structure and layout.  
Zim files can be seem as subset and snapshot of a website. Webpages in the zim file could have totally different structure and layout.  


The problem arises when interaction with the webpage is needed, since it is impossible to perform those interactions when there's little information regarding if and how an interaction should be performed.
The problem arises when interaction with the webpage is needed, since it is impossible to perform those interactions when there's little information regarding if and how an interaction should be performed.
Line 26: Line 26:
* night mode
* night mode
* readability
* readability
* snippet
* page thumb image
* in page search
== Capabilities ==
==== Table of content ====
<syntaxhighlight lang="javascript" line='line'>
function TableOfContents () {
    this.getSections = function() {
        /*
        - return an array of section objects
        - in case there there is no table of content, return an empty array
        */
    }
    this.scrollToSection = function(index: number) {
        /*
        - scroll to a section with index in array returned by this.getSections
        - perform change to the page so that the section become available for reading, such as expanding the collapsed section 
        */
    }
    // OPTIONAL
    this.visibleSectionIndexes = function() {
        /*
        - return an array of visible section's indexes
        - in case there there is no table of content, return an empty array
        */
    }
    // OPTIONAL
    this.startVisibleSectionCallBack = function () {
        /*
        - start page visible section call back
        - using this call back, the reader app could know which section is currently visible to the user and highlighting the location in table of content
        - implementation to be discussed. It might not be a good idea to modify window.onscroll directly
        */
        var handleScroll = function() {
            var visible = tableOfContents.visibleSectionIndexes();
            if (visible.length > 0) {
                window.location = 'pagescroll:scrollEnded?start=' + visible[0] + '&length=' + visible.length;
            }
        }
        window.onscroll = handleScroll;
        handleScroll();
    }
    // OPTIONAL
    this.stopVisibleSectionCallBack = function () {
        /*
        - stop page visible section call back
        */
        window.onscroll = undefined;
    }
   
}
function Section(title: string, level: number) {}
</syntaxhighlight>
12

edits

Navigation menu