mirror of
https://github.com/pdf2htmlEX/pdf2htmlEX.git
synced 2024-12-22 13:00:08 +00:00
add CONTRIBUTING.md
This commit is contained in:
parent
feaa13e36f
commit
a527bd0443
136
CONTRIBUTING.md
Normal file
136
CONTRIBUTING.md
Normal file
@ -0,0 +1,136 @@
|
|||||||
|
This is a general guide if you want to report bugs, ask questions,
|
||||||
|
request features or submitting patches.
|
||||||
|
Please take a moment to review this document in order to make the
|
||||||
|
process easy and effective for everyone involved.
|
||||||
|
|
||||||
|
This document is adapted from [necolas/issue-guidelines](https://github.com/necolas/issue-guidelines)
|
||||||
|
|
||||||
|
## Table of Contents
|
||||||
|
- [Channels](#channels)
|
||||||
|
- [The Issue Tracker](#issue-tracker)
|
||||||
|
- [The Mailing List](#mailing-list)
|
||||||
|
- [Contacting the Author](#author)
|
||||||
|
- [Guidance](#guide)
|
||||||
|
- [Ask Questions](#ask-question)
|
||||||
|
- [Bug Reports](#bug-report)
|
||||||
|
- [Feature Requests](#feature-request)
|
||||||
|
- [Pull Requests](#pull-request)
|
||||||
|
|
||||||
|
***
|
||||||
|
<div id="channels"></div>
|
||||||
|
## Channels
|
||||||
|
|
||||||
|
A few channels are available to reach the developers, please find the most proper one for your purpose.
|
||||||
|
|
||||||
|
<div id="issue-tracker"></div>
|
||||||
|
### The Issue Tracker
|
||||||
|
|
||||||
|
The [Issue Tracker](https://github.com/coolwanglu/pdf2htmlEX/issues)
|
||||||
|
is the best way for
|
||||||
|
[bug reports](#bug-report),
|
||||||
|
[features requests](#feature-request)
|
||||||
|
and [submitting pull requests](#pull-request).
|
||||||
|
|
||||||
|
Please respect the following restrictions:
|
||||||
|
* Do not post personal support requests, (e.g How can I call pdf2htmlEX in Java?). Use the mailing list, or [Stack Overflow](http://stackoverflow.com) instead.
|
||||||
|
* Keep the discussion on topic and respect the opinions of others.
|
||||||
|
* Posts violating the above restrictions may be removed without any notification.
|
||||||
|
|
||||||
|
<div id="mailing-list"></div>
|
||||||
|
### The Mailing List
|
||||||
|
|
||||||
|
The [Mailing list](pdf2htmlex@googlegroups.com) is set up for discussion and announcements.
|
||||||
|
You are welcome to [ask any question](#ask-question) about pdf2htmlEX there.
|
||||||
|
However do not report issues or submit patches there, since it's terrible to keep track of them.
|
||||||
|
|
||||||
|
<div id="author"></div>
|
||||||
|
### Contacting the author
|
||||||
|
|
||||||
|
pdf2htmlEX is mostly written and maintained by Lu Wang (王璐).
|
||||||
|
His email and twitter address of the author can be found in
|
||||||
|
[README.md](https://github.com/coolwanglu/pdf2htmlEX/blob/master/README.md).
|
||||||
|
|
||||||
|
Please post only messages that do not fit into the above channels, for example:
|
||||||
|
- Private messages to the author.
|
||||||
|
- Sample files with private information. (But please still report the bug via the issue tracker)
|
||||||
|
|
||||||
|
Please expect a _long_ delay,since the messages are usually archived and checked on a regular basis.
|
||||||
|
|
||||||
|
<div id="guidance"></div>
|
||||||
|
## Guidance
|
||||||
|
|
||||||
|
Here are a few tips for different types of messages.
|
||||||
|
Lots of your time may be saved if you follow the guidelines.
|
||||||
|
|
||||||
|
<div id="ask-question"></div>
|
||||||
|
### Ask questions
|
||||||
|
|
||||||
|
If you need any help or have issues using pdf2htmlEX,
|
||||||
|
follow the following steps to get it resolved as fast as possible:
|
||||||
|
|
||||||
|
First of all, did you realize that your question might have been already answered in one of the following places?
|
||||||
|
|
||||||
|
- [pdf2htmlEX Wiki](https://github.com/coolwanglu/pdf2htmlEX/wiki)
|
||||||
|
- The manpage (run `man pdf2htmlEX`)
|
||||||
|
- Old posts in the [mailing list](#mailing-list) or the [issue tracker](#issue-tracker)
|
||||||
|
- [Google](http://www.google.com/)
|
||||||
|
|
||||||
|
If you cannot find anything useful there, do not hesitate to post in the [mailing list](#mailing-list).
|
||||||
|
On the other hand, if you think it's something wrong about pdf2htmlEX, please [report a bug](#bug-report) instead.
|
||||||
|
|
||||||
|
<div id="bug-report"></div>
|
||||||
|
### Bug Reports
|
||||||
|
A bug is a demonstrable problem that is caused by the code in the repository.
|
||||||
|
A perfect bug report may help the developer to identify the cause and locate the problematic code quickly.
|
||||||
|
|
||||||
|
Before you report any bug:
|
||||||
|
- Use the latest git version of pdf2htmlEX, since the issue may have been already fixed.
|
||||||
|
- Search for previous issues (open or closed), to make sure that the issue has not been reported before.
|
||||||
|
|
||||||
|
A good bug report shouldn't leave others needing to chase you up for more information.
|
||||||
|
The developers may be very familiar with the code base of pdf2htmlEX,
|
||||||
|
but they may not know anything about your environment or what steps you have done,
|
||||||
|
unless you have them stated.
|
||||||
|
Please try to be as detailed as possible in your report.
|
||||||
|
Good examples include: [#58](https://github.com/coolwanglu/pdf2htmlEX/issues/58), [#183](https://github.com/coolwanglu/pdf2htmlEX/issues/183) and [#226](https://github.com/coolwanglu/pdf2htmlEX/issues/226).
|
||||||
|
|
||||||
|
If you are not sure, please try to answer the following questions:
|
||||||
|
|
||||||
|
- What's your operating system?
|
||||||
|
- What's the version of pdf2htmlEX and depended libraries? (You can post the output of `pdf2htmlEX -v`)
|
||||||
|
- Which browser(s) are you using?
|
||||||
|
- What steps will reproduce the issue? — please try to remove unnecessary steps
|
||||||
|
- What's the result and what did you expect? — e.g. you can post screenshots
|
||||||
|
- What error messages did you see?
|
||||||
|
- Where's the affected PDF file? — e.g. you may upload the file via Dropbox and post a link here
|
||||||
|
|
||||||
|
Especially for issues regarding building pdf2htmlEX:
|
||||||
|
- Which compiler are you using?
|
||||||
|
- What's the output of `cmake` and `make`?
|
||||||
|
- What's the content of `CMakeList.txt`?
|
||||||
|
|
||||||
|
<div id="feature-request"></div>
|
||||||
|
### Feature requests
|
||||||
|
|
||||||
|
Feature requests are welcome. But take a moment to find out whether your idea
|
||||||
|
fits with the scope and aims of the project. It's up to *you* to make a strong
|
||||||
|
case to convince the project's developers of the merits of this feature. Please
|
||||||
|
provide as much detail and context as possible.
|
||||||
|
|
||||||
|
<div id="pull-request"></div>
|
||||||
|
### Pull requests
|
||||||
|
|
||||||
|
Good pull requests - patches, improvements, new features - are a fantastic
|
||||||
|
help. They should remain focused in scope and avoid containing unrelated
|
||||||
|
commits.
|
||||||
|
|
||||||
|
**Please ask first** before embarking on any significant pull request (e.g.
|
||||||
|
implementing features, refactoring code, porting to a different language),
|
||||||
|
otherwise you risk spending a lot of time working on something that the
|
||||||
|
project's developers might not want to merge into the project.
|
||||||
|
|
||||||
|
Please read [_Using Pull Requests_](https://help.github.com/articles/using-pull-requests/)
|
||||||
|
if you are new to pull requests.
|
||||||
|
|
||||||
|
**IMPORTANT**: By submitting a patch, you agree to allow the project owner to
|
||||||
|
license your work under the same license as that used by the project.
|
@ -663,13 +663,12 @@ Viewer.prototype = {
|
|||||||
/**
|
/**
|
||||||
* @param{number} ratio
|
* @param{number} ratio
|
||||||
* @param{boolean} is_relative
|
* @param{boolean} is_relative
|
||||||
* @param{number=} offsetX
|
* @param{Array.<number>=} preserve_pos preserve the position after rescaling
|
||||||
* @param{number=} offsetY
|
|
||||||
*
|
*
|
||||||
* TODO: offsetX/Y is by default the center of container
|
* TODO: offsetX/Y is by default the center of container
|
||||||
* TODO consider scale on offsetX/Y
|
* TODO consider scale on offsetX/Y
|
||||||
*/
|
*/
|
||||||
rescale : function (ratio, is_relative, offsetX, offsetY) {
|
rescale : function (ratio, is_relative, preserve_pos) {
|
||||||
var old_scale = this.scale;
|
var old_scale = this.scale;
|
||||||
var new_scale = old_scale;
|
var new_scale = old_scale;
|
||||||
// set new scale
|
// set new scale
|
||||||
@ -683,14 +682,11 @@ Viewer.prototype = {
|
|||||||
|
|
||||||
this.scale = new_scale;
|
this.scale = new_scale;
|
||||||
|
|
||||||
if (! offsetX)
|
if(!preserve_pos)
|
||||||
offsetX = 0;
|
preserve_pos = [0,0]
|
||||||
if (! offsetY)
|
|
||||||
offsetY = 0;
|
|
||||||
|
|
||||||
// Save offset of the active page
|
// Save offset of the active page
|
||||||
var active_page = this.pages[this.cur_page_idx];
|
var active_page = this.pages[this.cur_page_idx];
|
||||||
if (!active_page) return;
|
|
||||||
|
|
||||||
var active_page_ele = active_page.page;
|
var active_page_ele = active_page.page;
|
||||||
var prev_offset = [ active_page_ele.offsetLeft, active_page_ele.offsetTop ];
|
var prev_offset = [ active_page_ele.offsetLeft, active_page_ele.offsetTop ];
|
||||||
@ -703,14 +699,13 @@ Viewer.prototype = {
|
|||||||
var container = this.container;
|
var container = this.container;
|
||||||
// Correct container scroll to keep view aligned while zooming
|
// Correct container scroll to keep view aligned while zooming
|
||||||
var correction_top = active_page_ele.offsetTop - prev_offset[1];
|
var correction_top = active_page_ele.offsetTop - prev_offset[1];
|
||||||
container.scrollTop += correction_top + offsetY;
|
container.scrollTop += correction_top + preserve_pos[1];
|
||||||
|
|
||||||
// Take the center of the view as a reference
|
// Take the center of the view as a reference
|
||||||
var prev_center_x = container.clientWidth / 2 - prev_offset[0];
|
var prev_center_x = container.clientWidth / 2 - prev_offset[0];
|
||||||
// Calculate the difference respect the center of the view after the zooming
|
// Calculate the difference respect the center of the view after the zooming
|
||||||
var correction_left = prev_center_x * (new_scale/old_scale - 1) + active_page_ele.offsetLeft - prev_offset[0];
|
var correction_left = prev_center_x * (new_scale/old_scale - 1) + active_page_ele.offsetLeft - prev_offset[0];
|
||||||
// Scroll the container accordingly to keep alignment to the initial reference
|
// Scroll the container accordingly to keep alignment to the initial reference
|
||||||
container.scrollLeft += correction_left + offsetX;
|
container.scrollLeft += correction_left + preserve_pos[0];
|
||||||
|
|
||||||
// some pages' visibility may be toggled, wait for next render()
|
// some pages' visibility may be toggled, wait for next render()
|
||||||
// renew old schedules since rescale() may be called frequently
|
// renew old schedules since rescale() may be called frequently
|
||||||
|
Loading…
Reference in New Issue
Block a user