{
  "data": [
    {
      "api_url": "https://londopy.github.io/blog/api/v1/posts/pescatarian.json",
      "cover": {
        "alt": "A terminal listing animals that religious rulings counted as fish, above the post title",
        "height": 630,
        "url": "https://londopy.github.io/blog/posts/pescatarian/cover.png",
        "width": 1200
      },
      "description": "For two thousand years, religions have argued about where meat ends and fish begins, with rulings on beavers, alligators, and geese that grow on driftwood. I've lived on that line for eight years. Here's the history, the Daoist philosophy behind how I think about it, and how I actually eat.",
      "published": "2026-09-24T23:06:00-07:00",
      "reading_time_minutes": 16,
      "slug": "pescatarian",
      "summary": "In 2010, a Catholic in Louisiana asked his archbishop a very specific question. During Lent, Catholics skip meat on Fridays. So: was it okay to eat alligator?\nThe archbishop’s answer: yes. As far as the Church was concerned, alligator counted as seafood.\nHe wasn’t the first religious authority to get a question like that. Over the centuries, priests, bishops, and theologians have been asked to rule on beavers, muskrats, capybaras, and a goose that medieval Europeans believed grew on driftwood.",
      "tags": [
        {
          "api_url": "https://londopy.github.io/blog/api/v1/tags/food.json",
          "name": "food",
          "slug": "food",
          "url": "https://londopy.github.io/blog/tags/food/"
        },
        {
          "api_url": "https://londopy.github.io/blog/api/v1/tags/pescatarian.json",
          "name": "pescatarian",
          "slug": "pescatarian",
          "url": "https://londopy.github.io/blog/tags/pescatarian/"
        },
        {
          "api_url": "https://londopy.github.io/blog/api/v1/tags/history.json",
          "name": "history",
          "slug": "history",
          "url": "https://londopy.github.io/blog/tags/history/"
        },
        {
          "api_url": "https://londopy.github.io/blog/api/v1/tags/religion.json",
          "name": "religion",
          "slug": "religion",
          "url": "https://londopy.github.io/blog/tags/religion/"
        },
        {
          "api_url": "https://londopy.github.io/blog/api/v1/tags/philosophy.json",
          "name": "philosophy",
          "slug": "philosophy",
          "url": "https://londopy.github.io/blog/tags/philosophy/"
        },
        {
          "api_url": "https://londopy.github.io/blog/api/v1/tags/daoism.json",
          "name": "daoism",
          "slug": "daoism",
          "url": "https://londopy.github.io/blog/tags/daoism/"
        }
      ],
      "title": "When Alligator Counts as Fish & Why I'm a Pescatarian",
      "updated": "2026-09-25T00:01:51-07:00",
      "url": "https://londopy.github.io/blog/posts/pescatarian/",
      "word_count": 3380
    },
    {
      "api_url": "https://londopy.github.io/blog/api/v1/posts/gitattributes.json",
      "cover": {
        "alt": "A terminal printing a .gitattributes file, above the post title",
        "height": 630,
        "url": "https://londopy.github.io/blog/posts/gitattributes/cover.png",
        "width": 1200
      },
      "description": "Every repo has a .gitignore. Almost nobody has a .gitattributes. Here's everything it can do: line endings, smarter diffs, merge strategies, filters, release archives, and GitHub extras.",
      "published": "2026-09-24T01:50:00-07:00",
      "reading_time_minutes": 7,
      "slug": "gitattributes",
      "summary": "Every repo has a .gitignore. Almost nobody has a .gitattributes. That’s a shame, because this one small file controls how Git sees, diffs, merges, normalizes, and exports your files. Once you know what it can do, you’ll want one in every project.\nWhat it is .gitattributes is a plain text file that assigns attributes to paths. Each line is a pattern followed by one or more attributes:\n*.sh text eol=lf *.png binary docs/** linguist-documentation The patterns work much like .gitignore, with two catches. Negation (!pattern) isn’t allowed. And a directory pattern like vendor/ does not apply to the files inside it, so you need vendor/**.",
      "tags": [
        {
          "api_url": "https://londopy.github.io/blog/api/v1/tags/git.json",
          "name": "git",
          "slug": "git",
          "url": "https://londopy.github.io/blog/tags/git/"
        },
        {
          "api_url": "https://londopy.github.io/blog/api/v1/tags/github.json",
          "name": "github",
          "slug": "github",
          "url": "https://londopy.github.io/blog/tags/github/"
        },
        {
          "api_url": "https://londopy.github.io/blog/api/v1/tags/gitattributes.json",
          "name": "gitattributes",
          "slug": "gitattributes",
          "url": "https://londopy.github.io/blog/tags/gitattributes/"
        },
        {
          "api_url": "https://londopy.github.io/blog/api/v1/tags/tooling.json",
          "name": "tooling",
          "slug": "tooling",
          "url": "https://londopy.github.io/blog/tags/tooling/"
        },
        {
          "api_url": "https://londopy.github.io/blog/api/v1/tags/devops.json",
          "name": "devops",
          "slug": "devops",
          "url": "https://londopy.github.io/blog/tags/devops/"
        }
      ],
      "title": "The Best Git Feature You've Never Used",
      "updated": "2026-09-24T01:52:31-07:00",
      "url": "https://londopy.github.io/blog/posts/gitattributes/",
      "word_count": 1439
    }
  ],
  "meta": {
    "api": "londopy-blog",
    "docs": "https://londopy.github.io/blog/api/",
    "generated": "2026-09-25T20:47:28Z",
    "self": "https://londopy.github.io/blog/api/v1/posts.json",
    "version": "1.0.0"
  }
}