{"id":29638994,"url":"https://github.com/jessecambon/jessecambon.github.io","last_synced_at":"2026-02-17T22:02:25.385Z","repository":{"id":40505187,"uuid":"220571515","full_name":"jessecambon/jessecambon.github.io","owner":"jessecambon","description":"My blog","archived":false,"fork":false,"pushed_at":"2025-03-12T22:50:40.000Z","size":87580,"stargazers_count":4,"open_issues_count":1,"forks_count":2,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-07-21T20:16:15.883Z","etag":null,"topics":["data-science","r","web"],"latest_commit_sha":null,"homepage":"https://jessecambon.github.io/","language":"Jupyter Notebook","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jessecambon.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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-09T00:57:40.000Z","updated_at":"2025-04-23T08:29:18.000Z","dependencies_parsed_at":"2024-08-07T04:18:18.168Z","dependency_job_id":null,"html_url":"https://github.com/jessecambon/jessecambon.github.io","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/jessecambon/jessecambon.github.io","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jessecambon%2Fjessecambon.github.io","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jessecambon%2Fjessecambon.github.io/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jessecambon%2Fjessecambon.github.io/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jessecambon%2Fjessecambon.github.io/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jessecambon","download_url":"https://codeload.github.com/jessecambon/jessecambon.github.io/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jessecambon%2Fjessecambon.github.io/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29559961,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-17T21:50:49.831Z","status":"ssl_error","status_checked_at":"2026-02-17T21:46:15.313Z","response_time":100,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: 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":["data-science","r","web"],"created_at":"2025-07-21T20:07:53.617Z","updated_at":"2026-02-17T22:02:25.379Z","avatar_url":"https://github.com/jessecambon.png","language":"Jupyter Notebook","funding_links":[],"categories":[],"sub_categories":[],"readme":"## README\n\nMy personal blog\n\n#### Setup\n\nApril 2025 on Pop OS 22.04: I had to remove the apt version of ruby:\n\n```sh\nsudo apt remove ruby\n```\n\nAnd then I installed homebrew and used `brew install ruby` and followed the command line instructions.\n\n\n\n* Installing jekyll: `gem install jekyll bundler`\n* Installing the bundle: `bundle install`\n* Updating bundler : `bundle update --bundler`\n* Updating the bundle: `bundle update`\n\n* Ran into an issue with two versions of jekyll. Had to apt remove jekyll per https://github.com/jekyll/jekyll/issues/7088 (ie. only install the gem)\n* Had to copy 'assets' and '_sass' folders from minima github (release file) into this repo to fix file not found errors]\n \n\n#### Operational Notes\n\n- [Ruby 101](https://jekyllrb.com/docs/ruby-101/)\n\n* Check for errors: `jekyll doctor`\n* Build for deployment: `jekyll build`\n* To preview blog with draft posts (posts stored in `_drafts` folder): `jekyll serve --drafts`\n\n**Note: you may have to prepend jekyll commands with `bundle exec`**\n\n#### Code Notes\n\n* `/feed.xml` is generated by the jekyll-feed plugin while `/r.xml` is a feed exclusively for the `r` tag that is generated by the [r.xml](r.xml) script. Both `feed.xml` and `r.xml` are generated when `jekyll build` is run.\n* When `jekyll build` is run, scripts such as `r.xml` are run and the resulting data and content is put into the `_site` folder which generates the site.\n* Configure `_config.yml` as necessary to configure site-wide variables and settings. Use `exclude:` to exclude files (such as `README.md`) from the jekyll build process. Use `header_pages:` to add additional pages to the site.\n* [_sass](_sass) contains the CSS styling\n\n#### Atom XML Feed\n\nFor R-Bloggers I needed to create a custom feed that only contained R content. My solution was to make all R posts contain the `tag` \"r\" and then use jekyll to build an r.xml file. The file in root, [r.xml](r.xml) is what builds the feed. I first tried to use [https://github.com/jekyll/jekyll-feed](jekyll-feed) to build a feed for a specific tag or category, but was unable to get it to work.\n\n* Atom XML Feed Verifier: https://validator.w3.org/feed/\n* Can use a RSS aggregator like [feedly](https://feedly.com/) for checking the content.\n\n#### Other Modifications\n\n- Post tag pages added per [these instructions](https://longqian.me/2017/02/09/github-jekyll-tag/)\n- Leaflet Javascript library added based on [this](https://github.com/dieghernan/dieghernan.github.io/blob/master/_includes/leaflet.html). See [_includes/leaflet.html](_includes/leaflet.html)\n\n\n\n#### Blogging with Jupyter Notebooks\n\nSteps for using jupyter notebooks to create a blog post:\n\n- Add the desired YAML header to the beginning of the jupyter notebook in a raw cell. Include the beginning and trailing `---`. For example:\n\n```\n---\nlayout: post\ntitle: \"Test Jupyter Post\"\ndate: 2021-10-17\nauthor: Jesse Cambon\ntags: [python, data]\nimage: \"/images/tidygeocoder_hex_dark2021.png\"\n---\n```\n\nNow run the [build_jupyter.py](build_jupyter.py) script on your notebook:\n\n```sh\npython build_jupyter.py path/to/notebook.ipynb\n```\n\nThis script will create a .md file in the same directory as jupyter notebook. The script handles moving all the image files to the [jupyter_files](jupyter_files) directory and fixing the image references within the newly created markdown file.\n\n**IMPORTANT**: \n- If you include images within your juypter notebook, make sure the alternative text is not \"png\" (ie. do not do this: `![png](/path/to/image.jpg)`) The build_jupyter.py script will edit image paths with the alt text png to point to the jupyter files directory (if there are graphs within the notebook that generate images).\n\nReferences:\n\n- https://www.linode.com/docs/guides/jupyter-notebook-on-jekyll/\n- https://jaketae.github.io/blog/jupyter-automation/\n- https://cduvallet.github.io/posts/2018/03/ipython-notebooks-jekyll \n\n#### Resources\n* Quick reference: https://jekyllrb.com/docs/usage/\n* Minima Theme: https://github.com/jekyll/minima\n* Jekyll-Feed plugin (for RSS) https://github.com/jekyll/jekyll-feed","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjessecambon%2Fjessecambon.github.io","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjessecambon%2Fjessecambon.github.io","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjessecambon%2Fjessecambon.github.io/lists"}