Annotate with anyone, anywhere.

Overview

h

Continuous integration BSD licensed Python 3.6 Docs Code style: Black

h is the web app that serves most of the https://hypothes.is/ website, including the web annotations API at https://hypothes.is/api/. The Hypothesis client is a browser-based annotator that is a client for h's API.

Development

See the Contributor's guide for instructions on setting up a development environment and contributing to h.

Community

Join us on Slack (request an invite or log in once you've created an account) or in #hypothes.is on freenode for discussion.

If you'd like to contribute to the project, you should also subscribe to the development mailing list and read our Contributor's guide. Then consider getting started on one of the issues that are ready for work.

Please note that this project is released with a Contributor Code of Conduct. By participating in this project you agree to abide by its terms.

License

Hypothesis is released under the 2-Clause BSD License, sometimes referred to as the "Simplified BSD License" or the "FreeBSD License". Some third-party components are included. They are subject to their own licenses. All of the license information can be found in the included LICENSE file.

Comments
  • Account Management

    Account Management


    Dokku: https://accountmanagement.dokku.hypothes.is

    • [x] No tests for accountManagement directive
    • [x] No tests for backend changes (Added 2014-08-06)
    • [x] accountManagement directive needs to be moved to a controller
    • [x] ~~Password updating doesn't seem to work~~ (Fixed 2014-08-06)
    • [x] Account sheet needs to close on logout.
    • [x] Nothing happens after a user account is disabled other than a success message.
    • [x] Remove email update form (pending emails)
    • [x] Disable_user endpoint needs to return a 401 when the password is invalid
    • [x] Clear out password fields on successful submission
    • [x] Use appropriate http error codes in update_profile responses.
    • [x] Return "errors" keys in error responses.

    I'm taking the opportunity here to open this pull request for the account management branch so that both the code and the interface can be reviewed.

    It's okay for this branch to still be considered a work in progress, and this PR will remain open as a place for discussion until it it's ready to be merged.

    So this branch adds three new panels to the sidebar.

    Settings:

    settings

    Profile:

    profile

    Account:

    account

    @RawKStar77 if you've any thing to add, please do :)

    opened by aron 90
  • Overhaul view and sort behavior

    Overhaul view and sort behavior

    Big changes to view, sort, routing, filtering, etc, etc, etc...

    Todo

    • [x] stream search -- race between $scope.updater and stream controller, need to send the filter
    • [x] page search -- simple matter of fixing the ugly ng-show conditions at the bottom of the viewer template perhaps with more verbose, obvious variables, or scope/controller functions to abstract the route details from the template a bit
    • [x] Check on https://github.com/hypothesis/h/pull/1436#discussion_r16705832 (leave as is 2014-08-29)
    • [x] Restore "no results for “query”" message.
    • [x] Annotations don't watch for changes
    • [x] forced login -- a comment about ideas for that here
    opened by tilgovi 82
  • bookmarklet can not annotate github - should add a warning to explain

    bookmarklet can not annotate github - should add a warning to explain

    I came here to post another issue but found I was unable to actually preview or submit it. The hypothesis Chrome extension is somehow interfering with Github's site.

    Steps to reproduce:

    1. Enable the Chrome extension.
    2. Click the "New Issue" button on Github
    3. Type a title and some content.

    The submit button will remain grayed out and previewing will not work.

    opened by drewfrank 67
  • Add ability to share via links from the sidebar.

    Add ability to share via links from the sidebar.

    Did a little bit more design work and thinking around sharing today, I'm submitting this PR as an alternative to #2012.

    Here's what the new share dialog looks like: Share dialog

    The changes include:

    • Use the canonical url for generating via links.
    • Generate via uri in the share-dialog directive. (Thanks @csillag and @gergely-ujvari!)
    • Introduce toolbar share icon, the tooltip says "Share this page"
    • Update help/welcome page to cover sharing
    • Add simple sharing via Facebook, Twitter, Google plus, and email
    • Add social media icons to icomoon

    Edit: We used have a share button on each annotation that links to the standalone annotation page. In the name of simplifying, I had removed it for the time being (thinking we should add it back when we can directly link to an annotation in context), but put it back after some outcry. Changes were made in a separate PR: https://github.com/hypothesis/h/pull/2231

    opened by JakeHartnell 60
  • [WIP] add support for packaging with PDF.js extension - try 4

    [WIP] add support for packaging with PDF.js extension - try 4

    This PR is a blend of https://github.com/hypothesis/h/pull/1433 and https://github.com/hypothesis/h/pull/1514.

    Here is how it works, and what it contains:

    • It bundles the static (generic) build of PDF.js (Just as in @tilgovi's PR, except that Iused the latest version)
    • It has a single added line to viewer.html, to load our code (Same as in both PRs.)
    • It relies on @tilgovi's refactored embed code (using a separate bootstrap script, instead of inline code), which is already on the master branch, so the eval() based script execution workarond is not longer necessary.
    • The latest version of Annotator's PDF plugin is already on master, so it's not included in this PR.
    • For PDF document, we don't load the document plugin; instead, we rely on the PDF plugin for url+metadata extraction (This comes from my PR, but was also copied to @tilgovi's)
    • When displaying annotations, avoid non-clickable URIs, like the ones based on PDF fingerprint. (Adapted from my PR)

    More to come:

    • required changes in background.js
    • required changes in manifest.json
    • testing
    opened by csillag 56
  • Let users change their email addresses

    Let users change their email addresses

    Fixes https://github.com/hypothesis/vision/issues/174

    account.html:

    • Add a new "Change Your Email Address" form

    accounts/views.py:

    • Add email to the user dict returned at /app?formid=profile (or session.profile() in Angular)
    • When resetting the form after a successful submission, put the new (or unchanged) email address into the user dict returned in the response. AccountController needs this (see below).

    account-controller.coffee:

    • Add $scope.email (the user's current email address), to use for placeholder text in the email form field.
    • After a successful form submission set $scope.email to the one from the response. This sets the placeholder text in the email field to the new value, instead of continuing to show the old email address as placeholder.
    • Add changeEmail() method to receive email form submissions.
    opened by seanh 53
  • Firefox addon + build process

    Firefox addon + build process

    WARNING: known sloppiness ahead. :smile_cat:

    To build:

    ./bin/hypothesis extension production.ini firefox http://localhost:5000 resource://firefox-at-hypothes-dot-is/hypothesis/data
    

    To test:

    1. Download the Firefox Add-on
    2. ...install it...etc...
    3. in ./build/firefox run:
    cfx run --binary-args="-url http://w3.org/DesignIssues"
    

    (or whatever other URL you like to test with)

    Firefox should open with the extension sitting in the top right of the toolbar.

    (Some of the) Known Issues:

    • loads irregularly when browsing cached pages (back / forward, 304 Not Modified, etc)
      • likely some other Firefox event that needs to be caught somewhere
    • fonts are broken
      • relative URLs in the CSS aren't loading the fonts (despite their being there)
      • making them absolute resource:// URLs in the CSS file does the trick (but would take some ugly build stuff)
    • all of the build process for this thing can and should be heavily refactored
      • it's mostly copy / pasting to jump that hurdle and focus on the extension stuff
      • fully planning to improve it

    Enjoy! :tada:

    opened by BigBlueHat 50
  • Search callback routing cleanup

    Search callback routing cleanup

    I cleaned a few things up after the simple-search merge and unified the routing and location usage a little bit. I also fixed the "tag:foo" facet.

    opened by tilgovi 49
  • The annotation metadata should reflect the CC license

    The annotation metadata should reflect the CC license

    It would be a good idea to include the license in each annotation object. In the future when there are other services with perhaps different Terms of Service (or when we give the option for people to opt into CC-0), it will prove useful in figuring out what can be done with certain annotations.

    Acceptance criteria

    opened by JakeHartnell 48
  • Local PDF support

    Local PDF support

    Online PDFs can be related to eachother via URLs. Offline, local PDFs on one's personal drive represent another large opportunity for collaborative annotation.

    Some services, notably Mendeley, have developed approaches to associate these PDFs with their equivalents elsewhere, either via hashes or other fingerprinting techniques. We might apply these techniques ourselves or partner with an external service (Mendeley offered the use of their dataset at one point) to achieve the same capability.

    opened by dwhly 47
  • Add emphasis to selected annotations

    Add emphasis to selected annotations

    Current behavior:

    Currently, we have the following methods for selecting a specific set of annotations:

    • Click on the highlight (when always-on mode is on)
    • Click on the bar on the bucket bar.

    When a set of annotations is selected, their cards will be visible in the sidebar, and everything else will be hidden. The contents of the sidebar doesn't change, even if the user scrolls the document.

    Proposed change:

    This PR adds the following extra behavior:

    The highlights belonging to the selected annotations stays visible in the document, even if always-on mode is off, and even if the pointer is not currently hovering over the annotation card.

    (As described in #800 )

    Todo:

    • The styling is not intended to be final. Someone who cares about colors should devise the best color scheme, taking into account all highlight states. (focus, always-on mode, and selection.)
    • Maybe this could be extended to search, too. (Currently, search is not impacted at all.)

    The tests have been updated, and new tests have been added to cover the new functionality.

    opened by csillag 46
  • Bump sqlalchemy from 1.4.45 to 1.4.46

    Bump sqlalchemy from 1.4.45 to 1.4.46

    Bumps sqlalchemy from 1.4.45 to 1.4.46.

    Release notes

    Sourced from sqlalchemy's releases.

    1.4.46

    Released: January 3, 2023

    general

    • [general] [change] A new deprecation "uber warning" is now emitted at runtime the first time any SQLAlchemy 2.0 deprecation warning would normally be emitted, but the SQLALCHEMY_WARN_20 environment variable is not set. The warning emits only once at most, before setting a boolean to prevent it from emitting a second time.

      This deprecation warning intends to notify users who may not have set an appropriate constraint in their requirements files to block against a surprise SQLAlchemy 2.0 upgrade and also alert that the SQLAlchemy 2.0 upgrade process is available, as the first full 2.0 release is expected very soon. The deprecation warning can be silenced by setting the environment variable SQLALCHEMY_SILENCE_UBER_WARNING to "1".

      References: #8983

    • [general] [bug] Fixed regression where the base compat module was calling upon platform.architecture() in order to detect some system properties, which results in an over-broad system call against the system-level file call that is unavailable under some circumstances, including within some secure environment configurations.

      References: #8995

    orm

    • [orm] [bug] Fixed issue in the internal SQL traversal for DML statements like _dml.Update and _dml.Delete which would cause among other potential issues, a specific issue using lambda statements with the ORM update/delete feature.

      References: #9033

    engine

    • [engine] [bug] Fixed a long-standing race condition in the connection pool which could occur under eventlet/gevent monkeypatching schemes in conjunction with the use of eventlet/gevent Timeout conditions, where a connection pool checkout that's interrupted due to the timeout would fail to clean up the failed state, causing the underlying connection record and sometimes the database connection itself to "leak", leaving the pool in an invalid state with unreachable entries. This issue was first identified and fixed in

    ... (truncated)

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies python 
    opened by dependabot[bot] 0
  • Bump ipython from 8.7.0 to 8.8.0

    Bump ipython from 8.7.0 to 8.8.0

    Bumps ipython from 8.7.0 to 8.8.0.

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies python 
    opened by dependabot[bot] 0
  • Bump coverage from 7.0.2 to 7.0.3

    Bump coverage from 7.0.2 to 7.0.3

    Bumps coverage from 7.0.2 to 7.0.3.

    Changelog

    Sourced from coverage's changelog.

    Version 7.0.3 — 2023-01-03

    • Fix: when using pytest-cov or pytest-xdist, or perhaps both, the combining step could fail with assert row is not None using 7.0.2. This was due to a race condition that has always been possible and is still possible. In 7.0.1 and before, the error was silently swallowed by the combining code. Now it will produce a message "Couldn't combine data file" and ignore the data file as it used to do before 7.0.2. Closes issue 1522_.

    .. _issue 1522: nedbat/coveragepy#1522

    .. _changes_7-0-2:

    Commits
    • 2ff9098 docs: prep for 7.0.3
    • 1f34d8b fix: race condition on data file shouldn't break combining. #1522
    • 85170bf build: two-step combines for speed
    • 1605f07 mypy: misc.py, test_misc.py
    • 4f3ccf2 refactor: a better way to have maybe-importable third-party modules
    • 98301ed mypy: test_config.py, test_context.py
    • 9d2e1b0 mypy: test_concurrency.py, test_python.py
    • c3ee30c refactor(test): use tmp_path instead of tmpdir
    • 0b05b45 mypy: test_annotate.py test_arcs.py test_collector.py
    • 2090f79 style: better
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies python 
    opened by dependabot[bot] 0
  • Migrate VitalSource annotations to be associated with book rather than chapter

    Migrate VitalSource annotations to be associated with book rather than chapter

    As part of the "treat VitalSource books as one document" project, we are changing the URL and selectors that the Hypothesis client captures. These changes are currently behind a feature flag. In order to roll this change out to all users, we will need to migrate the existing annotations to use the same URL and selector format.

    The current thinking is that this will be done via a task in the h admin panel that can be run multiple times during the transition, with optional filters to control which users or groups are processed on each run.

    The existing annotations have data that looks like this:

    EPUB ("reflowable") book example:

    {
      target: {
        source: "https://jigsaw.vitalsource.com/books/L-999-70049/epub/OPS/loc_002.xhtml",
        selector: [...]
      }
      // Other fields
    }
    

    PDF ("fixed layout") book example:

    {
      target: {
        source: "https://jigsaw.vitalsource.com/books/9781938168130/pages/391876767/content",
        selector: [...]
      }
      // Other fields
    }
    

    The migrated annotations will look like this:

    {
      target: {
        source: "https://bookshelf.vitalsource.com/reader/books/L-999-70049",
        selector: [{
          type: "EPUBContentSelector",
          url: "https://jigsaw.vitalsource.com/books/L-999-70049/epub/OPS/loc_002.xhtml",
    
          // Fields not available in previous data. Need to be either omitted or found via lookup
          cfi: "/4",
          title: "Chapter 2"
        },
        // Other selectors...
        ]
      }
      // Other fields
    }
    

    Note that some of the information that is needed in the new format is not available in the existing data. We will either need to make everything work without it, or look the information up via requests to the VitalSource metadata API.

    VitalSource 
    opened by robertknight 9
Releases(v0.39.0)
  • v0.39.0(Nov 5, 2019)

  • v0.38.0(Aug 8, 2016)

    Features

    • Add "proxy" auth policy mode (#3638).
    • Implement new form designs for logged out forms under a feature flag (#3640).

    Miscellanea

    • Add hypothesis user add command (#3634) and move admin command under the users subcommand as well (#3632).
    • Replace "firstRun" config option with "openSidebar" and "openLoginForm" (#3643).
    • Change URL paths for reset password, forgot password and register (#3651).
    • Update Hypothesis client to v0.38.0. See https://github.com/hypothesis/client/releases/tag/v0.38.0
    Source code(tar.gz)
    Source code(zip)
    h-0.38.0.tar.gz(1.81 MB)
  • v0.36.0(Jul 27, 2016)

    Miscellanea

    • Refactor h.api.search interface, it is now a Search class which can be customized on a per-query basis, the return value also changed to be a new SearchResult (#3622, #3623).
    • Update Hypothesis client to v0.36.0. See https://github.com/hypothesis/client/releases/tag/v0.36.0
    Source code(tar.gz)
    Source code(zip)
    h-0.36.0.tar.gz(1.78 MB)
  • v0.35.0(Jul 22, 2016)

    Features

    • Add ability to rename users from admin control panel (#3584)
    • Improve the copy on reply notification emails (#3602)

    Bug fixes

    • Fix case sensitivity in user search queries (#3611)

    Miscellanea

    • Move the URLs for account settings from /profile to /accounts (#3604)
    • The Hypothesis browser extension has now been moved to its own repository (#3620)
    • Update Hypothesis client to v0.35.0. See https://github.com/hypothesis/client/releases/tag/v0.35.0
    Source code(tar.gz)
    Source code(zip)
    h-0.35.0.tar.gz(11.31 MB)
  • v0.33.0(Jul 13, 2016)

    Bug fixes

    • Add a missing unique constraint on the user_group join table, and a migration to fix existing databases (#3591).

    Miscellanea

    • Update Hypothesis client to v0.33.0. See https://github.com/hypothesis/client/releases/tag/v0.33.0
    Source code(tar.gz)
    Source code(zip)
    h-0.33.0.tar.gz(2.04 MB)
  • v0.32.0(Jul 8, 2016)

    Features

    • Treat HTTP/HTTPS URLs that are the same except for their protocol as equivalent (#3558).
    • Improve performance of real-time updates service (#3574).
    • Use consistent terminology for 'Log in', 'Log out' and 'Sign up' actions (#3578).

    Bug fixes

    • Fix missing escaping of user input in server-rendered forms (#3585).
    • Prevent browsers disclosing group URLs to websites linked to from groups pages (#3579).
    • Fix a problem where data migrations would update annotations' last-update timestamp (#3586).

    Miscellanea

    • Remove assets that relate to the Hypothesis client. These are now part of the hypothesis/client repository (#3577, #3571)
    • Update Hypothesis client to v0.32.0. See https://github.com/hypothesis/client/releases/tag/v0.32.0
    Source code(tar.gz)
    Source code(zip)
    h-0.32.0.tar.gz(13.41 MB)
  • v0.31.0(Jun 29, 2016)

    Features

    • Show annotations and page notes in separate tabs in the sidebar (feature flagged: selection_tabs) (#3504)
    • The 'Share' action for replies is now a direct link to the parent annotation and its associated conversation in context (#3539).
    • Reply notification emails now contain direct links to see the original annotation and its associated conversation in context (#3536).

    Bug fixes

    • Fix adder not responding to selection changes after making a selection which does not contain any text (#3522, #3526).
    • Fix incorrect 'You do not have permission to see this annotation' message in the client when direct-linking to an annotation in a PDF (#3529).
    • Fix annotation cards containing long URLs overflowing their container (#3546).
    Source code(tar.gz)
    Source code(zip)
    h-0.31.0.tar.gz(13.65 MB)
  • v0.30.0(Jun 23, 2016)

    Features

    • Users now get their own clean welcome page when they finish installing the browser extension (#3505).
    • The search API can now accept multiple uri parameters and will return annotations made on any of the passed URIs (#3517).
    • The annotation client now uses the multiple-uri-parameter feature to ensure that all annotations are loaded on PDFs (#3524).

    Bug fixes

    • Fix an issue where highlights weren't shown correctly in PDFs (#3531).

    Miscellanea

    • Our brief experiment with using PDF fingerprint URNs as target source properties has ended (#3524).
    Source code(tar.gz)
    Source code(zip)
    h-0.30.0.tar.gz(2.29 MB)
  • v0.29.0(Jun 20, 2016)

    Features

    • Add '#annotated' hashtag to default tweet message to make following annotation activity on social media easier (#3482).
    • Unify the 'About this Version', 'Feedback' and 'Help' menu items in the client (#3485).
    • Automatically expand the conversation when direct-linking to annotations (#3489).

    Bug fixes

    • Fix group names wrapping onto multiple lines in sidebar (#3469).
    • Fix the permalink pages for annotation replies. These now show the complete conversation thread which the reply appeared in, highlighting the reply matching the URL (#3474, #3483).
    • Fix annotations without quotes resulting in entire pages or large sections of pages being highlighted (#3475).
    • Fix annotations made on PDFs in browsers other than Safari not appearing when the same PDF was viewed in Safari and vice-versa (#3494).

    Miscellanea

    • Record message processing times in realtime update service (#3484, #3486).
    Source code(tar.gz)
    Source code(zip)
    h-0.29.0.tar.gz(13.65 MB)
  • v0.28.1(Jun 14, 2016)

  • v0.28.0(Jun 13, 2016)

    Features

    • Add option to disable the badge on the extension's toolbar button (#3342).
    • Avoid revealing information about the file structure of the user's system to the Hypothesis service by not saving "file://" URLs with annotations made on PDFs (#3441).

    Bug fixes

    • Fix cursor style for annotation cards (#3463).
    • Fix styling of quotes in annotation bodies (#3464).
    • Fix annotation adder not being shown if the page already has a selection when Hypothesis is activated (#3453).
    Source code(tar.gz)
    Source code(zip)
    h-0.28.0.tar.gz(13.65 MB)
  • v0.27.0(Jun 9, 2016)

    Features

    • It is now possible to authenticate to the WebSocket using an API token (#3419).
    • Improve anchoring of annotations on PDFs by using the PDF fingerprint, when available, instead of the URL (#3404).

    Miscellanea

    • Load annotations from database in streamer server (#3378)
    • Remove the "links" field from the search index (#3413).
    • Add CLI command for moving existing annotations to a new URL (#3416).
    Source code(tar.gz)
    Source code(zip)
    h-0.27.0.tar.gz(4.11 MB)
  • v0.26.0(Jun 7, 2016)

    Features

    • Show adder in response to selection changes made via touch or keyboard input (#3347)
    • Change timestamps in annotation cards to link to the standalone annotation page rather than the original document (#3395)
    • Improve presentation of reply threads (#3376)

    Bug fixes

    • Fix client on web pages which define a global variable called "global" (#3385)
    • Support relative URLs for the "serviceUrl" parameter in the client specifying the Hypothesis service to connect to (#3381)
    • Fix spacing around 'Share' icon in annotation cards (#3399)
    • Fix display of numbered and bullet-point lists in annotation cards (#3396)
    • URL encode Twitter/Facebook/Google share links correctly (#3394)

    Miscellanea

    • Documentation pages now have URLs without a '.html' extension (#3373)
    • Remove "direct_linking" feature flag (#3382)
    Source code(tar.gz)
    Source code(zip)
    h-0.26.0.tar.gz(13.64 MB)
  • v0.25.0(May 26, 2016)

  • v0.24.0(May 25, 2016)

  • v0.23.1(May 24, 2016)

    Bug fixes

    • We have had to temporarily revert the change which allows authenticating to the WebSocket with API tokens, as this had unintended side-effects preventing cookie authentication to same (3ed6ff3).
    • Fix a problem with updating page notes when the 'postgres' feature flag was switched on (#3355).
    Source code(tar.gz)
    Source code(zip)
    h-0.23.1.tar.gz(2.26 MB)
  • v0.23.0(May 23, 2016)

    Features

    • It is now possible to authenticate to the WebSocket using an API token (#3345).

    Bug fixes

    • The search limit parameter is now clamped within a range of acceptable values (#3341).

    Miscellanea

    • The setting for the WebSocket URL has changed from H_WEBSOCKET_URL to WEBSOCKET_URL (#3329).
    • Added a code of conduct to the project repository (e3fad12).
    • Numerous important changes to support the upcoming migration of annotation data to PostgreSQL (#3323, #3349, #3350, 4c25cd8).
    Source code(tar.gz)
    Source code(zip)
    h-0.23.0.tar.gz(2.26 MB)
  • v0.22.0(May 12, 2016)

    Features

    • New visual design for annotation cards (#3274).
    • Annotation cards now display more precise timestamps for annotations which were last changed more than 24 hours ago. (#3247)

    Miscellanea

    • Added hypothesis devserver command which runs all the services needed for a development instance of Hypothesis and multiplexes their output into the terminal (#3307).
    • Added hypothesis migrate command to simplify the execution of database migrations (#3319).
    • Removed several unused hypothesis subcommands (#3303).
    • Added --dev flag to hypothesis command which replaces the need to specify a config file path as an argument to subcommands (#3303).
    Source code(tar.gz)
    Source code(zip)
    h-0.22.0.tar.gz(13.69 MB)
  • v0.21.0(May 6, 2016)

    Features

    • Show adder when Hypothesis loads if there is already a text selection on the page (#3257).
    • Make annotation adder position itself more intelligently in relation to the selected text and viewport boundaries (#3257).
    • Add "indexer" worker queue to handle synchronisation of the search index with the database under the 'postgres' feature flag (#3242).

    Bug fixes

    • Fix a syntax error thrown when injecting the Hypothesis sidebar (#3289).

    Miscellanea

    • Link to the Chrome extension on the help page (#3265).
    • Major work on storage as we continue to work towards a migration of all annotation data to PostgreSQL (#3262, #3250, #3242).
    • Preliminary builds of a Firefox WebExtensions add-on (#3263).
    Source code(tar.gz)
    Source code(zip)
    h-0.21.0.tar.gz(2.26 MB)
  • v0.20.0(Apr 25, 2016)

    Features

    • Remove any empty annotations with no tags or text when creating new annotations (#3214).
    • Add a 'Copy to Clipboard' button in the annotation share dialog (#3197).
    • Add 'About this version' panel accessible via Help -> About this version (#3216).
    • When activing Hypothesis on a page whose canonical URL has changed since it was first annotated, surface all annotations for that page, not just those made since the page had its current canonical URL (#3241). This fixes an issue where annotations disappeared from WordPress blogs.

    Bug fixes

    • Fix sidebar not scrolling to show Share or Login dialogs when activating them via links in the top bar (#3215).
    • Do not treat characters inside math expressions as possible markdown formatting commands (#3208).
    • Fix failure to anchor annotations made at the start of PDF pages (#3234).
    • Fixed KaTeX font URLs failing to load when rendering math (#3209).
    • Handle request failures more gracefully for various network requests made by the sidebar (#3210, #3211).

    Miscellanea

    • Switched real-time message processing from NSQ to RabbitMQ (#3217).
    Source code(tar.gz)
    Source code(zip)
    h-0.20.0.tar.gz(4.14 MB)
  • v0.19.1(Apr 14, 2016)

  • v0.19.0(Apr 14, 2016)

    Features

    • Background tasks are now processed by Celery workers rather than our own homebrew worker implementation (#3189).
    • Improved display for local files in the "recently annotated documents" list on group pages (#3200).

    Bug fixes

    • Fix the display of documents with multiple possible titles in group pages (#3200).

    Miscellanea

    • More changes to support the migration of annotation data to PostgreSQL (#3203, #3206).
    Source code(tar.gz)
    Source code(zip)
    h-0.19.0.tar.gz(2.24 MB)
  • v0.18.0(Apr 13, 2016)

    Features

    • Annotations are now available in (beta-quality) Web Annotation compatible JSON-LD format via the API (#3181).

    Bug fixes

    • Don't report expected/unavoidable errors when injecting the sidebar to Sentry (#3186).
    • Fix broken links the admin panel (#3187).
    • Fix an infinite loop occasionally triggered by the truncation of long annotations (#3188).

    Miscellanea

    • Numerous major changes to annotation storage as part of the work to migrate annotation data to PostgreSQL (#3153, #3184, #3190, #3199).
    • Add a skeleton functional test suite for the web application (#3198).
    Source code(tar.gz)
    Source code(zip)
    h-0.18.0.tar.gz(2.24 MB)
  • v0.17.0(Apr 6, 2016)

    Bug fixes

    • Fix a regression in sorting annotations when the sort order is set to 'Location' (#3179).
    • Clicking on an annotation quote now scrolls the page to that annotation when the quote is collapsed (#3180).

    Miscellanea

    • Add a live reload facility for development of the Hypothesis front-end (#3038).
    Source code(tar.gz)
    Source code(zip)
    h-0.17.0.tar.gz(2.24 MB)
  • v0.16.0(Apr 4, 2016)

  • v0.15.0(Mar 31, 2016)

    Features

    • Improved iconography for annotation cards (#3116).
    • Add "call to action" copy explaining to logged-out users what they're looking at when viewing a direct-linked annotation (#3124).
    • Annotation selections in the sidebar are now preserved across login/logout/account change -- this applies to "direct links" in particular (#3133).
    • Admin information pages for users now show group memberships (#3138).

    Bug fixes

    • Fixed a typo in the Chrome extension content security policy that caused extension console warnings (#3140).
    • Fix a bug that caused worker processes to crash when encountering unexpected exceptions while handling NSQ messages (#3156).

    Miscellanea

    • Sentry error reports from the client code are now configured using a distinct DSN (#3132).
    • Elasticsearch client timeouts and gunicorn worker timeouts are now configurable using environment variables (1a6ae98, e0ef808).
    Source code(tar.gz)
    Source code(zip)
    h-0.15.0.tar.gz(2.23 MB)
  • v0.14.0(Mar 23, 2016)

    Miscellanea

    • Remove usage of h.accounts.User.status bitfield (#3120).
    • Show message when a direct-linked annotation is selected but the annotation is not available (#3093).
    • Properly hook up Chrome production extension with production bouncer (#3077).
    Source code(tar.gz)
    Source code(zip)
    h-0.14.0.tar.gz(4.11 MB)
  • v0.13.0(Mar 22, 2016)

    Features

    • The 'adder' that appears when selecting text has a new, clearer design, and the toolbar 'note' button allows the creation of annotations when a selection has been made (#3078).
    • The client can now respond to a URL fragment of the form #annotations:<id> in order to focus and scroll to a specified annotation on page load (#3085).
    • The 'link' button on annotation cards can now display links to annotations in context on the page where they were made (feature flagged: direct_linking) (#3105).

    Bug fixes

    • Fixed an issue where the client displayed an inconsistent login state when switching accounts with Hypothesis active in multiple tabs (#2924).
    • Fixed an issue where private group annotations were not loaded correctly after switching user accounts (#3083).
    • The Chrome extension now correctly indicates when it was not injected into a page because another Hypothesis client is already present (#3097).
    • Fix cursor position after using editor toolbar buttons to create a new list or quote, if the selection was previously empty and the cursor was positioned at the start of the line (#3114).

    Miscellanea

    • The undocumented window.hypothesisInstall() function has been removed (#3098).
    • Substantial improvements to the feature flagging system, reducing the amount of network chatter between the application and the database (#3110, #3115).
    Source code(tar.gz)
    Source code(zip)
    h-0.13.0.tar.gz(2.22 MB)
  • v0.12.0(Mar 14, 2016)

    Bug fixes

    • Fixed error when rendering invalid LaTeX markup. As a side effect, the fallback to MathJax rendering for markup that is not supported by KaTeX has been removed for the time being (#3042).
    • Render annotation's text property as empty string instead of null (#3072).
    • Split out DocumentMeta type normalisation to only use it in the Postgres migration (#3090).

    Miscellanea

    • Render annotation links in API response (#3081) including an incontext link behind the direct-linking feature flag (#3087).
    • Properly hook up Chrome staging extension with staging bouncer (#3077).
    • Add a utility script to aid the transition away from CoffeeScript (#3075).
    • Remove h.claim package (#3089).
    • Clean up old and unused feature flags (#3088).
    Source code(tar.gz)
    Source code(zip)
    h-0.12.0.tar.gz(4.10 MB)
  • v0.11.0(Mar 8, 2016)

    Bug fixes

    • Replies are now correctly displayed after creation (#3057).
    • Fix a bug that caused annotations to be rendered incorrectly, both in the API (where they had a permission field instead of a permissions field) and in the UI (where they had edit controls they shouldn't have had) (#3059).
    • Fix a bug that caused page notes to be hidden on all pages (#3063).
    • Fix compatibility with IE 10, 11.0 and early versions of Microsoft Edge (#3064).
    • Restore two-step confirmation for user deletion in admin panel (#3066).

    Miscellanea

    • Early support for serving Content-Security-Policy headers from the application (#3024).
    Source code(tar.gz)
    Source code(zip)
    h-0.11.0.tar.gz(2.21 MB)
Owner
Hypothesis
We build software to enable the annotation of the web.
Hypothesis
this is a lite easy to use virtual keyboard project for anyone to use

virtual_Keyboard this is a lite easy to use virtual keyboard project for anyone to use motivation I made this for this year's recruitment for RobEn AA

Mohamed Emad 3 Oct 23, 2021
PiRapGenerator - Make anyone rap the digits of pi

PiRapGenerator Make anyone rap the digits of pi (sample files are of Ted Nivison

null 7 Oct 2, 2022
Fully Automated YouTube Channel ▶️with Added Extra Features.

Fully Automated Youtube Channel ▒█▀▀█ █▀▀█ ▀▀█▀▀ ▀▀█▀▀ █░░█ █▀▀▄ █▀▀ █▀▀█ ▒█▀▀▄ █░░█ ░░█░░ ░▒█░░ █░░█ █▀▀▄ █▀▀ █▄▄▀ ▒█▄▄█ ▀▀▀▀ ░░▀░░ ░▒█░░ ░▀▀▀ ▀▀▀░

sam-sepiol 249 Jan 2, 2023
Trace any Python program, anywhere!

lptrace lptrace is strace for Python programs. It lets you see in real-time what functions a Python program is running. It's particularly useful to de

Karim Hamidou 687 Nov 20, 2022
Your own movie streaming service. Easy to install, easy to use. Download, manage and watch your favorite movies conveniently from your browser or phone. Install it on your server, access it anywhere and enjoy.

Vigilio Your own movie streaming service. Easy to install, easy to use. Download, manage and watch your favorite movies conveniently from your browser

Tugcan Olgun 141 Jan 6, 2023
This is a modified variation of abhiTronix's vidgear. In this variation, it is possible to write the output file anywhere regardless the permissions.

Info In order to download this package: Windows 10: Press Windows+S, Type PowerShell (cmd in older versions) and hit enter, Type pip install vidgear_n

Ege Akman 3 Jan 30, 2022
A command-line tool to upload local files and pastebin pastes to your mega account, without signing in anywhere

A command-line tool to upload local files and pastebin pastes to your mega account, without signing in anywhere

ADI 4 Nov 17, 2022
Markup is an online annotation tool that can be used to transform unstructured documents into structured formats for NLP and ML tasks, such as named-entity recognition. Markup learns as you annotate in order to predict and suggest complex annotations. Markup also provides integrated access to existing and custom ontologies, enabling the prediction and suggestion of ontology mappings based on the text you're annotating.

Markup is an online annotation tool that can be used to transform unstructured documents into structured formats for NLP and ML tasks, such as named-entity recognition. Markup learns as you annotate in order to predict and suggest complex annotations. Markup also provides integrated access to existing and custom ontologies, enabling the prediction and suggestion of ontology mappings based on the text you're annotating.

Samuel Dobbie 146 Dec 18, 2022
Annotate your Python requirements.txt file with summaries of each package.

Summarize Requirements ?? ?? Annotate your Python requirements.txt file with a short summary of each package. This tool: takes a Python requirements.t

Zeke Sikelianos 8 Apr 22, 2022
Identify and annotate mutations from genome editing assays.

CRISPR-detector Here we propose our CRISPR-detector to facilitate the CRISPR-edited amplicon and whole genome sequencing data analysis, with functions

hlcas 2 Feb 20, 2022
IDA Pro Python plugin to analyze and annotate Linux kernel alternatives

About This is an IDA Pro (Interactive Disassembler) plugin allowing to automatically analyze and annotate Linux kernel alternatives (content of .altin

Open Source Security, Inc. 16 Oct 12, 2022
Show Rubygems description and annotate your code right from Sublime Text.

Gem Description for Sublime Text Show Rubygems description and annotate your code. Just mouse over your Gemfile's gem definitions to show the popup. s

Nando Vieira 2 Dec 19, 2022
Force you (or your user) annotate Python function type hints.

Must-typing Force you (or your user) annotate function type hints. Notice: It's more like a joke, use it carefully. If you call must_typing in your mo

Konge 13 Feb 19, 2022
Annotate datasets with a semi-trained or fully trained YOLOv5 model

YOLOv5 Auto Annotator Annotate datasets with a semi-trained or fully trained YOLOv5 model Prerequisites Ubuntu >=20.04 Python >=3.7 System dependencie

Akash James 3 May 14, 2022
pytest splinter and selenium integration for anyone interested in browser interaction in tests

Splinter plugin for the pytest runner Install pytest-splinter pip install pytest-splinter Features The plugin provides a set of fixtures to use splin

pytest-dev 238 Nov 14, 2022
GlobaLeaks is free, open source software enabling anyone to easily set up and maintain a secure whistleblowing platform.

GlobaLeaks is free, open souce software enabling anyone to easily set up and maintain a secure whistleblowing platform. Continous Integration and Test

GlobaLeaks 995 Jan 1, 2023
Oppia is an online learning tool that enables anyone to easily create and share interactive activities

Oppia is an online learning tool that enables anyone to easily create and share interactive activities (called 'explorations'). These activities simulate a one-on-one conversation with a tutor, making it possible for students to learn by doing while getting feedback.

Oppia 4.7k Dec 29, 2022
Fabric mod where anyone can PR anything, concerning or not. I'll merge everything as soon as it works.

Guess What Will Happen In This Fabric mod where anyone can PR anything, concerning or not (Unless it's too concerning). I'll merge everything as soon

anatom 65 Dec 25, 2022
null 4 Oct 28, 2021
Paimon is a pixie (or script) who was made for anyone from {EPITECH} who are struggling with the Coding Style.

Paimon Paimon is a pixie (or script) who was made for anyone from {EPITECH} who are struggling with the Coding Style. Her goal is to assist you in you

Lyy 2 Oct 17, 2021