{"id":15017226,"url":"https://github.com/john-bokma/tumblelog","last_synced_at":"2025-04-06T04:14:57.500Z","repository":{"id":37623084,"uuid":"178557390","full_name":"john-bokma/tumblelog","owner":"john-bokma","description":"A static tumblelog generator available as both a Perl and Python version","archived":false,"fork":false,"pushed_at":"2025-04-05T19:19:35.000Z","size":13886,"stargazers_count":113,"open_issues_count":0,"forks_count":6,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-04-05T20:24:29.410Z","etag":null,"topics":["blog","microblog","perl","perl5","python3","static-blog","static-site-generator","tumblelog"],"latest_commit_sha":null,"homepage":"","language":"Perl","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/john-bokma.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","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-03-30T12:44:19.000Z","updated_at":"2025-04-05T20:20:11.000Z","dependencies_parsed_at":"2025-01-13T19:13:49.789Z","dependency_job_id":"5c245869-5ea1-4b48-bbec-271cd0235c0e","html_url":"https://github.com/john-bokma/tumblelog","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/john-bokma%2Ftumblelog","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/john-bokma%2Ftumblelog/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/john-bokma%2Ftumblelog/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/john-bokma%2Ftumblelog/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/john-bokma","download_url":"https://codeload.github.com/john-bokma/tumblelog/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247430963,"owners_count":20937875,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["blog","microblog","perl","perl5","python3","static-blog","static-site-generator","tumblelog"],"created_at":"2024-09-24T19:50:04.635Z","updated_at":"2025-04-06T04:14:57.478Z","avatar_url":"https://github.com/john-bokma.png","language":"Perl","funding_links":[],"categories":[],"sub_categories":[],"readme":"# tumblelog: a static microblog generator\n\n`tumblelog` is a static microblog generator. There are two versions\navailable, one written in Perl and one written in Python. Which\nversion you use is up to you; I make an effort to keep the output of\nboth versions identical except for minor differences between the\nrender libraries used.\n\nThe input is a single Markdown file with additional directives to\ndefine pages and, optionally, tags.\n\nParameters to control the blog are given via command line\narguments. Use the `--help` argument to get an overview of all\npossible arguments. The `tumblelog` program creates the blog HTML5\npages and both a [JSON\nfeed](http://johnbokma.com/blog/2019/04/03/a-json-feed-for-tumblelog.html)\nand an RSS feed.\n\nSee for an example my personal microblog\n[Plurrrr](https://plurrrr.com/). For an example with images, see blog\narticle [The International Mineral\nFair](https://plurrrr.com/archive/2023/03/26.html#the-international-mineral-fair).\n\nGeneration of HTML is fast. On my outdated Mac Mini Late 2014 it takes\na little over 30 seconds to generate 2600+ HTML files out of 1600+ day\nentries using the Python version in Docker.\n\nThe instructions in this README assume the following directory layout:\n\n```\n   `--- projects\n   |       :\n   |       `--- tumblelog\n   |       :       :\n   |       :       `--- screenshots\n   |               `--- styles\n   |               :\n   |\n   `--- sites\n           :\n           `--- example.com\n           :       :\n           :       `--- htdocs\n```\n\nCheck out the `tumblelog` project in the `projects` directory as follows:\n\n```bash\ncd projects\nsudo apt install -y git\ngit clone https://github.com/john-bokma/tumblelog.git\n```\n\nYou can view the generated HTML pages if you have Python installed on\nyour system by entering inside the `htdocs` directory either:\n\n```bash\npython3 -m http.server\n```\n\nfor Python 3 or for Python 2:\n\n```bash\npython -m SimpleHTTPServer 8000\n```\n\nNext, open http://localhost:8000/ to view your pages. Note that not\nall links work if you generated the site for your own domain and view\nit via a local webserver.\n\n![A screenshot of the four styles that come with tumblelog](https://repository-images.githubusercontent.com/178557390/30c42f00-e7ae-11e9-839d-d6bd6faa6e48)\n\nA screenshot of four of the thirteen styles that come with `tumblelog`.\n\nThe `screenshots` directory has 1:1 examples of themes that come with\n`tumblelog`.\n\n**Note**: `tumblelog` uses quite some arguments in order to work. I\nrecommend [using a Makefile](http://johnbokma.com/articles/tumblelog/using-a-makefile.html) to make life easier.\n\n## Getting started using Docker\n\nIf you're already using Docker it's probably the easiest way to start\nwith `tumblelog`.\n\n### Creating the style sheet\n\nThe `tumblelog` project comes with several styles written in\n[Sass](https://sass-lang.com/). You can convert such a style to CSS\nusing the Sass container.\n\nFirst, create the container image as follows. You must be inside the\n`tumblelog` directory.\n\n```bash\ndocker build --tag node/sass -f sass.Dockerfile .\n```\n\nNext, change to the directory that contains your `htdocs`\ndirectory. In the example layout given earlier this is `example.com`\ninside the `sites` directory.\n\nNext, select a style, except the ones starting with an underscore, you\nwant to convert to CSS from the `styles` directory. You can see\nexamples of each style in the `screenshots` directory. For example\nuse `steel.scss`:\n\n```bash\ndocker run --rm \\\n       --volume \"`pwd`/../../projects/tumblelog/styles:/data/styles:ro\" \\\n       --volume \"`pwd`/htdocs:/data/htdocs\" \\\n       --user `id -u`:`id -g` node/sass --no-source-map --style compressed \\\n       --silence-deprecation import \\\n       styles/steel.scss htdocs/steel.css\n```\n\nThis should create a file named `steel.css` inside your `htdocs`\ndirectory.\n\n**Note**: I silence the deprecation regarding the use of `@import`. I\nwill modify the Sass files soon in order to fix this issue.\n\nFor more information regarding the Sass container see: [A Docker Image\nfor Sass](http://johnbokma.com/blog/2021/06/17/a-docker-image-for-sass.html).\n\n### Running the Python version\n\nFirst, create the container image as follows. You must be inside the\n`tumblelog` directory.\n\n```bash\ndocker build --tag tumblelog/python -f python.Dockerfile .\n```\n\nNext, you need an input file. In this example we create a tumblelog\nwith tags so copy from inside the `tumblelog` directory the file\n`tumblelog-tags.html` to your site, in this case `example.com` as\nfollows:\n\n```bash\ncp tumblelog-tags.md ../../sites/example.com/example.md\n```\n\nNext, also copy the template file as follows:\n\n```bash\ncp tumblelog-tags.html ../../sites/example.com/example.html\n\n```\n\nNext, to run the container (version with tags) you must be located\ninside your site's directory. In this case `example.com`:\n\n```bash\ncd ../../sites/example.com\ndocker run --rm --volume \"`pwd`:/data\" --user `id -u`:`id -g` \\\n       -e TZ=\"Europe/Amsterdam\" \\\n       tumblelog/python --template-filename example.html \\\n       --output-dir htdocs/ \\\n       --author 'Test' --name 'Test Blog' --description 'This is a test' \\\n       --blog-url 'http://example.com/' --css steel.css --tags \\\n       example.md\n```\n\n*Note*: make sure you use your own time zone, see for more\ninformation: [Timezones in Alpine Docker\nContainers](http://johnbokma.com/blog/2021/06/14/timezones-in-alpine-docker-containers.html).\n\n### Running the Perl version\n\nFirst, create the container image as follows. You must be inside the\n`tumblelog` directory.\n\n```bash\ndocker build --tag tumblelog/perl -f perl.Dockerfile .\n```\n\nNext, you need an input file. In this example we create a tumblelog\nwith tags so copy from inside the `tumblelog` directory the file\n`tumblelog-tags.html` to your site, in this case `example.com` as\nfollows:\n\n```bash\ncp tumblelog-tags.md ../../sites/example.com/example.md\n```\n\nNext, also copy the template file as follows:\n\n```bash\ncp tumblelog-tags.html ../../sites/example.com/example.html\n\n```\n\nNext, to run the container (version with tags) you must be located\ninside your site's directory. In this case `example.com`:\n\n```bash\ncd ../../sites/example.com\ndocker run --rm --volume \"`pwd`:/data\" --user `id -u`:`id -g` \\\n       -e TZ=\"Europe/Amsterdam\" \\\n       tumblelog/perl --template-filename example.html \\\n       --output-dir htdocs/ \\\n       --author 'Test' --name 'Test Blog' --description 'This is a test' \\\n       --blog-url 'http://example.com/' --css steel.css --tags \\\n       example.md\n```\n\n*Note*: make sure you use your own time zone, see for more\ninformation: [Timezones in Alpine Docker\nContainers](http://johnbokma.com/blog/2021/06/14/timezones-in-alpine-docker-containers.html).\n\n## Python Version Quick Start\n\nInstall sass and pip3 for Linux:\n```bash\nsudo apt install -y git sass python3-pip\n```\n\nOr for macOS:\n```bash\nbrew install sass\nbrew install pip3\n```\n\nThen inside the `tumblelog` directory:\n```bash\npython3 -m venv venv\nsource venv/bin/activate\npip3 install -r requirements.txt\n```\n\n**Note**: You can leave the virtual environment later on using `deactivate`.\n\nNext, change to the directory that contains your `htdocs`\ndirectory. In the example layout given earlier this is `example.com`\ninside the `sites` directory.\n\nNext, select a style, except the ones starting with an underscore, you\nwant to convert to CSS from the `styles` directory. You can see\nexamples of each style in the `screenshots` directory. For example\nuse `steel.scss`:\n\n```bash\nsass --sourcemap=none -t compressed \\\n     ../../projects/tumblelog/styles/steel.scss htdocs/steel.css\n```\n\nThis should create a file named `steel.css` inside your `htdocs`\ndirectory.\n\nNext, you need an input file. In this example we create a tumblelog\nwith tags so copy from inside the `tumblelog` directory the file\n`tumblelog-tags.html` to your site, in this case `example.com` as\nfollows:\n\n```bash\ncp ../../projects/tumblelog/tumblelog-tags.md example.md\n```\n\nNext, also copy the template file as follows:\n\n```bash\ncp ../../projects/tumblelog/tumblelog-tags.html example.html\n\n```\n\nNext run the Python program (version with tags) inside the\n`example.com` directory as follows:\n\n```\npython3 ../../projects/tumblelog/tumblelog.py\n        --template-filename example.html \\\n        --output-dir htdocs/ \\\n        --author 'Test' --name 'Test Blog' --description 'This is a test' \\\n        --blog-url 'http://example.com/' --css steel.css --tags \\\n        example.md\n```\n\n## Documentation\n\n- Installation of the Perl version: to be written, for now see: [Getting started with the Perl version of tumblelog on Ubuntu 18.04 LTS](http://johnbokma.com/blog/2020/03/28/perl-version-tumblelog-ubuntu-bionic-beaver-howto.html)\n\n- [Installation of the Python version](http://johnbokma.com/articles/tumblelog/installation-of-the-python-version-of-tumblelog.html)\n- [Testing tumblelog](http://johnbokma.com/articles/tumblelog/testing-tumblelog.html)\n- [Getting started](http://johnbokma.com/articles/tumblelog/getting-started-with-tumblelog.html)\n- [Using a Makefile](http://johnbokma.com/articles/tumblelog/using-a-makefile.html)\n- [Keeping your tumblelog under version control](http://johnbokma.com/articles/tumblelog/keeping-your-blog-under-version-control-with-git.html)\n\n\n## Blogs\n\n- [Plurrrr: a tumblelog](http://plurrrr.com/) - by John Bokma\n\nIf you want your tumblelog generated site listed here, please let me know.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjohn-bokma%2Ftumblelog","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjohn-bokma%2Ftumblelog","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjohn-bokma%2Ftumblelog/lists"}