{"id":17744266,"url":"https://github.com/extratone/bilge-theme","last_synced_at":"2026-01-20T07:07:19.785Z","repository":{"id":237461905,"uuid":"614834052","full_name":"extratone/bilge-theme","owner":"extratone","description":"A verbose, Caslon-based light blog theme for Write.as.","archived":false,"fork":false,"pushed_at":"2023-03-18T11:06:38.000Z","size":6143,"stargazers_count":0,"open_issues_count":6,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2024-05-02T03:48:14.120Z","etag":null,"topics":["css","style","themes","writeas","writeas-blog","writeas-customization","writeas-theme"],"latest_commit_sha":null,"homepage":"https://bilge.world/colophon","language":"CSS","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/extratone.png","metadata":{"files":{"readme":"README.md","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":"2023-03-16T12:19:04.000Z","updated_at":"2024-05-02T03:48:16.987Z","dependencies_parsed_at":"2024-05-02T03:48:16.408Z","dependency_job_id":"506a058e-a2ce-4a84-9a41-d9b16c683b59","html_url":"https://github.com/extratone/bilge-theme","commit_stats":null,"previous_names":["extratone/bilge-theme"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/extratone/bilge-theme","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/extratone%2Fbilge-theme","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/extratone%2Fbilge-theme/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/extratone%2Fbilge-theme/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/extratone%2Fbilge-theme/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/extratone","download_url":"https://codeload.github.com/extratone/bilge-theme/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/extratone%2Fbilge-theme/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28597985,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-20T02:08:49.799Z","status":"ssl_error","status_checked_at":"2026-01-20T02:08:44.148Z","response_time":117,"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":["css","style","themes","writeas","writeas-blog","writeas-customization","writeas-theme"],"created_at":"2024-10-26T06:42:25.969Z","updated_at":"2026-01-20T07:07:19.770Z","avatar_url":"https://github.com/extratone.png","language":"CSS","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Bilge Theme\n\n```css\n/* Written in November 2020 by David Blue for bilge.world.\n\nLast updated `03162023-071333`\n\n- I've finally just given this theme its own repository: https://github.com/extratone/bilge-theme\n\nSorry that took me so long!\n\n---\n\nThis is free and unencumbered software released into the public domain.\n\nAnyone is free to copy, modify, publish, use, compile, sell, or\ndistribute this software, either in source code form or as a compiled\nbinary, for any purpose, commercial or non-commercial, and by any\nmeans.\n\nIn jurisdictions that recognize copyright laws, the author or authors\nof this software dedicate any and all copyright interest in the\nsoftware to the public domain. We make this dedication for the benefit\nof the public at large and to the detriment of our heirs and\nsuccessors. We intend this dedication to be an overt act of\nrelinquishment in perpetuity of all present and future rights to this\nsoftware under copyright law.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\nIN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR\nOTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,\nARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR\nOTHER DEALINGS IN THE SOFTWARE.\n\nFor more information, please refer to \u003chttps://unlicense.org\u003e\n\n*/\n\n// As it stands, this theme will pull font assets from my \"private\" Adobe Typekit project - which is certainly fine with me for preview purposes, especially - but it's probably advisable you source your own solution.\n\n@import url('https://use.typekit.net/kst2rrh.css');\n\nbody {\n    font-family: adobe-caslon-pro, serif !important;\n    font-weight: 400;\n    font-style: normal;\n    background-color: #FFF4E6;\n}\n\n/* old background-color: #f2f2f2 */\n\n#blog-title a {\n    font-family: proxima-nova-condensed, sans-serif;\n    font-weight: 900;\n    font-style: normal;\n    /* font-style:bold !important; */\n    color: #00006b;\n}\n\nheader nav a {\n    font-family: proxima-nova-condensed, sans-serif !important;\n    font-weight: 900;\n    font-size: 1.2em;\n}\n\nheader p.description {\n    /* font-style: italic; */\n    font-family: proxima-nova-condensed, sans-serif !important;\n    font-weight: 700;\n    line-height: 200% !important;\n    color: #00006b !important;\n    font-size: 1em;\n    margin-left: inherit;\n    margin-right: inherit;\n}\n\nbody#collection header {\n    margin-bottom: 1em !important;\n}\n\n\nheader nav a {\n    color: #00006b;\n    font-family: proxima-nova-condensed, sans-serif;\n    font-weight: 900;\n    /* margin-bottom: 1em; */\n}\n\nbody,\narticle {\n    font-family: adobe-caslon-pro, serif !important;\n    font-weight: 400;\n    line-height: 155%;\n    font-size: 1.1em !important;\n    color: #000001;\n    padding-left: 0.5rem;\n    padding-right: 0.5rem;\n    /* margin-top:1rem !important; */\n}\n\n\nbody,\narticle a:link {\n    color: #00006b;\n}\n\nbody,\narticle a:visited {\n    color: #FF0000;\n}\n\nh1 {\n    color: #00006b !important;\n    font-family: proxima-nova-condensed, sans-serif;\n    font-weight: 900;\n    font-size: 2em !important;\n}\n\nh2 {\n    color: #00006b !important;\n    font-family: proxima-nova-condensed, sans-serif;\n    font-weight: 700;\n    font-size: 1.4em !important;\n}\n\nh3 {\n    color: #4078f2 !important;\n    font-family: proxima-nova-extra-condensed, sans-serif;\n    font-weight: 600;\n    font-size: 1.3em !important;\n}\n\nh4 {\n    color: #f43f32 !important;\n    font-family: proxima-nova-condensed, sans-serif;\n    font-weight: 400;\n    font-size: 1em !important;\n}\n\nh5 {\n    color: #662545 !important;\n    font-family: proxima-nova-condensed, sans-serif;\n    font-weight: 400;\n    font-size: 1em !important;\n}\n\nh6 {\n    color: #80808C !important;\n    font-family: proxima-nova-condensed, sans-serif;\n    font-weight: 400;\n    font-size: .85em !important;\n}\n\nli {\n    color: #80808C !important;\n    font-family: proxima-nova-condensed, sans-serif;\n    font-weight: 400;\n    font-size: .85em !important;\n}\n\ncode {\n    /* background-color:#f7ff85 !important; */\n    /* border: 1px solid #da2573 !important;\n    border-radius: 1px !important; */\n    font-size: 0.85em !important;\n    color: #1c0021 !important;\n    font-family: proxima-nova-condensed, sans-serif;\n    font-weight: 400;\n    /* padding: 0px 0px 0px 0px !important; */\n}\n\nbody #post pre, body#collection pre, body#post pre, body#subpage pre {\n    background: #FFFdeb; !important;\n    border: 1px solid #da2573 !important;\n    border-radius: 1px !important;\n    font-size: 0.85em !important;\n    color: #1c0021 !important;\n    font-family: proxima-nova-condensed, sans-serif;\n    font-weight: 400;\n    /* padding: 0px 0px 0px 0px !important; */\n}\n\n.post-title a:visited,\n.post-title a:link {\n    font-family: proxima-nova-condensed, sans-serif !important;\n    font-weight: 900;\n    color: #00006b !important;\n    font-size: 1.7rem !important;\n}\n\nbody#post article time.dt-published,\nbody#subpage article time.dt-published {\n    font-family: proxima-nova-condensed, sans-serif !important;\n    color: #00006b !important;\n    font-size: 1rem !important;\n}\n\nbody footer nav {\n    font-family: proxima-nova-condensed, sans-serif !important;\n    color: #00006b;\n}\n\nblockquote {\n    font-family: proxima-nova-condensed, sans-serif;\n    font-weight: 400;\n    color: #333333 !important;\n    border-left: 2.5px solid #00006b !important;\n}\n\ntable {\n    background-color: #FFFdeb !important;\n    font-size: 0.8em !important;\n    line-height: 1.2em;\n    color: #1c0021 !important;\n    font-family: proxima-nova-condensed, sans-serif;\n    font-weight: 400;\n    border: 1px solid #f43f32 !important;\n    border-radius: 1px !important;\n}\n\narticle table td, article table th {\n    border: 1px solid !important;\n    border-color: #da2573 !important;\n}\n\n\n.gist {\n    font-family: proxima-nova-condensed, sans-serif !important;\n    font-weight: 400 !important;\n    font-size: 18px !important;\n}\n\n.gist .gist-meta {\n    font-family: proxima-nova-extra-condensed, sans-serif !important;\n    font-weight: 600 !important;\n    color: #1c0021 !important;\n}\n\n.gist, .gist article, .gist article p {\n    font-family: proxima-nova-condensed, sans-serif !important;\n    font-weight: 400 !important;\n}\n\n\n.gist .gist-file .gist-data {\n    background: #FFFdeb; !important;\n    border: 1px solid #da2573 !important;\n    border-radius: 1px !important;\n    font-size: 0.85em !important;\n    color: #1c0021 !important;\n    font-family: proxima-nova-condensed, sans-serif !important;\n    font-weight: 400;\n}\n\n.gist, .gist article, .gist article p {\n    white-space: normal !important;\n}\n\n/* .gist .gist-hr {\n    display: hide !important;\n} */\n\nhr {\n    border: 2px solid red;\n}\n\n\nbody footer a.home:link,\nbody footer a.home:visited {\n    color: #00006b;\n}\n\n.action {\n    font-family: proxima-nova-condensed, sans-serif;\n}\n\nnav#manage ul a {\n    color: #00006b;\n}\n\nnav#paging a {\n    color: #00006b !important;\n    font-family: proxima-nova-condensed, sans-serif !important;\n}\n\n\na.bt {\n    background-color: #0d0d0d !important;\n    color: #00006b !important;\n}\n\na.hashtag {\n    font-family: proxima-nova-condensed, sans-serif;\n    font-weight: 700;\n    color: #00006b !important;\n}\n\nbody#collection #wrapper time,\nbody#subpage #wrapper time,\nbody#post article time.dt-published,\nbody#subpage article time.dt-published {\n    font-family: proxima-nova-condensed, sans-serif;\n    font-weight: 700;\n    font-size: 0.95em;\n    color: #00006b !important;\n}\n\n\n.custom-nav {\n    text-align: center;\n    font-size: 0.85em;\n    text-transform: uppercase;\n    font-family: proxima-nova-condensed, sans-serif;\n    font-weight: 700;\n    color: red;\n}\n\n.custom-nav a:link,\n.custom-nav a:visited,\n.custom-nav a:hover,\n.custom-nav a:active {\n    color: #00006b;\n}\n\n.custom-nav a:hover,\n.custom-nav a:active {\n    text-decoration: underline;\n}\n\n#subscribe-btn {\n    border: 1px #FF0000;\n    background: #00006b;\n    font-family: proxima-nova-condensed, sans-serif;\n    font-weight: 700;\n    font-size: 1em;\n    color: #FFF4E6;\n}\n\n#emailsub {\n    font-family: proxima-nova-condensed, sans-serif !important;\n    font-weight: 700;\n}\n\nsup {\n    vertical-align: auto !important;\n}\n\n.footnote {\n    font-family: proxima-nova-condensed, sans-serif !important;\n    font-weight: 700;\n    /*vertical-align: sub !important; */\n    margin: -4px 0px 0 0 !important;\n    color: #da2573 !important;\n    font-size: 0.8em;\n    line-height: 0.1em !important;\n    text-decoration:underline #FF0000;\n}\n\n.footnote-ref {\n    margin-left:15px;\n    font-family: proxima-nova-condensed, sans-serif !important;\n    font-weight: 700;\n    /* margin-left:2.5px; */\n    color: #da2573 !important;\n    font-size: 1.15em;\n    /* text-decoration:underline #FF0000; */\n}\n\n.footnote-ref-text {\n    font-family: proxima-nova-condensed, sans-serif !important;\n    font-weight: 400;\n    color: #1c0021 !important;\n    font-size: 1em;\n    /* border-top: #00006b dotted 1px; */\n}\n```\n\n```js\n// \"This code creates a new \u003cp\u003e element with the div \"custom-nav\" and it's content. The following code looks for a element with the wrapper id and adds the new \u003cp\u003e element. If the element with the wrapper id is not present, then the \u003cp\u003e element is added after the post-body element. There is then code which sets a hypothesis config which sets the sidebar to stay closed and sets custom colors. The last part of the code looks into the post-body element, finds any footnote reference and then changes them into a clickable link.\"\n\n//topP.style.textAlign = \"center\";\n\nvar topP = document.createElement(\"p\");\ntopP.innerHTML = `\u003chr\u003e\u003cdiv class=\"custom-nav\"\u003e\u003ca rel=\"me\" href=\"https://tiny.write.as/bilge/${location.pathname}\"\u003eTiny\u003c/a\u003e ※ \u003ca href=\"https://davidblue.wtf/sms\"\u003eSMS\u003c/a\u003e ※ \u003ca rel=\"me\" href=\"https://mastodon.social/@DavidBlue\"\u003eMastodon\u003c/a\u003e ※ \u003ca href=\"https://github.com/extratone/bilge\"\u003eGitHub\u003c/a\u003e ※ \u003ca href=\"https://gist.github.com/extratone/140a11428b5dd1dda500b3928e0438b1\"\u003eLicense\u003c/a\u003e\u003c/div\u003e`;\nvar cont = document.getElementById(\"wrapper\");\nif (cont !== null) {\n\t// Add to blog index and tag pages\n\tcont.appendChild(topP);\n} else {\n\t// Add to individual blog post page\n\tcont = document.getElementById(\"post-body\");\n\tcont.insertAdjacentHTML(\"afterend\", topP.outerHTML);\n}\n\n// src: https://platform.twitter.com/widgets.js\n\nsrc: https://hypothes.is/embed.js\n\nwindow.hypothesisConfig = function () {\n  return {\n    \"openSidebar\": true, \n    \"theme\": \"clean\",\n    branding: {\n      appBackgroundColor: '#e6f7ff',\n      ctaBackgroundColor: '#da2573',\n      ctaTextColor: '#00006b',\n      selectionFontFamily: 'Georgia, serif'\n    }\n  };\n};\n\n// Footnote hyperlinks in the body.\nvar notePattern = /\\[\\^(\\d+)\\]/g;\nvar noteText = \"\u003ca name=\\\"fn$1\\\"\u003e\u003c/a\u003e\u003csup\u003e\u003ca class=\\\"footnote\\\" href=\\\"#fnref$1\\\"\u003e$1\u003c/a\u003e\u003c/sup\u003e\";\n\n// Footnote references at the bottom.\nvar refPattern = /\\[(\\d+)\\](.*)/g;\nvar refText = \"\u003ca name=\\\"fnref$1\\\"\u003e\u003c/a\u003e\u003csup\u003e\u003ca class=\\\"footnote-ref\\\" href=\\\"#fn$1\\\"\u003e$1\u003c/a\u003e\u003c/sup\u003e\u003cspan class=\\\"footnote-ref-text\\\"\u003e$2\u003c/span\u003e\";\n\nvar postContent = document.getElementById(\"post-body\").innerHTML;\npostContent = postContent.replace(notePattern, noteText);\npostContent = postContent.replace(refPattern, refText);\ndocument.getElementById(\"post-body\").innerHTML = postContent;\n```","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fextratone%2Fbilge-theme","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fextratone%2Fbilge-theme","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fextratone%2Fbilge-theme/lists"}