{"id":24122220,"url":"https://github.com/tlinden/plosxom","last_synced_at":"2025-06-15T23:04:21.607Z","repository":{"id":30315116,"uuid":"33867334","full_name":"TLINDEN/plosxom","owner":"TLINDEN","description":"plosxom - a filesystem based php blog tool","archived":false,"fork":false,"pushed_at":"2017-07-30T07:19:43.000Z","size":1753,"stargazers_count":0,"open_issues_count":0,"forks_count":1,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-01-11T11:41:53.753Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/TLINDEN.png","metadata":{"files":{"readme":"README.pod","changelog":"CHANGELOG","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2015-04-13T12:30:33.000Z","updated_at":"2017-07-30T06:58:55.000Z","dependencies_parsed_at":"2022-09-02T15:51:13.250Z","dependency_job_id":null,"html_url":"https://github.com/TLINDEN/plosxom","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/TLINDEN%2Fplosxom","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TLINDEN%2Fplosxom/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TLINDEN%2Fplosxom/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TLINDEN%2Fplosxom/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/TLINDEN","download_url":"https://codeload.github.com/TLINDEN/plosxom/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":241210949,"owners_count":19927817,"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":[],"created_at":"2025-01-11T11:39:11.068Z","updated_at":"2025-02-28T19:24:36.908Z","avatar_url":"https://github.com/TLINDEN.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"=head1 NAME\n\nplosxom - a filesystem based php blog tool\n\n=head1 INTRODUCTION\n\nPlosxom is a blogsoftware written in PHP. It is a rewrite of phposxom.\nBlogposts are stored in textfiles, categories are simple directories.\nPlosxom has a comprehensive plugin api, which allows to add almost any\nfunctionality or to replace existing functionality.\n\nPhposxom were itself a php rewrite of blosxom, but the developer has\nabandoned the project. I am using it, because I cannot run perl where\nmy site is hosted and because it is small. However, the sourcecode of\nphposxom were nearly unmaintanable, inefficient and bad styled (sorry\nRobert). Since I use it on an every day basis, I decided to completely\nrewrite it. Plosxom was born.\n\nMany of the blosxom forks out there have been abandoned too, especially\nthe php ports (there are lots of it). None of them seemed to be a\nusefull base for me. Most of them justify their decision that if it\nwere developed further it would become too far to existing projects\nlike wordpress and they didn't want to re-invent the wheel.\n\nWhile I share this view in general, I also see a lot of disadvantages\nwith wordpress: its storage backend can't be replaced. It depends on\nMySQL, which is the worst database system on the planet. With plosxom\nyou could write a sqlite backend or whatever you like, even a mysql\nbackend. Wordpress is also a \"large biest\", it contains a lot of\nsource code and thus a lot of problems, especially from the security\npoint of view. Even wordpress templates are in fact just plain PHP\nfiles, they contain executable code, they can't be edited with a\nHTML editor, look weird and are difficult to maintain.\n\nSpeaking of security - plosxom were developed with strong security in\nmind. Since there is almost no cgi input being used in the software,\nthis goal were not difficult to achive. Everything which gets into\nthe script will be filtered for bogus characters. Future attacks are\nhopefully prevented using this technique.\n\nThere is now a administration backend delivered with plosxom which is\nenabled by default. See L\u003cUSING THE ADMIN WEBINTERFACE\u003e for further\ndetails how to use it. Login to the admin interface is provided as\nB\u003cHTTP Basic Authentication\u003e, which is of course not neccessarily\nmore secure than CGI login using form variables and session cookies.\nHowever, it makes it more difficult for attackers to bypass the\nlogin process using screwed CGI variable input or something. In the\nfuture we will also support B\u003cHTTP Digest authentication\u003e which\nactually IS more secure, because no cleartext password will be transmitted\nover the wire.\n\nIf you still feel unsecure with the admin backend and are happy\nwith unix commandline control of the blog (which in fact just consists\nof creating textfiles, directories and uploading images), then you\nmay want to disable the admin backend. Just create a file B\u003cadmin.disabled\u003e\nin your plugins directory (where the file B\u003cadmin.php\u003e resides).\n\nThe plosxom core engine is very small. In fact, I wrote it in just\ntwo days. This sounds like a hell of a crap, but it isn't. Much\nfunctionality is provided by plugins, even core functions, such as\ntext file management, is coded as a plugin. Since we are using smarty\nas our template engine there are endless possibilities to enhance\nplosxom. You can write a simple plugin along with a simple smarty\nfunction and that's it.\n\nFor now, plosxom doesn't provide built-in comment support due to\nsecurity reasons. Instead comments can be outsourced to Haloscan.\nHowever, perhaps someone will write a comment plugin some day,\nwho knows.\n\n\n=head1 INSTALLATION\n\n=head2 DOWNLOADING\n\nDownload the latest tarball of plosxom. Copy it to your webspace\nand unpack it:\n\n% tar xvfz plosxom-core-x.xx.tar.gz\n\nYou may also unpack it at home and then upload it recursively.\n\nMake sure your webserver is able to access all the files. Read\npermissions are sufficient if you don't intend to use the admin\nwebinterface.\n\nFor the graphical installation and the admin webinterface to\nwork you have to make sure the following directories are writable\nfor the webserver user:\n\n etc/\n templates/\n plugins/\n images/\n\nIf unsure how to do it, use the following command:\n\n chmod 777 etc templates plugins images\n\n=head2 GRAPHICAL INSTALLATION\n\nThis is the recommended way to configure plosxom. Point your\nbrowser to the website where you installed plosxom and call\n'install.php'. Eg. say you installed it on http://mysite.com/\nthen call http://mysite.com/install.php in your browser.\n\nThe installer will create a basic config for you which should\nfullfil all requirements of plosxom. It will also check read\nand write permissions.\n\nFinally you have to assign a password for the 'admin' user,\nthere is no default password or anything. So, if you leave this\nstep you will not be able to access the admin backend.\n\nIf you are finished you have to remove the file 'install.php'.\n\n\n\n\n=head2 MANUAL CONFIGURATION\n\nCopy the file 'etc/plosxom.conf.dist' to 'etc/plosxom.conf'.\nNext edit the configuration file.\n\nHere is an explanation of the variables:\n\n\n=over\n\n=item B\u003ctemplate_path\u003e\n\nWhere are the templates located. This directory must be visible\nto the webserver, because templates provide css stylesheets, which\nare required.\n\nExample:\n\n template_path = /path/to/webspaceplosxom/templates\n\n=item B\u003ctmp_path\u003e\n\nThe directory where pre-compiled templates can be stored. Must\nbe writable for the webserver.\n\nExample:\n\n tmp_path = /tmp\n\n=item B\u003cdata_path\u003e\n\nHere are the postings stored. You can create subdirectories, which\nwill then considered as categories. Only files with a .txt extension\nwill be indexed. To hide a file from the blog, change its permissions\nso that the webserver can't read it anymore. Consider this as\n\"draft posting\" feature.\n\nExample:\n\n data_path = /path/to/webspaceplosxom/data\n\n=item B\u003cplugin_path\u003e\n\nWhere plugins are located.\n\nExample:\n\n plugin_path = /path/to/webspace/plosxom/plugins\n\n=item B\u003cimage_path\u003e\n\nWhere images are located, must be accessible from web.\n\nExample:\n\n image_path = /path/to/webspaceplosxom/images\n\n=item B\u003ctemplate\u003e\n\nThe name of the template to use. Each template is a directory beneath\nthe template_path.\n\nExample:\n\n template = default\n\n=item B\u003cblog_name\u003e\n\nThe overall name of your blog.\n\nExample:\n\n blog_name = BLOGNAME\n\n=item B\u003cblog_title\u003e\n\nAdd a short description, a oneliner is far enogh.\n\nExample:\n\n blog_title = BLOGDESCRIPTION\n\n=item B\u003cpostings\u003e\n\nThe number of postings to be displayed on the blog front page.\n\npostings = 10\n\n=item B\u003cauthor\u003e\n\nYour name.\n\n=item B\u003cauthor_link\u003e\n\nAdd a link to your homepage or something which will be used to\nunderline the author name.\n\n=item B\u003cwhoami\u003e\n\nThis is the http url of the plosxom blog.\n\nExample:\n\n whoami = http://yourpage/plosxom/plosxom.php\n\n=item B\u003cbaseurl\u003e\n\nThis is the base url of the blog, without the plosxom.php file.\nWill be used to create image or stylesheet links.\n\nExample:\n\n baseurl = http://yourpage/plosxom/\n\n=item B\u003cimgurl\u003e\n\nThis is the base url to display images.\n\nExample:\n\n imgurl = http://yourpage/plosxom/images\n\n=item B\u003cimage_normal_width\u003e\n\nThe width of normalized images in pixel. If you upload an image using the\nadmin webinterface, smaller images will be generated so that they\nfit into your blog design.\n\nExample:\n\n image_normal_width = 400\n\n=back\n\n\n=head1 SEARCH ENGINE FRIENDLY URLS\n\nBy default plosxom uses urls like this:\n\n http://loria/plosxom.php/bullshit/aufschwung\n\nWhile this is in fact still ok for search engines and looks\nok, it still contains the PHP file B\u003cplosxom.php\u003e in the url.\n\nYou may circumvent this using the apache module B\u003cMOD_REWRITE\u003e.\n\nFist, create a B\u003c.htaccess\u003e file in the directory which contains the\nplosxom.php like this:\n\n \u003cIfModule mod_rewrite.c\u003e\n   RewriteEngine On\n   RewriteCond %{REQUEST_FILENAME} !-f\n   RewriteCond %{REQUEST_FILENAME} !-d\n   RewriteRule    ^(.+)/(.+)$   /plosxom.php/$1/$2  [PT,L]\n   RewriteCond %{REQUEST_FILENAME} !-f\n   RewriteCond %{REQUEST_FILENAME} !-d\n   RewriteRule    ^(.+)$        /plosxom.php/$1     [PT,L]\n \u003c/IfModule\u003e\n\nIf plosxom is not installed in the document root but inside a\nsubdirectory, eg:\n\n http://loria/blog/plosxom.php\n\nthen you have to add a base directory for mod_rewrite in the\n.htaccess file:\n\n RewriteBase /blog\n\nNext, you have to modify the configuration of plosxom so that\nit generates appropriate links. The variable to modify is\nB\u003cwhoami\u003e.\n\nIf it contains for example the following:\n\n whoami = http://loria/plosxom.php\n\nchange it to:\n\n whoami = http://loria\n\nNote that we added no trailing slash, plosxom will add slashes\nas neccessary.\n\n=head1 USING PLOSXOM\n\n\n=head2 USING THE ADMIN WEBINTERFACE\n\n=head3 LOGGING IN AS ADMIN\n\nAccess the url configured in your config as B\u003cwhoami\u003e plus B\u003c/admin\u003e, eg:\n\n http://yoursite.com/plosxom.php/admin\n\nSome templates also contain a link to the admin interface,\nthe installer displays a link to the webinterface too, you\nmay bookmark it.\n\n=head3 WRITING NEW BLOG POSTING\n\nIn the admin webinterface you'll see a list of all you\npostings available. If it's the first time you are using\nplosxom this listing may be empty though.\n\nJust click the B\u003cNew Posting\u003e link, a visual text editor\nwill appear, now just enter some text, assign it a title,\nwhich is required and assign the posting to a category.\n\nIf there are no categories just enter a new one into the category\nfield, otherwise click on one of the existing categories listed\nbelow.\n\nB\u003cNote: a category is just a directory under your data/ path.\nTherefore a category will be removed if it doesn't contain any\nfiles (which are postings) anymore.\u003e\n\nFinally click the save button and you are done.\n\n=head3 IMAGES\n\nFrom the B\u003cMedia Manger\u003e you can upload and remove images. To upload\na new image just click the b\u003cUpload media file\u003e link and follow the\ninstructions.\n\n=head3 BLOG CONFIGURATION\n\nFrom the admin webinterface you can also edit all configuration\nfiles residing in your etc directory.\n\nYou can also install new plugins or templates, activate plugins, choose\na template as the current one.\n\nSome plugins are providing their own admin webinterface hook,\nwhich may be available from the b\u003cExtras\u003e menu or they may create\ntheir own main menu entry.\n\n\n=head2 MANUALLY USAGE\n\n=head3 CREATING A NEW BLOG POSTING\n\nStart blogging by creating txt files under the\ndata_path directory. The first line will be used as the posting\ntitle. Subdirectories under the data directory will be considered\nas category.\n\n=head3 INSTALLING PLUGINS\n\nTo install a plugin, download it from the Plugin page:\n\nhttp://code.google.com/p/plosxom/wiki/Plugins\n\nCopy the .php file to the plugin_path directory. If the plugin\ncontains further installation instructions follow it precisely.\nThat's it. Plugin will be loaded automatically by plosxom.\n\nIn most cases you'll have to add some code snippet to your template.\nHow to do this will be documented in the plugin.\n\n\n=head3 INSTALLING TEMPLATES\n\nTo install a template, download it from the Templates page:\n\nhttp://code.google.com/p/plosxom/wiki/Templates\n\nUninstall the .zip file inside the template_path directory. This\nwill create a new directory with the name of the template. Add\nthis name to your configfile by replacing the variable template\nwith it.\n\n\n\n=head1 UPDATING PLOSXOM\n\nTo update your installation, go to the Download page and download\nthe latest patch file. Unpack this patch in your plosxom directory.\nA patch tarball only contains the changed files and will not\noverwrite any configuration files or templates. If the default\ntemplate has changed, a .updated file will be installed instead.\nYou may then adjust your current template with the changes or\njust replace it with the new version.\n\n\n\n=head1 PROBLEMS\n\nIf you encounter problems, file a Bugreport if you think it is a\nbug:\n\nhttp://code.google.com/p/plosxom/issues/list\n\nSend me an email if you need help installing or configuring\nplosxom: \u003cnobrain AT bk DOT ru\u003e.\n\n\n\n=head1 THANKS\n\nThanks for using plosxom and keeping the opensource movement alive!\n\n\n=head1 COPYRIGHT AND LICENSE\n\nCopyright (c) 2007-2008 Pali Dhar \u003cnobrain@bk.ru\u003e.\nCopyright (c) 2009-2017 T.v.Dein \u003ctlinden@cpan.org\u003e\n\nLicensed under the terms of the \"Artistic License\" (see LICENSE).\n\n\nSmarty is copyright (c) 2001-2005 New Digital Group, Inc.\nLicensed under the terms of the GNU Lesser General Public License 2.1\nFor more details see: http://smarty.php.net/\n\n=cut\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftlinden%2Fplosxom","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftlinden%2Fplosxom","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftlinden%2Fplosxom/lists"}