{"id":24103901,"url":"https://github.com/lwasser/lwasser.github.io","last_synced_at":"2026-02-01T05:31:04.093Z","repository":{"id":60071415,"uuid":"87748882","full_name":"lwasser/lwasser.github.io","owner":"lwasser","description":"My website :) ","archived":false,"fork":false,"pushed_at":"2025-12-27T01:46:16.000Z","size":75943,"stargazers_count":2,"open_issues_count":4,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-12-28T17:00:38.227Z","etag":null,"topics":["community-of-practice","data-science","open-science","open-source","python"],"latest_commit_sha":null,"homepage":"https://www.leahwasser.com","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/lwasser.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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2017-04-10T00:09:41.000Z","updated_at":"2025-12-27T01:46:19.000Z","dependencies_parsed_at":"2023-02-16T16:01:10.345Z","dependency_job_id":"f4564aee-db24-4ef0-80bc-2a1f94492b9b","html_url":"https://github.com/lwasser/lwasser.github.io","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/lwasser/lwasser.github.io","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lwasser%2Flwasser.github.io","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lwasser%2Flwasser.github.io/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lwasser%2Flwasser.github.io/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lwasser%2Flwasser.github.io/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/lwasser","download_url":"https://codeload.github.com/lwasser/lwasser.github.io/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lwasser%2Flwasser.github.io/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28969974,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-01T04:44:20.970Z","status":"ssl_error","status_checked_at":"2026-02-01T04:44:19.994Z","response_time":56,"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":["community-of-practice","data-science","open-science","open-source","python"],"created_at":"2025-01-10T19:58:39.106Z","updated_at":"2026-02-01T05:31:04.088Z","avatar_url":"https://github.com/lwasser.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Welcome to My Website!\n\n[![DOI](https://zenodo.org/badge/87748882.svg)](https://zenodo.org/badge/latestdoi/87748882)\n\nThis is my personal site built with Hugo, styled with Tailwind CSS v3, and using Google Fonts for typography. I deploy it via GitHub Pages.\n\n## Tech Stack\n\nThe site is built with Hugo Extended (v0.118.2+), styled with Tailwind CSS v3, and uses Google Fonts for typography. Node.js (v22+) handles the build tooling, and everything is deployed to GitHub Pages.\n\n## Getting Started\n\n### Prerequisites\n\nYou'll need Hugo Extended (v0.118.2 or later) and Node.js (v22 or later) installed on your system.\n\n### First Time Setup\n\nInstall the project dependencies and postcss-cli globally:\n\n```bash\nnpm install\nnpm install -g postcss-cli\n```\n\n### Development\n\nStart the development server with:\n\n```bash\n# If you use conda, make sure to deactivate it first\nconda deactivate\n\n# Start the development server\nnpm run dev\n```\n\nYour site will be available at `http://localhost:1313`\n\n## Theme Submodule\n\nThis site uses the [clean-hugo](https://github.com/lwasser/clean-hugo) theme as a git submodule.\n\n### Clone the Repository\n\nWhen cloning this repository for the first time, you need to initialize and update the submodule:\n\n```bash\ngit clone --recursive https://github.com/lwasser/lwasser.github.io.git\n```\n\nOr if you've already cloned without the `--recursive` flag:\n\n```bash\ngit submodule init\ngit submodule update\n```\n\n### Update the Theme\n\nTo update the theme to the latest version:\n\n```bash\ngit submodule update --remote themes/clean-hugo\ngit add themes/clean-hugo\ngit commit -m \"Update clean-hugo theme\"\n```\n\n### Work with the Submodule\n\nThe theme is located in `themes/clean-hugo/`. If you need to make changes to the theme itself, you should:\n\n1. Make changes in the `themes/clean-hugo/` directory\n2. Commit changes in the submodule repository\n3. Push to the clean-hugo repository\n4. Update the parent repository to point to the new commit\n\nFor more information about the theme, see the [clean-hugo repository](https://github.com/lwasser/clean-hugo).\n\n### Building for Production\n\nBuild the site for production:\n\n```bash\nnpm run build\n```\n\nThe site's output will be in the `public/` directory.\n\n## Project Structure\n\nThe site follows a standard Hugo structure. Content lives in `content/`, layouts in `layouts/`, and styles in `assets/css/main.scss`. The main configuration is in `hugo.toml`, with Tailwind and PostCSS configs in their respective files.\n\n## Creating Content\n\n### Writing a Blog Post\n\nCreate a new post in `content/blog/my-post.md` with frontmatter like this:\n\n```yaml\n---\ntitle: \"My Post Title\"\ndate: 2025-10-26\nexcerpt: \"A brief description of your post.\"\nimage: /images/my-post/featured-image.png\ncategories:\n  - category-name\ntags:\n  - tag-one\n  - tag-two\n---\n\nYour content here...\n```\n\n## Working with Images\n\nI created a custom shortcode for adding images with captions. Use it like this:\n\n```markdown\n{{\u003c figure src=\"/images/my-image.jpg\"\n    alt=\"Description of image\"\n    caption=\"This is my image caption.\" \u003e}}\n```\n\nThe shortcode automatically uses WebP format when available for better performance, falling back to the original format if needed.\n\n### Image Formats\n\nPhotos should generally use JPG and WebP formats to optimize performance and quality. Other graphics and illustrations can be PNG.\n\n### Image Compression\n\nInstall ImageMagick first:\n\n```bash\nbrew install imagemagick\n```\n\nThen compress images:\n\n```bash\nfind content/plants -type f \\( -iname \"*.jpg\" -o -iname \"*.jpeg\" \\) -exec mogrify -quality 85 -resize '1400x1400\u003e' {} \\;\n```\n\n### Converting Images\n\nI use `sips` (built-in on Mac) to convert images:\n\n```bash\n# Single file\nsips -s format png image.jpg --out image.png\n\n# Batch convert a directory\nfor f in *.jpg(N) *.jpeg(N); do\n  [ -f \"$f\" ] || continue\n  sips -s format png \"$f\" --out \"${f%.*}.png\"\ndone\n```\n\n### Converting to WebP\n\nFirst, install the WebP tools:\n\n```bash\nbrew install webp\n```\n\nThen convert your images:\n\n```bash\n# Single file\ncwebp -q 85 image.jpg -o image.webp\ncwebp -q 85 image.png -o image.webp\n\n# Batch convert all images in a directory\nfor file in *.jpg *.png; do\n  [ -f \"$file\" ] \u0026\u0026 cwebp -q 85 \"$file\" -o \"${file%.*}.webp\"\ndone\n```\n\n## Customizing Styles\n\nTo update the CSS, edit the `assets/css/main.scss` file. You can add custom SCSS or additional Tailwind utilities there.\n\n### Brand Colors\n\nThe site uses these brand colors:\n\n* **#EDB88B** - Buff (warm peachy/tan)\n* **#71B3B5** - Verdigris (teal/cyan)\n* **#42213D** - Dark purple\n* **#AC87A0** - Mountbatten pink\n* **#395E66** - Dark slate gray\n\n## Plant Gallery\n\nThe plant gallery section showcases a collection of plant profiles. Each plant group has its own markdown file under `content/plants/` with details like name, species, difficulty, and images.\n\nTo create a new plant page, use the Hugo archetype:\n\n```bash\nhugo new plants/plant-name/index.md\n```\n\nFor example, to add a Hoya Lacunosa plant profile:\n\n```bash\nhugo new plants/hoya-lacunosa/index.md\n```\n\nThe plant gallery layout uses a responsive grid to display plant cards with filter buttons managed by front-end JavaScript. Individual plant pages use a Tailwind-driven masonry layout. The popup image viewer is powered by [GLightbox](https://glightbox.mcstudios.com.mx/), which is essentially plug and play for easy maintenance.\n\n### Styling and Partials\n\nThe plant page layout and styling can be found in `layouts/plants/list.html` with individual pages in `layouts/plants/single.html`.\n\n### Image Workflow\n\nBackup all images in a directory to another location using rsync:\n\n```bash\nrsync -av --include='*/' --include='*.jpg' --exclude='*' . ../../../_law_tests/plant-photos\n```\n\nThen compress the images using ImageMagick:\n\n```bash\nmogrify -auto-orient -strip -resize '1600x1600\u003e' -quality 82 *.jpg\n```\n\nNote: Images when shot are saved with EXIF metadata tags that indicate orientation. Use `-auto-orient` to fix this:\n\n```bash\nmogrify -auto-orient *.jpg\n```\n\n## Troubleshooting\n\nIf you encounter a \"npx not found\" error, make sure you've deactivated conda and installed postcss-cli globally. If styles aren't loading, check that `assets/css/main.scss` exists. If Hugo isn't finding templates, verify your files are in the correct `layouts/` subdirectories.\n\n## License\n\nThis project is licensed under the BSD 3-Clause License. See the [LICENSE](LICENSE) file for details.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flwasser%2Flwasser.github.io","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flwasser%2Flwasser.github.io","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flwasser%2Flwasser.github.io/lists"}