{"id":13557405,"url":"https://github.com/karlicoss/beepb00p","last_synced_at":"2025-04-09T19:23:59.308Z","repository":{"id":141611326,"uuid":"219217795","full_name":"karlicoss/beepb00p","owner":"karlicoss","description":"My blog!","archived":false,"fork":false,"pushed_at":"2024-01-10T00:56:06.000Z","size":606,"stargazers_count":84,"open_issues_count":2,"forks_count":4,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-04-02T20:05:08.135Z","etag":null,"topics":["blog","hakyll","ipython","org-babel","org-mode"],"latest_commit_sha":null,"homepage":"https://beepb00p.xyz","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/karlicoss.png","metadata":{"files":{"readme":"README.org","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","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-11-02T21:44:27.000Z","updated_at":"2025-02-09T10:52:46.000Z","dependencies_parsed_at":"2024-09-24T19:56:16.696Z","dependency_job_id":null,"html_url":"https://github.com/karlicoss/beepb00p","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/karlicoss%2Fbeepb00p","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/karlicoss%2Fbeepb00p/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/karlicoss%2Fbeepb00p/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/karlicoss%2Fbeepb00p/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/karlicoss","download_url":"https://codeload.github.com/karlicoss/beepb00p/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248096185,"owners_count":21046995,"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","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":["blog","hakyll","ipython","org-babel","org-mode"],"created_at":"2024-08-01T12:04:19.993Z","updated_at":"2025-04-09T19:23:59.273Z","avatar_url":"https://github.com/karlicoss.png","language":"Python","funding_links":[],"categories":["Python","others"],"sub_categories":[],"readme":"Compiler for my blog.\n\nNOTE: readme is a little outdated, I've moved away from Hakyll to a custom generation [[file:src/build.py][script]].\nYou can fild retired Hakyll stuff [[file:hakyll][here]].\n\n\nFeatures:\n- formats:\n  - [[https://beepb00p.xyz/sandbox/test.html][org-mode]]\n  - [[https://beepb00p.xyz/sandbox/Test.html][ipython notebooks]]\n  - markdown (useful to link READMEs as blog posts)\n- tags\n- feeds (rss/atom)\n- comments support using Isso\n- math support via Mathjax\n- drafts\n- custom metadata attributes (e.g. tags, special uuid attribute for linking comments, pingback)\n- symlink support\n\n\nThere are some comments in ~site.hs~, feel free to email me or open an issue if you want me to explain how something works!\nI'll write down about it properly at some point later!\n\n* Post compilers\n \n** Org-mode\n See my [[https://beepb00p.xyz/sandbox/test.html][org-mode sandbox]].\n\n Org related stuff is in ~Org.hs~ and ~src/compile_org.py~.\n To compile Org into HTML, I'm invoking Emacs in batch mode in ~compile_org.py~ script.\n Your can try it with ~src/compile_org.py --test src/test.org~.\n\n Reason I'm not using Pandoc for rendering is that it only supports a subset of Org-mode.\n If you are a heavy user of Org-mode features, e.g. doesn't support literate programming via org-babel.\n\n Using custom script lets me configure (and hack a little) Emacs to bend it into doing what I want.\n I also process the resulting HTML with BeautifulSoup to add some things org-mode isn't capable of like sidenotes.\n\n\n** Ipython\n See my [[https://beepb00p.xyz/sandbox/test.html][org-mode sandbox]].\n\n Ipython related things are in ~Ipynb.hs~ and ~src/compile-ipynb~.\n\n I'm compiling with ~jupyter~, that executes the code and does few extra tweaks in ~src/ipynbconfig.py~, in particular:\n\n - hidden cell support (e.g. when you have lots of boilerlate that don't need to be in the post body)\n - details/summary support, so you can collapse boilerplate or long outputs in a collapsible section.\n\n* Misc things \n\n** ~css/generate-links.py~ for generating CSS for certain links (e.g. wikipedia/reddit/github)\n** symlink support: see [[file:src/poke-symlinks.py]] and [[file:preview]].\n   \n   Very useful when the target post (e.g. ipython notebook is in a different repository). Without this, detecting changes wouldn't work (see [[https://github.com/haskell-fswatch/hfsnotify/issues/87][issue]]).\n   \n** screenshot comparisons via [[https://github.com/ewanmellor/git-diff-image][git-diff-image]]\n   \n   Helpful for testing css changes.\n   \n   In addition I'm using [[https://github.com/yahoo/blink-diff][blink-diff]] since =compare= can't handle pages that are too long :(\n\n* Running \u0026 building\nI guess best place to start would be [[https://jaspervdj.be/hakyll/tutorials/02-basics.html][hakyll tutorial]].\n\n* Compiling the site\nWhen I want to release new version of site, I'm basically doing a clean rebuild and copying the resulting ~_site~ directory.\n\nIn reality it's a little more elaborate, I'm keeping the whole website (HTMLs) under git, so I can easily track changes and rollback in case of issues.\nI'll explain it and share some workflows later.\n\n* TODOs\n** TODO [2019-11-09 Sat 16:52] explain about using ~.metadata~ files\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkarlicoss%2Fbeepb00p","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkarlicoss%2Fbeepb00p","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkarlicoss%2Fbeepb00p/lists"}