{"id":13836859,"url":"https://github.com/rexim/org-cliplink","last_synced_at":"2026-01-25T09:34:11.526Z","repository":{"id":22964931,"uuid":"26314778","full_name":"rexim/org-cliplink","owner":"rexim","description":"Insert org-mode links from clipboard","archived":false,"fork":false,"pushed_at":"2023-04-30T23:53:53.000Z","size":143,"stargazers_count":303,"open_issues_count":51,"forks_count":11,"subscribers_count":8,"default_branch":"master","last_synced_at":"2024-02-17T07:36:23.095Z","etag":null,"topics":["emacs-lisp","hacktoberfest","org-mode"],"latest_commit_sha":null,"homepage":"","language":"Emacs Lisp","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/rexim.png","metadata":{"files":{"readme":"README.org","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2014-11-07T10:21:15.000Z","updated_at":"2024-01-23T01:57:25.000Z","dependencies_parsed_at":"2024-01-13T17:10:06.419Z","dependency_job_id":null,"html_url":"https://github.com/rexim/org-cliplink","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/rexim/org-cliplink","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rexim%2Forg-cliplink","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rexim%2Forg-cliplink/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rexim%2Forg-cliplink/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rexim%2Forg-cliplink/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rexim","download_url":"https://codeload.github.com/rexim/org-cliplink/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rexim%2Forg-cliplink/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28750875,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-25T09:00:19.176Z","status":"ssl_error","status_checked_at":"2026-01-25T09:00:04.131Z","response_time":113,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["emacs-lisp","hacktoberfest","org-mode"],"created_at":"2024-08-04T15:00:55.818Z","updated_at":"2026-01-25T09:34:11.511Z","avatar_url":"https://github.com/rexim.png","language":"Emacs Lisp","funding_links":[],"categories":["Emacs Lisp"],"sub_categories":[],"readme":"[[http://melpa.org/#/org-cliplink][file:http://melpa.org/packages/org-cliplink-badge.svg]]\n[[https://travis-ci.org/rexim/org-cliplink][file:https://travis-ci.org/rexim/org-cliplink.svg?branch=master]]\n[[https://coveralls.io/r/rexim/org-cliplink][file:https://coveralls.io/repos/rexim/org-cliplink/badge.svg]]\n\n* org-cliplink\n\n  [[http://i.imgur.com/oA0birm.gif]]\n\n  A simple command that takes a URL from the clipboard and inserts an\n  org-mode link with a title of a page found by the URL into the\n  current buffer.\n\n  This code was a part of my Emacs config almost a year. I decided to\n  publish it as a separate package in case someone needs this feature\n  too.\n\n* Usage\n\n** org-cliplink\n\n   Bind ~org-cliplink~ function to something. For example, put this\n   line in your init file:\n\n   #+BEGIN_SRC emacs-lisp\n     (global-set-key (kbd \"C-x p i\") 'org-cliplink)\n   #+END_SRC\n\n   Then copy any http/https URL to the clipboard, switch to the Emacs\n   window and hit ~C-x p i~.\n\n** org-cliplink-capture\n\n   ~org-cliplink~ version for [[https://www.gnu.org/software/emacs/manual/html_node/org/Capture.html#Capture][org-capture]] templates. Makes synchronous\n   request. Returns the link instead of inserting it to the current\n   buffer. *Doesn’t support Basic Auth. Doesn’t support cURL\n   transport.*\n\n   Here is how it's supposed to be used in [[https://www.gnu.org/software/emacs/manual/html_node/org/Capture-templates.html#Capture-templates][org-capture-templates]]:\n\n   #+BEGIN_SRC emacs-lisp\n     (setq org-capture-templates\n        '((\"K\" \"Cliplink capture task\" entry (file \"\")\n           \"* TODO %(org-cliplink-capture) \\n  SCHEDULED: %t\\n\" :empty-lines 1)))\n   #+END_SRC\n\n** Custom Transformers\n\n   You can actually customize how org-cliplink transforms and inserts\n   url and title to the current buffer. To do that use\n   ~org-cliplink-insert-transformed-title~ function. It takes the URL\n   and a CALLBACK which is invoked when the title is retrieved.\n\n   For example, if you want to strip off ~Github - \u003cdescription\u003e:~\n   from the GitHub titles you can implement the following\n   ~custom-org-cliplink~ function and use it instead of the original\n   ~org-cliplink~:\n\n   #+BEGIN_SRC emacs-lisp\n     (defun custom-org-cliplink ()\n       (interactive)\n       (org-cliplink-insert-transformed-title\n        (org-cliplink-clipboard-content)     ;take the URL from the CLIPBOARD\n        (lambda (url title)\n          (let* ((parsed-url (url-generic-parse-url url)) ;parse the url\n                 (clean-title\n                  (cond\n                   ;; if the host is github.com, cleanup the title\n                   ((string= (url-host parsed-url) \"github.com\")\n                    (replace-regexp-in-string \"GitHub - .*: \\\\(.*\\\\)\" \"\\\\1\" title))\n                   ;; otherwise keep the original title\n                   (t title))))\n            ;; forward the title to the default org-cliplink transformer\n            (org-cliplink-org-mode-link-transformer url clean-title)))))\n   #+END_SRC\n\n* Requirements\n\n  - Linux\n  - Emacs version 24.4+\n  - cURL 7.35.0+ (optional)\n\n** Windows\n\n   Windows is not officially supported until [[https://github.com/rexim/org-cliplink/issues/35][#35]] is resolved.\n\n   - GnuTLS — if you use Emacs installation from the official GNU FTP\n     server — ftp://ftp.gnu.org/gnu/emacs/windows/ — you may simply\n     download the latest version of GnuTLS from\n     ftp://ftp.gnutls.org/gcrypt/gnutls/w32/ and copy the content of\n     the downloaded archive to the emacs installation folder.\n\n* Bugs\n\n  https://github.com/rexim/org-cliplink/labels/bug\n\n* Development\n\n  1. open ~org-cliplink.el~ in Emacs;\n  2. change something;\n  3. ~M-x eval-buffer RET~;\n  4. manual testing;\n  5. go to 3 until it's done;\n\n** Automated testing\n\n   For automated testing you need to install [[http://cask.readthedocs.org/en/latest/][Cask]] first.\n\n   To run unit tests:\n\n   #+BEGIN_SRC bash\n     $ cask # only once to download development dependencies\n     $ cask exec ert-runner\n   #+END_SRC\n\n   To run integration and unit tests together:\n\n   #+BEGIN_SRC bash\n     $ ./run-travis-ci.sh\n   #+END_SRC\n\n   This exact script is run on every push to [[https://github.com/rexim/org-cliplink][org-cliplink GitHub repo]]\n   on [[https://travis-ci.org/rexim/org-cliplink/][Travis CI]] (that's why it's called ~run-travis-ci.sh~). This\n   script starts up a testing web-server, executes integrations tests\n   defined in ~*-integration-tests.el~ files and executes unit tests\n   after that.\n\n   You can start the testing web-server standalone:\n\n   #+BEGIN_SRC bash\n     $ ./run-testing-server.py\n   #+END_SRC\n\n   It requires Python 2.7.6+. It will serve ~test-data/site~ folder on\n   different ports with different features (like HTTPS, Gziped\n   content, Basic Auth, etc.).\n\n   To stop the server just ~^C~ it.\n\n   The automated testing stuff was tested only under Linux so far.\n\n** Contribution\n\n   This command doesn't handle some cases (like different encodings) but\n   I do my best to improve it. If you find this code useful and want to\n   make a contribution I'm waiting for your pull requests. :)\n   \n   Thanks.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frexim%2Forg-cliplink","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frexim%2Forg-cliplink","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frexim%2Forg-cliplink/lists"}