{"id":13680639,"url":"https://github.com/thanhvg/emacs-howdoyou","last_synced_at":"2025-10-25T19:41:11.243Z","repository":{"id":45703310,"uuid":"200993603","full_name":"thanhvg/emacs-howdoyou","owner":"thanhvg","description":"Search and read stackoverflow and its sisters’ sites","archived":false,"fork":false,"pushed_at":"2025-03-21T01:04:54.000Z","size":4106,"stargazers_count":69,"open_issues_count":8,"forks_count":7,"subscribers_count":6,"default_branch":"master","last_synced_at":"2025-09-12T14:51:23.868Z","etag":null,"topics":["elisp","emacs","emacs-lisp","package","stackoverflow"],"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/thanhvg.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,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-08-07T07:09:40.000Z","updated_at":"2025-05-01T02:09:54.000Z","dependencies_parsed_at":"2024-06-19T16:03:17.290Z","dependency_job_id":"dd3b843e-09e6-4762-a010-afb2c5379c36","html_url":"https://github.com/thanhvg/emacs-howdoyou","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/thanhvg/emacs-howdoyou","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thanhvg%2Femacs-howdoyou","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thanhvg%2Femacs-howdoyou/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thanhvg%2Femacs-howdoyou/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thanhvg%2Femacs-howdoyou/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/thanhvg","download_url":"https://codeload.github.com/thanhvg/emacs-howdoyou/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thanhvg%2Femacs-howdoyou/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":276679032,"owners_count":25684842,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-09-24T02:00:09.776Z","response_time":97,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["elisp","emacs","emacs-lisp","package","stackoverflow"],"created_at":"2024-08-02T13:01:19.577Z","updated_at":"2025-09-24T02:18:16.380Z","avatar_url":"https://github.com/thanhvg.png","language":"Emacs Lisp","funding_links":[],"categories":["Emacs Lisp"],"sub_categories":[],"readme":"#+STARTUP:    align fold hidestars oddeven indent \n#+TITLE: Emacs Howdoyou - A package to search and read stackoverflow and its sisters' sites\n\n[[http://spacemacs.org][file:https://cdn.rawgit.com/syl20bnr/spacemacs/442d025779da2f62fc86c2082703697714db6514/assets/spacemacs-badge.svg]]\n\n[[file:screenshots/howdoyou.png]]\n\n* Intro\nThis package is inspired by howdoi python and howdoi Emacs packages. it searches\nyour query all across stackoverflow and it's sisters' sites. They are:\n- stackoverflow.com\n- stackexchange.com \n- superuser.com\n- serverfault.com\n- askubuntu.com\n\nThe result is then showed in an ~org-mode~ buffer. For each result, question and\nthree answers were showed, but they are collapsed by default except the first\nanswer. As this package uses Google to get the links, for each query there will\nbe a dozen of links, the fist link will be used, then users can go to next\nlink and previous link. The author believes that when searching for solutions it\nis important for users to read both questions and answers, so no \"quick look\"\nfeatures such as code only view or code completion are provided.\n* Install\nMELPA\n\n[[https://melpa.org/#/howdoyou][file:https://melpa.org/packages/howdoyou-badge.svg]]\n\nSpacemacs layer:\n\nhttps://github.com/thanhvg/spacemacs-eos\n\n* Dependencies\n~promise~ and ~request~ are required.\nUser must have ~org-mode~ 9.2 or later installed also.\n\n* Commands\n- ~howdoyou-query:~                 prompt for query and do search\n- ~howdoyou-next-link:~             go to next link\n- ~howdoyou-previous-link:~         go to previous link\n- ~howdoyou-go-back-to-first-link:~ go back to first link\n- ~howdoyou-reload-link:~           reload link\n* Customization\n- ~howdoyou-use-curl:~ default is true if ~curl~ is available\n- ~howdoyou-number-of-answers:~ maximal number of answers to show, default is 3\n- ~howdoyou-switch-to-answer-buffer~: switch to answer buffer if non nil, default is nil\n* Use with helm-google-suggest\nadd this snippet to you config file\n#+begin_src elisp\n  (with-eval-after-load \"helm-net\"\n    (push (cons \"How Do You\"  (lambda (candidate) (howdoyou-query candidate)))\n          helm-google-suggest-actions))\n#+end_src\nNow =helm-google-suggest= will pass suggestion to howdoyou-query as default\naction.\n\nNote that =spacemas-eos= has its own faster google suggetion engine provided by\n[[https://github.com/thanhvg/emacs-google-suggest][google-suggest]] package.\n\n* Use with counsel-web-suggest\nRequires installed and configured 3rd party package [[https://github.com/mnewt/counsel-web][counsel-web]].\n\nadd this function definition to your config file\n#+begin_src elisp\n  (defun my/howdoyou-with-suggestions ()\n    \"Call `howdoyou-query' with suggestions from `counsel-web-suggest'.\"\n    (interactive)\n    (counsel-web-suggest nil\n                        \"How Do You: \"\n                        #'counsel-web-suggest--google\n                        (lambda (x)\n                          (howdoyou-query x))))\n#+end_src\nNow when calling =my/howdoyou-with-suggestion= (either from ~M-x~ or by [[https://www.gnu.org/software/emacs/manual/html_node/elisp/Changing-Key-Bindings.html][key binding]] of your choice)\nit will pass =counsel-web-suggest= suggestions to howdoyou-query.\n\n* Demo\n\n[[file:screenshots/howdoyou.gif]]\n\n\n[[file:screenshots/howdoyou2.gif]]\n\n* Test\n** generate google html files\n#+begin_src sh\ncd test\nbash curl.sh\n#+end_src\nnew google html files are created to run test aganst them.\n** run test\nat project root\n#+begin_src sh\ncask exec ert-runner\n#+end_src\n* Contributors (in no particular order):\n[[https://github.com/dvzubarev][dvzubarev]], [[https://github.com/leothelocust][leothelocust]], [[https://github.com/dickmao][dickmao]], [[https://github.com/AloisJanicek][Alois Janíček]], [[https://github.com/EvanMeek][Evan]], [[https://github.com/Boruch-Baum][Boruch Baum]]\n\n* Shoutout\n- https://github.com/chuntaro/emacs-promise\n- https://github.com/tkf/emacs-request\n\n* References\n- https://github.com/gleitz/howdoi\n- https://github.com/lockie/emacs-howdoi\n- https://github.com/atykhonov/emacs-howdoi\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthanhvg%2Femacs-howdoyou","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fthanhvg%2Femacs-howdoyou","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthanhvg%2Femacs-howdoyou/lists"}