{"id":20526161,"url":"https://github.com/scicloj/blog","last_synced_at":"2026-05-30T22:32:09.872Z","repository":{"id":103036934,"uuid":"328408179","full_name":"scicloj/blog","owner":"scicloj","description":"SciCloj blog site containing articles on specific topics, powered by Cryogen","archived":false,"fork":false,"pushed_at":"2021-08-28T10:08:49.000Z","size":289,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":7,"default_branch":"live","last_synced_at":"2025-03-06T01:45:54.905Z","etag":null,"topics":["clojure","data-science"],"latest_commit_sha":null,"homepage":"https://scicloj.github.io/blog/","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/scicloj.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":"2021-01-10T14:55:58.000Z","updated_at":"2021-08-28T10:08:52.000Z","dependencies_parsed_at":null,"dependency_job_id":"9b955aac-5d55-4f09-b44a-a0c418b40298","html_url":"https://github.com/scicloj/blog","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/scicloj/blog","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/scicloj%2Fblog","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/scicloj%2Fblog/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/scicloj%2Fblog/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/scicloj%2Fblog/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/scicloj","download_url":"https://codeload.github.com/scicloj/blog/tar.gz/refs/heads/live","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/scicloj%2Fblog/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33712579,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-05-30T02:00:06.278Z","response_time":92,"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":["clojure","data-science"],"created_at":"2024-11-15T23:12:48.793Z","updated_at":"2026-05-30T22:32:09.858Z","avatar_url":"https://github.com/scicloj.png","language":"HTML","funding_links":[],"categories":[],"sub_categories":[],"readme":"# SciCloj Blog website\n\nA blog website for sharing articles on specific topics.\n\n\n### Running the Server\n\nThe web server can be started using either Leiningen:\n\n```bash\nlein serve # or lein serve-fast\n```\n\nor tools-deps:\n\n```bash\nclojure -X:serve # or clojure -X:serve-fast\n```\n\nThe server will watch for changes in the `content` and `themes` folders and recompile the content automatically. The `*-fast` variants perform [fast but partial compilation](https://cryogenweb.org/docs/fast-compilation.html) of only the changed page/post.\n\nYou can also generate the content without bringing up a server either via:\n\n```\nlein run\n```\n\nor via:\n\n```\nclojure -M:build\n```\n\n### Site Configuration\n\nThe site configuration file is found at `content/config.edn`, this file looks as follows:\n\n```clojure\n{:site-title                   \"My Awesome Blog\"\n :author                       \"Bob Bobbert\"\n :description                  \"This blog is awesome\"\n :site-url                     \"http://blogawesome.com/\"\n :post-root                    \"posts\"\n :page-root                    \"pages\"\n :post-root-uri                \"posts-output\"\n :page-root-uri                \"pages-output\"\n :tag-root-uri                 \"tags-output\"\n :author-root-uri              \"authors-output\"\n :public-dest                  \"public\"\n :blog-prefix                  \"/blog\"\n :rss-name                     \"feed.xml\"\n :rss-filters                  [\"cryogen\"]\n :recent-posts                 3\n :post-date-format             \"yyyy-MM-dd\"\n :archive-group-format         \"yyyy MMMM\"\n :sass-src                     []\n :sass-path                    \"sass\"\n :theme                        \"blue\"\n :resources                    [\"img\"]\n :keep-files                   [\".git\"]\n :disqus?                      false\n :disqus-shortname             \"\"\n :ignored-files                [#\"\\.#.*\" #\".*\\.swp$\"]\n :previews?                    false\n :posts-per-page               5\n :blocks-per-preview           2\n :clean-urls                   :trailing-slash\n :collapse-subdirs?            false\n :hide-future-posts?           true\n :klipse                       {}\n :description-include-elements #{:p :h1 :h2 :h3 :h4 :h5 :h6}\n :debug?                       false}\n```\n\nFor information about each key please see the [\"Configuration\"](http://cryogenweb.org/docs/configuration.html) portion of the Cryogen documentation site.\n\n### Switching between Markdown and AsciiDoc\n\nCryogen comes with Markdown support as default. If you want to use AsciiDoc instead, open the `project.clj` in your created blog (e.g. `my-blog`), and change the line in `:dependencies` that says `cryogen-markdown` to `cryogen-asciidoc` (and ensure the right version).\nInstead of looking for files ending in `.md` in the `content/md` directory, the compiler will now look for files ending in `.asc` in the `content/asc` directory.\n\n### Selecting a Theme\n\nThe Cryogen template comes with three themes in the `themes` folder. To change your blog's theme, change the value of the `:theme` key in `config.edn`. Note that the Nucleus theme is obtained from [downloadwebsitetemplates.co.uk](http://www.downloadwebsitetemplates.co.uk/template/nucleus/) that requires you to keep the footer, unless you make a donation on their website.\n\n### Customizing Layouts\n\nCryogen uses [Selmer](https://github.com/yogthos/Selmer) templating engine for layouts. Please refer to its documentation to see the supported tags and filters for the layouts.\n\nThe layouts are contained in the `themes/{theme}/html` folder of the project. By default, the `base.html` layout is used to provide the general layout for the site. This is where you would add static resources such as CSS and JavaScript assets as well as define headers and footers for your site.\n\nEach page layout should have a name that matches the `:layout` key in the page metadata and end with `.html`. Page layouts extend the base layout and should only contain the content relevant to the page inside the `content` block.\nFor example, the `tag` layout is located in `tag.html` and looks as follows:\n\n```xml\n{% extends \"/html/base.html\" %}\n{% block content %}\n\u003cdiv id=\"posts-by-tag\"\u003e\n    \u003ch2\u003ePosts tagged {{name}}\u003c/h2\u003e\n    \u003cul\u003e\n    {% for post in posts %}\n        \u003cli\u003e\n            \u003ca href=\"{{post.uri}}\"\u003e{{post.title}}\u003c/a\u003e\n        \u003c/li\u003e\n    {% endfor %}\n    \u003c/ul\u003e\n\u003c/div\u003e\n{% endblock %}\n```\n\n### Code Syntax Highlighting\n\nCryogen uses [Highlight.js](https://highlightjs.org/) for code syntax highlighting. You can add more languages by replacing `themes/{theme}/js/highlight.pack.js` with a customized package from [here](https://highlightjs.org/download/).\n\nThe ` initHighlightingOnLoad` function is called in `themes/{theme}/html/base.html`.\n\n```xml\n\u003cscript\u003ehljs.initHighlightingOnLoad();\u003c/script\u003e\n```\n\n## Deploying Your Site\n\nThe generated static content will be found under the `public` folder. Simply copy the content to a static\nfolder for a server such as Nginx or Apache and your site is now ready for service.\n\nA sample Nginx configuration that's placed in `/etc/nginx/sites-available/default` can be seen below:\n\n```javascript\nserver {\n  listen 80 default_server;\n  listen [::]:80 default_server ipv6only=on;\n  server_name localhost \u003cyoursite.com\u003e \u003cwww.yoursite.com\u003e;\n\n  access_log  /var/log/blog_access.log;\n  error_log   /var/log/blog_error.log;\n\n  location / {\n    alias       /var/blog/;\n    error_page  404 = /404.html;\n  }\n}\n```\n\nSimply set `yoursite.com` to the domain of your site in the above configuration and\nensure the static content is available at `/var/blog/`. Finally, place your custom error page\nin the `/var/blog/404.html` file.\n\nMore information on deployment can be found [here](http://cryogenweb.org/docs/deploying-to-github-pages.html).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fscicloj%2Fblog","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fscicloj%2Fblog","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fscicloj%2Fblog/lists"}