{"id":23937839,"url":"https://github.com/earizon/single-page-book","last_synced_at":"2026-02-27T21:03:43.015Z","repository":{"id":92992439,"uuid":"239277236","full_name":"earizon/Single-Page-Book","owner":"earizon","description":"Pragmatical way to create cheat-sheets, bookmarks, full-books in a single page.  This project has been project has been superseded by the txt_world_domination project","archived":false,"fork":false,"pushed_at":"2021-12-24T07:57:12.000Z","size":2486,"stargazers_count":8,"open_issues_count":0,"forks_count":1,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-05-06T03:39:52.056Z","etag":null,"topics":["cms","learning","mindmap","notebooks","notes","wiki","zettelkasten"],"latest_commit_sha":null,"homepage":"https://singlepagebookproject.github.io/Single-Page-Book/","language":"HTML","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/earizon.png","metadata":{"files":{"readme":"README.html","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":"2020-02-09T09:24:22.000Z","updated_at":"2024-11-29T09:22:48.000Z","dependencies_parsed_at":null,"dependency_job_id":"43fa9a1d-b216-48b6-958a-c7aceaaf17c0","html_url":"https://github.com/earizon/Single-Page-Book","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/earizon/Single-Page-Book","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/earizon%2FSingle-Page-Book","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/earizon%2FSingle-Page-Book/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/earizon%2FSingle-Page-Book/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/earizon%2FSingle-Page-Book/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/earizon","download_url":"https://codeload.github.com/earizon/Single-Page-Book/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/earizon%2FSingle-Page-Book/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29913686,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-27T19:37:42.220Z","status":"ssl_error","status_checked_at":"2026-02-27T19:37:41.463Z","response_time":57,"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":["cms","learning","mindmap","notebooks","notes","wiki","zettelkasten"],"created_at":"2025-01-06T02:14:42.492Z","updated_at":"2026-02-27T21:03:42.986Z","avatar_url":"https://github.com/earizon.png","language":"HTML","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003chtml\u003e\n\u003chead\u003e\n   \u003cmeta charset=\"UTF-8\"\u003e\n\u003cstyle\u003e\nh1, h2, h3, body { font-family: sans-serif; /*text-shadow: 0px 0px 1px #555;*/ line-height:1.4; \n}\nbody { \n  max-width: 50em;\n  margin-left:3%;\n  padding-left:1rem;\n  padding-right:1rem;\n  padding-top:1rem;\n  box-shadow: -10px 0px 10px 10px #aaaaaa; \n}\n*[green] {background-color: #AFA; text-align:center; }\n*[red]   {background-color: #FAA; text-align:center; }\ntd { width: 10em; }\npre { font-size: 1.2em; }\n\u003c/style\u003e\n\u003cscript\u003e\nfunction onPageLoaded() {\n  const html = '' \n      + '\u003cimage style=\"height:0; width:0; size:0;\" '\n      + ' src=\"http://www.oficina24x7.com/visited/'+escape(document.location)+'\" \u003e\u003c/image\u003e'\n  document.getElementById(\"afterEndMark\").insertAdjacentHTML('afterend', html)\n}\nwindow.addEventListener('load', onPageLoaded )\n\u003c/script\u003e\n\u003c/head\u003e\n\u003cbody\u003e\n\u003cdiv style=\"text-align:center\"\u003e\n    \u003cimg src=\"./background.jpg\" style=\"max-width:90%\" /\u003e\u003cbr/\u003e\n\u003c/div\u003e\n\n\u003ch1\u003eAbout SPB \u003c/h1\u003e\n\u003cul\u003e\n    \u003cli\u003eSPB stands for Single Page Book. It aims at unifying books,\n       mind-maps, cheat-sheet contents creation in a single web page\n       that can be created and updated \"a la Zettelkasten\" \n       \u003csup\u003e\n         \u003ca href=\"https://medium.com/emvi/luhmanns-zettelkasten-a-productivity-tool-that-works-like-your-brain-abe2d53a2948\" target=\"_new\"\u003e1\u003c/a\u003e,\n         \u003ca href=\"https://writingcooperative.com/zettelkasten-how-one-german-scholar-was-so-freakishly-productive-997e4e0ca125\" target=\"_new\"\u003e2\u003c/a\u003e\n       \u003c/sup\u003e\n       \u003cb\u003e in order to keep notes organized and improving throughout years/decades\u003c/b\u003e.\u003cbr/\u003e\n       \u003cp\u003e\n        As an indirect (not initially planned) consequence, it also provides for\n        a \u003cb\u003elight-weight alternative to Content Management Systems (WordPress, Confluence, Plone,\n        Sharepoint, ...) and Project tracking systems (\"Jira\", \"Bugzilla\", ...).\u003c/b\u003e\n       \u003c/p\u003e\n    \u003c/li\u003e\n    \u003cli\u003eSPB offers a pragmatical replacement for \"heavy-weight\"\n       Content Management Systems running on complex server setups,\n       by using just pure HTML/CSS consumed by web-browsers running\n       on a laptop or mobile.\n    \u003c/li\u003e\n    \u003cli\u003eContent data is moved from \"always online\" databases\n      to plain \u003cb\u003esafe HTML files\u003c/b\u003e easy to manage and backup without\n      complex IT administration skills.\n    \u003c/li\u003e\n    \u003cli\u003eExtra information about How SPB compares with some other content \n        publication and management tools can be read \u003ca href=\"./index.html\"\u003ehere\u003c/a\u003e.\n    \u003c/li\u003e\n\u003c/ul\u003e\n\n\u003cp\u003e\n    SPB promotes a \"best-patterns\" approach to  Documentation by:\n    \u003cul\u003e\n      \u003cli\u003e ✓ Putting related info close to each other.\u003c/li\u003e\n      \u003cli\u003e ✓ Don't repeat twice. \u003c/li\u003e\n      \u003cli\u003e ✓ Use your hard disk to save classified information, not documents:\u003cbr/\u003e\n          Don't keep information spread (\"hidden\" or \"lost\") amongst hundred of emails,\n          posts, chats, words, custom databases, excels and binary files of\n          random nature. Internet standard Hypertext Markup Language (HTML) and a\n          text editor (notepad, ultraedit, vim,...) is all you need.\n      \u003c/li\u003e\n\n      \u003cli\u003e ✓ Avoid using (expensive and complex to setup and maintain) search engines\n          to find for lost information:\u003cbr/\u003e\n          \u003cb\u003eWith SPS information is never lost!!!.\u003c/b\u003e\u003cbr/\u003e\n          (\u003cb style=\"color:green;\"\u003eRemember: Take control of the information before\n               the information takes control of you!\u003c/b\u003e)\n      \u003c/li\u003e\n      \u003cli\u003e ✓ Don't use proprietary formats for important documentation: \u003cbr/\u003e\n      HTML will be well supported in any electronic platform and by many\n      different working groups for always, proprietary formats will not.\n      \u003c/li\u003e\n\n    \u003c/ul\u003e\n\u003c/p\u003e\n\n\n\u003ch1\u003eUse-cases\u003c/h1\u003e\n\u003cul\u003e\n  \u003cli\u003eAdvanced notebooks\u003c/li\u003e\n  \u003cli\u003eCheat-sheets with steroids.\u003c/li\u003e\n  \u003cli\u003e\"Ever growing\" mind-maps (make them evolve the way your brain likes it).\u003c/li\u003e\n  \u003cli\u003eBrain-to-brain synchronization: make multiple brains work like a team.\u003c/li\u003e\n  \u003cli\u003eProject management, canvas and issue-track management.\u003c/li\u003e\n  \u003cli\u003e\"Light\" weight database.\u003c/li\u003e\n  \u003cli\u003e(add your own here)\u003c/li\u003e\n\u003c/ul\u003e\n\n\u003ch1\u003eMicro \"How-To\"\u003c/h1\u003e\n\u003col\u003e\n    \u003cli\u003eInstall a light-weight web (HTML) server on your PC.\u003cbr/\u003e\n        An simple way is to \u003ca href=\"https://www.python.org/downloads/\"\u003edownload\u003c/a\u003e\n       and install python 3. Then from the terminal (Linux/Mac) or the command\n       prompt (Windows) execute next 3 commands and press Enter key( ⏎ ) to confirm.\n       \u003cpre\u003e\nCommand to execute:                          Explanation\nC:\\users\\myUser \u003e mkdir project01⏎     ←···· [m]a[k]e (or create) new [dir]ectory\n                                             where the page will be stored\n                                            \nC:\\users\\myUser \u003e cd    project01⏎     ←···· [c]hange [d]irectory\n\nC:\\users\\myUser \u003e python3 -m http.server⏎  ← Execute \u003cb\u003esafe\u003c/b\u003e web server pointing\n                                             (only our computer will be able to\n                                              access the content server)\n       \u003c/pre\u003e\n    \u003c/li\u003e\n    \u003cli\u003eCopy next files to the directory where pages will be placed:\n        \u003cpre\u003e\n        \u003ca href=\"https://raw.githubusercontent.com/SinglePageBookProject/SPB/master/map_template.html\"\u003emap_template.html\u003c/a\u003e\n        \u003ca href=\"https://raw.githubusercontent.com/SinglePageBookProject/SPB/master/map_v1.css\"\u003emap_v1.css\u003c/a\u003e\n        \u003ca href=\"https://raw.githubusercontent.com/SinglePageBookProject/SPB/master/map_v1.js\"\u003emap_v1.js\u003c/a\u003e\n        \u003ca href=\"https://raw.githubusercontent.com/SinglePageBookProject/SPB/master/custom.js\"\u003ecustom.js\u003c/a\u003e\n        \u003c/pre\u003e\n        Rename \u003cb\u003emap_template.html\u003c/b\u003e to provide a sensible name. All others files just need to be \n        downloaded once. They will be reused again and again.\u003cbr/\u003e\n        \u003cb\u003e\"map_v1.js\"\u003c/b\u003e contains the minimum Javascript code used to navigate and react \n        to user actions.\u003cbr/\u003e\n        \u003cb\u003e\"map_v1.css\"\u003c/b\u003e contains the Cascading Style Sheets to \"beautify\" the content.\u003cbr/\u003e\n        \u003cb\u003e\"custom.js\"\u003c/b\u003e allows advanced customization. Just leave it next to the other files\n        and forget.\n    \u003c/li\u003e\n    \u003cli\u003ePoint your browser to \u003ca href=\"http://localhost:8000\" target=\"_new\"\u003ehttp://localhost:8000\u003c/a\u003e and\n        click in you renamed template html file.\u003cbr/\u003e\n        Note that \u003cb\u003elocalhost is an special safe and private address\u003c/b\u003e pointing to your local computer.\u003cbr/\u003e\n        Nobody outside your computer can access it.\u003cbr/\u003e \n        More info \u003ca href=\"https://en.wikipedia.org/wiki/Localhost\" target=\"_new\"\u003e[here]\u003c/a\u003e.\n    \u003c/li\u003e\n    \u003cli\u003eCongratulations! You are done. Now it's time to add notes by just adding some html blocks \n        tagged with \u003ccode\u003ezoom\u003c/code\u003e and \u003ccode\u003elabels\u003c/code\u003e attributes.\u003cbr/\u003e\n          Reload your web page to see the results. Play around until you feel comfortable \n        and \u003cb\u003eget ready to take control of your information Forever!!!\u003c/b\u003e.\u003cbr/\u003e\n    \u003c/li\u003e\n\u003c/ol\u003e\n\n\u003ch1\u003eNext steps\u003c/h1\u003e\n\u003cul\u003e\n    \u003cli\u003eAt some point you may be interested in sharing you information with your team or make it\n        public. If that's the case you can just upload your files to any web hosting provider.\u003cbr/\u003e\n        Or you can start your server with the option \u003ccode\u003e--bind 0.0.0.0\u003c/code\u003e like:\n\u003cpre\u003e\nC:\\users\\myUser \u003e python3 -m http.server --bind 0.0.0.0\n\u003c/pre\u003e\n       Now your local web server is accessible to your local (WiFi, Ethernet or VPN) network \n       through the local IP of your PC but nobody outside in the \"World \u003cs\u003eWide\u003c/s\u003eWild Web\" can\n       reach it.\u003cbr/\u003e\n    \u003c/li\u003e\n    \u003cli\u003eIt could be the case that you need to collaborate with people and take \n        control of even the smallest changes or you need to apply some workflow \n        before considering the documentation valid or rollback latest changes, or\n        create different versions of the content....\u003cbr/\u003e\n         Them it is time for you to learn Git. It could be a little bit \n        scaring to get used to Git for the first time and the step learning\n        curve is relatively high (about 5-15 days) but the time spent is worth\n        the effort if you plan to take control of your information for the\n        rest of your life.\u003cbr/\u003e\n          Git will surprise you with all its \"goodies\". In fact Git is the\n        tool used by the \"big ones\" of the Internet (Google, Apple, Microsoft,\n        AWS, ...). It allows to work offline and merge change among team groups\n        with easy, see changes from current version to a previous one, alert \n        about conflicts when two different users edit the same information in\n        parallel and helps to fix them with easy. It lets you come back to \n        past version without loosing the latest changes, create different \n        versions (branches) of the same document and merge those versions \n        later on (or just discard one of them, or part of one of them).\n        \u003cbr/\u003e\n         And if Git scares you or you don't have time to learn it, don't worry!. \n        You can still deal with your documents as standard text files. Copy to \n        a backup or version folder, send as e-mail attachments, or zip with a \n        password. Leave Git apart until you have time to learn it.\n    \u003c/li\u003e\n\u003c/ul\u003e\n\n\u003ch1\u003eFeatures\u003c/h1\u003e\n\u003cul\u003e\n    \u003cli\u003e✓ No coding skills needed, just familiarity with HTML.\u003c/li\u003e\n    \u003cli\u003e✓ Navigate notes \"a la Google maps\" by zooming in/out, or \n        \"a la Zettlekasten way\" by showing related notes by topic and/or direct-link.\n    \u003c/li\u003e\n    \n         (rollbacks, pull requests, versioning, branching, ...)\n    \u003c/li\u003e\n    \u003cli\u003e✓ Print to paper support:\n      print-paper CSS support, useful for first-lectures (start-to-end) of content\n      Ex: Two views of the same content:\n      -  Map: https://singlepagebookproject.github.io/IT_notes/Blockchain/ethereum_map.html\n      - book: http://www.oficina24x7.com/Blockchain/ethereum_map.pdf\n    \u003c/li\u003e\n    \u003cli\u003e✓ All information available one click away, and related pages can be\n         displayed close to each other.\n    \u003c/li\u003e\n    \u003cli\u003e✓ save searches/sub-books classified by by-topic/text as URL bookmarks.\n    \u003c/li\u003e\n    \u003cli\u003e✓ Quick classification/search/heat-map using topics.\u003c/li\u003e\n    \u003cli\u003e ✓ Designed to \u003cb\u003eavoid the dangerous \"UNKNOWN UNKNOWNS\"\u003c/b\u003e:\u003cbr/\u003e\n         SPB is designed to show all related information as close as possible to \n         each other as to avoid missing unknown-unknowns. \u003cbr/\u003e\n          As an example, this is how Google presents QA (Quality Assurance) when\n          search for \u003ca href=\"https://www.google.com/search?q=java+qa\" target=\"_blank\"\u003e\n          JAVA QA related results\u003c/a\u003e and this is how SPB presents the same\n          \u003ca href=\"https://singlepagebookproject.github.io/IT_notes/JAVA/java_map.html?topics=qa\"\n             target=\"_blank\"\u003eJAVA QA related results\u003c/a\u003e.\u003cbr/\u003e\n         \u003cb\u003eEven if Google has access to millions of different pages, it tends to\n             be biased toward just an very small subset of content\u003c/b\u003e. In particular,\n         that related to automated acceptance tests.\u003cbr/\u003e\n           This probably explain why Java newbies guided by Google results tend to\n         do buggy JAVA applications and, since Google page-rank favors most linked \n         pages the biased search mechanism feeds ad infinitum. \u003cbr/\u003e\n           SPB JAVA notes, manually collected\u0026amp; classified throughout the time,\n         will always present all QA related information with no bias. \n           There are no reasons to suppose that automated testing is less or \n         more important than other QA topics related to async.programming, internal \n         data collection management or persistence tools. By presenting them all \n         in parallel we decrease the danger of unknown-unknowns.\n      \u003c/pre\u003e \n    \u003c/li\u003e\n    \u003cli\u003e✓ Easy backup: Copy your files somewhere else, attach to an e-mail, That's all!!!\n    \u003c/li\u003e\n    \u003cli\u003e✓ Offline navigation.\u003c/li\u003e\n\u003c/ul\u003e\n\n\n\u003ch1\u003eGallery of SPB Books\u003c/h1\u003e\n\u003cul\u003e\n    \u003cli\u003e\u003ca target=\"_new\" href=\"https://singlepagebookproject.github.io/IT_notes/General/cryptography_map.html\"\u003e\n       Book/Mind-Map on cryptography\u003c/a\u003e\u003c/li\u003e\n    \u003c/li\u003e\n    \u003cli\u003e\u003ca target=\"_new\" href=\"https://singlepagebookproject.github.io/IT_notes/WebTechnologies/map.html\"\u003e\n       Book/Mind-Map on Web technologies\u003c/a\u003e\u003c/li\u003e\n    \u003cli\u003e\u003ca target=\"_new\" href=\"https://singlepagebookproject.github.io/IT_notes/DevOps/linux_administration_summary.html\"\u003e\n       Book/Mind-Map on Linux administration\u003c/a\u003e\u003c/li\u003e\n    \u003c/li\u003e\n    \u003cli\u003e\u003ca target=\"_new\" href=\"demo_project_tracker.html\"\u003eSPB as a project tracker\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\n\n\u003ch1\u003ePlanned Features\u003c/h1\u003e\n\u003cul\u003e\n  \u003cli\u003ePredefined documentation topics (TODO, draft, important, review,\n      1min/10min/... lecture time,...)\u003c/li\u003e\n  \u003cli\u003eminimal WYSIWYG support for newcomers.\u003c/li\u003e\n  \u003cli\u003eEnhanced support for topics providing best pattern to taxonomy\n      classification. \u003c/li\u003e\n  \u003cli\u003eAllow to reuse third party ontologies already developed\n      by experts to classify content.\u003c/li\u003e\n  \u003cli\u003eBetter support for diagrams using Mermaid.\u003c/li\u003e\n  \u003cli\u003eAdvanced \"nearby\" algorithms to search for related content.\u003c/li\u003e\n  \u003cli\u003e \u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ePlanned (far) Features\u003c/h1\u003e\n\u003cul\u003e\n  \u003cli\u003eIA help system to automatically tag notes by topics.\u003c/li\u003e\n\u003c/ul\u003e\n\n  \n\u003ch1\u003eApropos\u003c/h1\u003e\n\u003cul\u003e\n  \u003cli\u003eThis is a hobby project with zero commercial support. \u003c/li\u003e\n  \u003cli\u003eIf you are interested on its development don't forget to \n    \u003ca href=\"https://github.com/SinglePageBookProject/\" target=\"_blank\"\u003e\n    star it on Github\u003c/a\u003e or contribute with pull-requests or \n    \u003ca href=\"https://github.com/SinglePageBookProject/Single-Page-Book/issues\" target=\"_blank\"\u003e bug-reports \u003c/a\u003e.\n  \u003c/li\u003e\n\u003c/ul\u003e\n\n\u003cspan id=\"afterEndMark\"\u003e\u003c/span\u003e\n\u003c/body\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fearizon%2Fsingle-page-book","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fearizon%2Fsingle-page-book","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fearizon%2Fsingle-page-book/lists"}