Simple, beautiful, open source publishing.

Overview

Leafpub

Simple, beautiful publishing.

Website   Documentation  

Gitter   Twitter Follow

Created by Cory LaViska

Maintained by Marc Apfelbaum

Screenshots

Requirements

  • PHP 7.1+ with curl, gd lib, mbstring, openssl & pdo
  • MySQL 5.5.3+

Download

This is the development repo! You'll need to build Leafpub using the instructions below before running it.

Download the latest ready-to-use version from: https://leafpub.org/download

Contributing

Leafpub uses Composer and NPM to manage dependencies and Gulp as its task runner. To contribute to this project, you'll need to clone the repository and install the required development tools listed below.

Please read through our contributing guidelines.

Something is wrong with a translation? Your language isn't available? Please read through the language section

Building

Once you have the necessary development tools installed:

  1. Open a terminal
  2. Navigate to the root directory of your cloned repo
  3. Run the following command:
composer install

Composer will install its own dependencies and then run npm install. This may take a few minutes as packages are downloaded. Once complete, Composer will trigger gulp build which will generate all the assets you need to run Leafpub.

Important: You'll also need to add the default theme to content/themes/range/ manually. This will happen automatically once Leafpub is out of beta.

Using Gulp

From the root directory, you can use gulp help to see all available tasks:

Usage
    gulp [TASK] [OPTIONS...]

Available tasks
    build          Run all build tasks. [build:fonts, build:images, build:prune, build:scripts, build:styles]
    build:fonts    Build font assets. [clean:fonts]
    build:images   Optimize images. [clean:images]
    build:prune    Prune unused files from vendor packages.
    build:scripts  Build scripts. [jshint, clean:scripts]
    build:styles   Build styles. [clean:styles]
    clean          Clean up generated files. [clean:fonts, clean:images, clean:scripts, clean:styles]
    clean:fonts    Delete generated fonts.
    clean:images   Delete generated images.
    clean:scripts  Delete generated scripts.
    clean:styles   Delete generated styles.
    default        Run the default task. [watch]
    help           Display this help text.
    jshint         Lint source scripts with JSHint.
    release:clean  Delete all generated releases.
    release:make   Generate a release.
    watch          Watch for script and style changes.

For development, use gulp watch to automatically compile Sass/JavaScript as you work.

Testing

You can run Leafpub on PHP's built in web server using the following command:

php -S localhost:8080 -t app

Then open http://localhost:8080 in your browser.

Note: You might need to use 127.0.0.1 instead of localhost in your database config!

Versioning

Leafpub is maintained under the Semantic Versioning guidelines and we adhere to them as closely as possible.

Developers

Marc Apfelbaum

License

©2018 Marc

This software is copyrighted. You may use it under the terms of the GNU GPLv3 or later. See LICENSE.md for licensing details.

All code is copyright 2016-2018 by Marc except where noted. Third-party libraries are copyrighted and licensed by their respective owners.

Theme & Plugin Policy

We do not consider Leafpub themes and plugins to be derivative works, as they are used to extend and enhance the software's functionality strictly through its API and they do not in any way modify Leafpub's core codebase. Therefore, in our opinion, themes and plugins may be licensed completely at the author's discretion.

Support

Please visit leafpub.org/support for support.


“The starting point of all achievement is desire.” — Napoleon Hill

Comments
  • Support for Plugins

    Support for Plugins

    This issue is for plugin planning and development.

    TODO

    • [x] Events
      • [x] add listeners
      • [x] remove listeners
      • [x] dispatch events
        • [x] post.*
        • [x] tag.*
        • [x] user.*
        • [ ] navigation.*
        • [ ] setting.*
        • [ ] route.*
        • [ ] ui.*
        • [ ] admin.*
        • [x] system.*
          • [x] ready
          • [x] terminate
    • [x] Database table
      • [x] Fields TBD
      • [x] Update default.database.sql
      • [ ] Add upgrade instructions to INSTALL.md
    • [x] Plugin class
      • [x] Method to scan content/plugins (similar to Theme::getAll())
      • [x] Method to retrieve enabled plugins
      • [x] Methods to enable/disable plugins
      • [x] Method to delete plugins
    • [] Documentation
    feature 
    opened by claviska 14
  • Caddy Support

    Caddy Support

    Thanks for using Postleaf! 💙💚

    This issue tracker is ONLY for bug reports. If you need help with something or would like to request a feature, please ask on https://community.postleaf.org/ instead.


    Issue Summary

    Support for Caddy was requested here https://github.com/Postleaf/postleaf/issues/11#issuecomment-237972816

    Steps to Reproduce

    Tell us how to replicate the problem.

    1. Try to run Postleaf using Caddy.

    Additional info

    • Postleaf version: *
    • PHP version: *
    • Affected browsers: *
    • Operating system: *

    This is what appears to be working for me:

    postleaf.dev:7755 {
      root ./app
      gzip
      tls off
      fastcgi / 127.0.0.1:9000 php
      rewrite {
        regexp ^/backups
        status 403
      }
      rewrite {
        to {path} {path}/ /index.php?{query}
      }
    }
    

    It would be good if someone else could verify it works for them too. Caddy isn't a web server I'm very familiar with, but maybe this will serve as a starting point. ~~I think the last rewrite rule can be improved on. Without it, tar file for backup downloads served by the API wouldn't work for me.~~ - fixed based on feedback from this issue and information found here mholt/caddy/issues/289

    @doughnet

    feature 
    opened by calmdev 11
  • Noob question/issue - Login with https/ssl error

    Noob question/issue - Login with https/ssl error

    Hi,

    First of all thanks for publishing this CMS, it looks great so far! But I have a little problem now my website is running on https/ssl.

    ERROR

    1. When I enter https://domain.com/admin it redirects me to /admin/login?redirect=https%3A%2F%2Fdomain.com%3A80%2Fadmin.

    Here is where I get the error, as soon as I try to login the url changes to https://domain.com:80/admin and the following error is showed within the browser.

    • This site cannot connect securely deliver domain.com has an invalid response. Run the Windows network monitor. ERR_SSL_PROTOCOL_ERROR

    NO ERROR 2. If I login trough the url domain.com/admin/login , there is no redirect and the login is succesfull. 3. if I adjust the url https://domain.com:443/admin or delete the port number in the url https://domain.com/admin it continues.

    Do you know if this is an issue with my webhost or some redirect within the cms?

    if you have any questions, please let me know.

    opened by BryanHeijmans 10
  • [proposal] Importer

    [proposal] Importer

    Thanks for contributing to Postleaf! 💙💚

    Pull Request Summary

    This is a work-in-progess proposal for the wordpress/ghost importer.

    Have you...

    • [x] Checked that your code adheres to our code guidelines?

    Contributor License Agreement

    We want Postleaf to remain free and open for everyone to use forever, so please don’t submit any code or content that is licensed or copyrighted without first getting written consent.

    Before we accept your pull request, we ask that you agree to the following terms to ensure there are no conflicts with Postleaf’s license now or in the future.

    1. I certify that the code I am contributing to this project is completely original or free of any known license or copyright.
    2. I agree to allow the developer of Postleaf, A Beautiful Site, LLC, license or relicense my work at their discretion. By submitting this pull request, I agree to forfeit all copyrights, intellectual property rights, and royalties pertaining to my contribution.
    3. By entering my name in the space provided below, I agree to all of the terms mentioned above.

    Signed: [Marc Apfelbaum]

    Date: [2016-08-26]

    plugin 
    opened by karsasmus 10
  • False pub_date

    False pub_date

    This issue tracker is ONLY for bug reports. If you need help with something or would like to request a feature, please ask on https://community.postleaf.org/ instead.


    Issue Summary

    Question in the forum.

    Steps to Reproduce

    Tell us how to replicate the problem.

    1. Open a post
    2. Edit the pub date
    3. Save

    pub_date == actual date.

    The date in the properties array has the format YYYY-MM-DD @ HH:MM. strtotime can't parse this format.

    Additional info

    • Postleaf version:
    • PHP version:
    • Affected browsers: Chrome 52
    • Operating system: Ubuntu / Win10

    Provide any additional information that may be relevant to the bug here.

    opened by karsasmus 9
  • Error: Template missing: blog.hbs

    Error: Template missing: blog.hbs

    After installing the Postleaf, I have error when to go to localhost/postleaf/app:

    Application Error
    Template missing: blog.hbs
    
    localhost
    

    And have problem like this:

    animation

    You can see when press button install, the bar process appear quick. And it not auto redirected to homepage after install success. I think you need navigation to homepage after install success.

    opened by vanloc0301 9
  • Language Pack Case Sensitivity

    Language Pack Case Sensitivity

    Issue Summary

    So have some issues with camelcase files in languages directory

    Steps to Reproduce

    captura de tela_2016-08-24_16-32-37

    1. Change your language to pt-PT
    2. Refresh the page

    Additional info

    • Postleaf version: lastest
    • PHP version: 7
    • Affected browsers: tested on Firefox and Chrome
    • Operating system: Xubuntu 16.04

    I'hve fixed renaming the file:

    app/source/languages/pt-pt.php -> app/source/languages/pt-PT.php

    I think that doesn't need an pull request, but I can do it if you like :smile:

    bug 
    opened by icaromh 8
  • http/https urls

    http/https urls

    Thanks for using Postleaf! 💙💚

    This issue tracker is ONLY for bug reports. If you need help with something or would like to request a feature, please ask on https://community.postleaf.org/ instead.


    Issue Summary

    Hello, I'm using Cloud9 for developing. Cloud9 serves the projects via https. It seems that Postleafs url helper function doesn't recognize the https and generates a http link for the theme files. Consequently Chrome doesn't load the theme files.

    Screenshot with Console

    Steps to Reproduce

    Tell us how to replicate the problem.

    1. Serve postleaf over https

    Additional info

    • Postleaf version: master branch
    • PHP version: 5.5.9-1ubuntu4.17
    • Affected browsers: Chrome 52
    • Operating system: ChromeOS

    Provide any additional information that may be relevant to the bug here.

    bug 
    opened by karsasmus 8
  • Error when building Postleaf

    Error when building Postleaf

    I have error when run command: npm install both at Windows 7/10 and Manjaro. How to fix it? Thanks.

    > [email protected] postinstall /srv/http/postleaf/node_modules/gifsicle
    > node index.js
    
    path.js:7
        throw new TypeError('Path must be a string. Received ' + inspect(path));
        ^
    
    TypeError: Path must be a string. Received { url: 'https://raw.github.com/imagemin/gifsicle-bin/v0.1.7/vendor/linux/x64/gifsicle',
      name: 'gifsicle',
      os: 'linux',
      arch: 'x64' }
        at assertPath (path.js:7:11)
        at Object.basename (path.js:1357:5)
        at /srv/http/postleaf/node_modules/download/index.js:35:43
        at each (/srv/http/postleaf/node_modules/each-async/each-async.js:63:4)
        at module.exports (/srv/http/postleaf/node_modules/download/index.js:33:5)
        at /srv/http/postleaf/node_modules/bin-wrapper/index.js:108:20
        at /srv/http/postleaf/node_modules/bin-wrapper/index.js:141:24
        at /srv/http/postleaf/node_modules/bin-check/index.js:30:20
        at /srv/http/postleaf/node_modules/executable/index.js:39:20
        at FSReqWrap.oncomplete (fs.js:123:15)
    npm WARN install:[email protected] [email protected] postinstall: `node index.js`
    npm WARN install:[email protected] Exit status 1
    
    > [email protected] postinstall /srv/http/postleaf/node_modules/jpegtran-bin
    > node index.js
    
    
    > [email protected] postinstall /srv/http/postleaf/node_modules/optipng-bin
    > node index.js
    
    path.js:7
        throw new TypeError('Path must be a string. Received ' + inspect(path));
        ^
    
    TypeError: Path must be a string. Received { url: 'https://raw.github.com/imagemin/optipng-bin/v0.3.11/vendor/linux/x64/optipng',
      name: 'optipng',
      os: 'linux',
      arch: 'x64' }
        at assertPath (path.js:7:11)
        at Object.basename (path.js:1357:5)
        at /srv/http/postleaf/node_modules/download/index.js:35:43
        at each (/srv/http/postleaf/node_modules/each-async/each-async.js:63:4)
        at module.exports (/srv/http/postleaf/node_modules/download/index.js:33:5)
        at /srv/http/postleaf/node_modules/bin-wrapper/index.js:108:20
        at /srv/http/postleaf/node_modules/bin-wrapper/index.js:141:24
        at /srv/http/postleaf/node_modules/bin-check/index.js:30:20
        at /srv/http/postleaf/node_modules/executable/index.js:39:20
        at FSReqWrap.oncomplete (fs.js:123:15)
    npm WARN install:[email protected] [email protected] postinstall: `node index.js`
    npm WARN install:[email protected] Exit status 1
    
    
    opened by vanloc0301 8
  • Password reset does not work

    Password reset does not work

    Issue Summary

    The password reset does not work.

    Steps to Reproduce

    1. Go to admin login page and click on the forgot password link
    2. Enter your username
    3. Click on link in the password reset email
    4. Put new password in both fields and click submit.

    Expected Response

    Success or go to admin dashboard.

    Actual Response

    "Invalid Username" shown on screen.

    Additional info

    The rendered password reset page does not have values for the two hidden fields username and token, as such the POST on clicking submit does not have the username or token in its POST parameters.

    It appears as though the following lines in login.reset.hbs are not being rendered correctly.

            <input type="hidden" name="username" value="{{@request.get.username}}">
            <input type="hidden" name="token" value="{{@request.get.token}}">
    
    opened by jclacherty 7
  • Can't edit editable areas of posts/pages when double clicked to select

    Can't edit editable areas of posts/pages when double clicked to select

    Thanks for using Postleaf! 💙💚

    This issue tracker is ONLY for bug reports. If you need help with something or would like to request a feature, please ask on https://community.postleaf.org/ instead.


    Issue Summary

    At the admin page for section with list of posts/pages you can click on a page and edit it by clicking the pencil OR double clicking on it. If you double click on it sometimes it does not allow for editing the inline text content.

    Steps to Reproduce

    Tell us how to replicate the problem.

    1. Login as admin/author
    2. Go to the Post page
    3. Double click on a post or page to open it (do not click once and click on the edit/pencil icon)
    4. Try to type in the editable areas. Half the time it does not allow for editting

    Additional info

    • Postleaf version: version beta 1,2 & 3
    • PHP version: 5.6
    • Affected browsers: firefox & chrome
    • Operating system: all?

    Provide any additional information that may be relevant to the bug here.

    opened by doughnet 7
  • Bump tinymce/tinymce from 4.6.0 to 5.10.7

    Bump tinymce/tinymce from 4.6.0 to 5.10.7

    Bumps tinymce/tinymce from 4.6.0 to 5.10.7.

    Changelog

    Sourced from tinymce/tinymce's changelog.

    5.10.7 - 2022-12-06

    Fixed

    • HTML in messages for the WindowManager.alert and WindowManager.confirm APIs were not properly sanitized. #TINY-3548

    5.10.6 - 2022-10-19

    Fixed

    • The name and id attributes of some elements were incorrectly removed during serialization #TINY-8773
    • Notifications would not properly reposition when toggling fullscreen mode #TINY-8701
    • Toggling fullscreen mode with the fullscreen plugin now also fires the ResizeEditor event #TINY-8701
    • The URL detection used for autolink and smart paste didn't work if a path segment contained valid characters such as ! and : #TINY-8069

    5.10.5 - 2022-05-25

    Fixed

    • Base64 data URIs were not extracted correctly during parsing when proceeded by data: text #TINY-8646
    • Empty lines that were formatted in a ranged selection using the format_empty_lines option were not kept in the serialized content #TINY-8639
    • The s element was missing from the default schema text inline elements #TINY-8639
    • Some text inline elements specified via the schema were not removed when empty by default #TINY-8639

    5.10.4 - 2022-04-27

    Fixed

    • Inline toolbars flickered when switching between editors #TINY-8594
    • Multiple inline toolbars were shown if focused too quickly #TINY-8503

    5.10.3 - 2022-02-09

    Fixed

    • Alignment would sometimes be removed on parent elements when changing alignment on certain inline nodes, such as images #TINY-8308
    • The fullscreen plugin would reset the scroll position when exiting fullscreen mode #TINY-8418

    5.10.2 - 2021-11-17

    Fixed

    • Internal selectors were appearing in the style list when using the importcss plugin #TINY-8238

    5.10.1 - 2021-11-03

    Fixed

    • The iframe aria help text was not read by some screen readers #TINY-8171
    • Clicking the forecolor or backcolor toolbar buttons would do nothing until selecting a color #TINY-7836
    • Crop functionality did not work in the imagetools plugin when the editor was rendered in a shadow root #TINY-6387
    • Fixed an exception thrown on Safari when closing the searchreplace plugin dialog #TINY-8166
    • The autolink plugin did not convert URLs to links when starting with a bracket #TINY-8091
    • The autolink plugin incorrectly created nested links in some cases #TINY-8091
    • Tables could have an incorrect height set on rows when rendered outside of the editor #TINY-7699
    • In certain circumstances, the table of contents plugin would incorrectly add an extra empty list item #TINY-4636
    • The insert table grid menu displayed an incorrect size when re-opening the grid #TINY-6532

    ... (truncated)

    Commits
    • f078d8e Added version 5.10.7 release.
    • 8ba4429 Added version 5.10.6 release.
    • c91227a Added version 5.10.5 release.
    • 3d7c892 Added version 5.10.4 release.
    • dadd7f2 Added version 5.10.3 release.
    • ef9962f Added version 5.10.2 release.
    • 23dbb5d Added version 5.10.1 release.
    • dbd8fef Added version 5.10.0 release.
    • 48c665a Added version 5.9.2 release.
    • 2692079 Added version 5.9.1 release.
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 0
  • Bump erusev/parsedown from 1.6.2 to 1.7.2

    Bump erusev/parsedown from 1.6.2 to 1.7.2

    Bumps erusev/parsedown from 1.6.2 to 1.7.2.

    Release notes

    Sourced from erusev/parsedown's releases.

    1.7.2

    This is a security release and resolves an issue which would allow a user to add arbitrary classes to fenced code blocks. This might have security consequences, see #699 for more detail.

    1.7.1

    This is a bugfix release. The following have been resolved:

    #475: "Loose" lists will now contain paragraphs in all items, not just some. #433: Links will no longer be double nested #525: The info-string when beginning a code block may now contain non-word characters (e.g. c++) #561: The mbstring extension (which we already depend on) has been added explicitly to composer.json #563: The Parsedown::version constant now matches the release version #560: Builds will now fail if we forget to update the version constant again 😉

    Thanks to @​PhrozenByte, @​harikt, @​erusev, @​luizbills, and @​aidantwoods for their contributions to this release.

    Safe Mode

    No release notes provided.

    Commits
    • d60bcdc Bump version
    • c390a9e Merge pull request #700 from aidantwoods/fix/spaces-in-class-names-1.7.x
    • 0f1e9da Fix test platforms
    • bc00395 [1.7.x] Fix spaces in class names
    • 92e9c27 Merge pull request #563 from luizbills/master
    • 9857334 bump version
    • ae7e8e5 bump version
    • 2538220 refactor who uses it section in readme a bit more
    • a18bf49 refactor who uses it section in readme
    • e5bf956 add Laravel to who uses it
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 0
  • Set login form to post, in case js errors prevent submit cancelation

    Set login form to post, in case js errors prevent submit cancelation

    After an update from 1.0.0 to 1.2.0-beta7 the jQuery script was missing. (I had it set to load from local) This made the login form submit via GET and thus showed my password in the URI. With this change it would mitigate this data leakage (bystanders seeing my password)

    Pull Request Summary

    Only added post as method to the login form

    opened by schlypel 0
  • 1.20 b5/b6 - Link button kaput

    1.20 b5/b6 - Link button kaput

    This issue tracker is ONLY for bug reports. If you need help with something or would like to request a feature, please ask on https://community.leafpub.org/ instead.

    ^^^ community.leafpub still gives a DNS error, by the way

    Issue Summary

    Editing post with 1.2.0 b6. Click on link button to add hyperlink > nothing happens. (embed and other buttons still all work fine).

    Downgraded to b5 > same

    Downgraded to 1.1.9 > works as expected.

    Ubuntu 16.04.2 LTS PHP 7.0.22

    opened by trentyarwood 4
  • Issue in 'Leafpub' installation (Version 1.1.9) while using Mysqli adapter

    Issue in 'Leafpub' installation (Version 1.1.9) while using Mysqli adapter

    Hi, Tried to install Leafpub version 1.1.9 downloaded from here https://www.leafpub.org/download on the following environment. O.S-Centos 6.4 PHP Version : 5.6.30 MySql Version - 5.5.54 However encountered the following error while installing with MySqli adapter : Unable to create the database schema: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'CREATE TABLE leafpub_history ( id INTEGER NOT NULL AUTO_INCREMENT, `p' at line 1

    What could be causing this issue ?

    opened by prbt2016 7
Releases(1.2.0-beta7)
  • 1.2.0-beta7(Jan 5, 2018)

  • 1.2.0-beta6(Jun 18, 2017)

    🎉 Leafpub 1.2.0-beta6 released 🎉

    Notable changes

    • sitemaps und robot.txt added
    • make the use of Google AMP optional
    • add table functionality to the editor
    • add external images to the content via image panel
    • Bootstrap tooltips are disabled for now as they block functions on mobile
    • added opacitiy to admin menu
    Source code(tar.gz)
    Source code(zip)
    leafpub-1.2.0-beta6.zip(9.23 MB)
  • 1.2.0-beta5(Apr 20, 2017)

    :tada: Leafpub 1.2.0-beta5 released :tada:

    Notable changes

    • more AMP :zap: elements (YouTube, Vimeo, Soundcloud and Facebook)
    • Cache::flush deletes all cashed images
    • Length of meta title and meta description added to the settings panel
    • minor bugifxes in several classes (Backup, Post)
    • Page slug has been added to the body class (Format: lp-slug) So you're able to style several pages with CSS ex: <body class="page-template lp-features">
    • Updated the demo images
    • Possibilty added to change the logo on login screen. You only need to uncomment to code seen here: https://github.com/Leafpub/leafpub/commit/26edcacdf1717fb7dd5392eb91ccada95f0ccada#diff-d76f02f65e745babab62a8315f90a897R6
    Source code(tar.gz)
    Source code(zip)
    leafpub-1.2.0-beta5.zip(7.96 MB)
  • 1.2-beta4(Apr 13, 2017)

  • 1.2-beta3(Apr 12, 2017)

    :tada: Leafpub 1.2-beta3 released :tada:

    Notable changes

    • Language are getting downloaded and installed ( #117 )
    • AMP support added ( #97 )
    • Icon changes on locked posts: you'll only see a lock, if another user locked the post.
    • setting the correct timezone in database class
    • Bugfix in editor.js: figure and figcaption are getting saved correctly now
    Source code(tar.gz)
    Source code(zip)
    leafpub-1.2-beta3.zip(6.14 MB)
  • 1.2-beta2(Apr 9, 2017)

  • 1.2-beta1(Apr 7, 2017)

    :tada: Leafpub 1.2-beta1 released :tada:

    Updating

    Replace index.php and source/

    Notable changes

    • Leafpub is now able to update itself, the installed plugins/themes and languages (see #3)
    • Leafpub got a dashboard with widgets (see #110) At the moment, there are 2 dashboard widgets. You'll find them at here and here
    • Slug creation got an update, non-latin characters will be replaced with ANSII character (see #113)
    • Posts are getting locked on editing. (see #109)
    • increased schemeVersion to 3:
      • added table post_meta
    • added event PostViewed(slug, requestObject): This event gets raised if a post gets viewed at the front-end. Leafpub listens to this event and increases the field post_meta.viewCount.
    Source code(tar.gz)
    Source code(zip)
    leafpub-1.2-beta1.zip(6.19 MB)
  • 1.1.8(Apr 3, 2017)

  • 1.1.7(Mar 26, 2017)

  • 1.1.6(Mar 26, 2017)

  • 1.1.5(Mar 25, 2017)

  • 1.1.4(Mar 23, 2017)

  • 1.1.3(Mar 21, 2017)

  • 1.1.2(Mar 21, 2017)

  • 1.1.1(Mar 21, 2017)

  • 1.1.0(Mar 21, 2017)

    :tada: Leafpub 1.1.0 :tada:

    Updating

    • Be sure you're using at least php v5.6+!
    • Replace index.php and source/
    • If you're updating from the last release (beta4), add a new setting to your settings table: name: 'schemeVersion', value: 2
    • If you're updating from the latest stable release, be prepared to run a database update. Leafpub will you guide through this update.

    Notable changes

    • [enh] Event System
    • [enh] Plugin support
    • [enh] Media Manager
    • [enh] ORM (Zend Db)
    • [enh] database updates via ORM and schemeVersion, no more need to run SQL queries
    • [enh] support for image captions
    • [enh] Importer for WordPress
    Source code(tar.gz)
    Source code(zip)
    leafpub-1.1.0.zip(6.06 MB)
  • 1.1.0-beta4(Feb 12, 2017)

    :tada: Leafpub 1.1.0-beta4 :tada:

    Updating

    • Replace index.php and source/
    • open database.php and add 'driver' => 'Pdo_Mysql', 'charset' => 'utf8mb4' to array

    Notable changes

    • added ORM (Zend Db):
      • reorganised classes in /models and /models/tables
      • removed database.sql script. Installation is now made via Zend Ddl classes
      • Leafpub supports more database system see Zend Db Manual
    • added route /admin/regenerateThumbnails: a simple hack to regenerate missing image thumbnails
    Source code(tar.gz)
    Source code(zip)
    leafpub-1.1.0-beta4.zip(5.81 MB)
  • 1.1.0-beta3(Feb 3, 2017)

    :tada: Leafpub 1.1.0-beta3 :tada:

    Updating

    Replace index.php and source/

    Notable changes

    • added missing language strings
    • fixed a bug in Uploads
    • fixed regex in WordPress Importer Dropin

    :exclamation: DB FIX :exclamation:

    Attached you'll find db_upload_fix.php. Copy this file into your Leafpub folder, open a terminal and execute the file via php pathToLeafpub/db_upload_fix.php

    The file fixes the data in path and filename fields and generates the thumbnails.

    Source code(tar.gz)
    Source code(zip)
    db_upload_fix.php(2.41 KB)
    leafpub-1.1.0-beta3.zip(9.36 MB)
  • 1.1.0-beta2(Feb 1, 2017)

    :tada: Leafpub 1.1.0-beta2 :tada:

    Updating

    Replace index.php and source/

    Updating the database

    ALTER TABLE __uploads ADD COLUMN `caption` VARCHAR(191) DEFAULT NULL AFTER id;
    ALTER TABLE __uploads DROP INDEX `path`;
    ALTER TABLE __uploads ADD UNIQUE INDEX `filename`(filename);
    
    ALTER TABLE __tags ADD COLUMN `type` enum('post','upload') NOT NULL DEFAULT 'post';
    
    CREATE TABLE IF NOT EXISTS `__upload_tags` (
       `upload` int(11) NOT NULL,
       `tag` int(11) NOT NULL,
       KEY `upload` (`upload`),
       KEY `tag` (`tag`)
     ) ENGINE=MyISAM DEFAULT CHARSET=utf8mb4;
    
    CREATE VIEW __view_posts AS
        SELECT  
        a.id, a.slug, a.created, a.pub_date, c.slug as author, a.title, a.content, 
        a.meta_title, a.meta_description, a.status, a.page, a.featured, a.sticky, 
        CONCAT_WS('.', CONCAT(b.path, b.filename), b.extension) as image
        FROM 
        `__posts` a
        LEFT JOIN 
        `__uploads` b
        ON 
        a.image = b.id
        INNER JOIN
        `__users` c
        ON
        a.author = c.id
    
    CREATE TABLE `__post_uploads` (
      `post` int(11) NOT NULL,
      `upload` int(11) NOT NULL,
      KEY `post` (`post`),
      KEY `upload` (`upload`)
    ) ENGINE=MyISAM DEFAULT CHARSET=utf8mb4;
    

    Notable changes

    • [enh] Media management
      • new menu item
      • overview of existing media files
      • generate tags
      • auto-generate thumbnails
      • insert an image into a post via media manager
      • save image to post relations

    :exclamation: ATTENTION :exclamation:

    As of the new media management your post image and your content images won't be shown. I'll give you later a script to fix your database.

    Source code(tar.gz)
    Source code(zip)
  • 1.1.0-beta1(Jan 16, 2017)

    :sparkles: Leafpub 1.1.0-beta1 :sparkles:

    Updating

    Replace index.php and source/ and add folder 'content/plugins' to update.

    Updating the database

    CREATE TABLE IF NOT EXISTS `__plugins` (
      `id` int(11) NOT NULL AUTO_INCREMENT,
      `name` varchar(51) NOT NULL,
      `description` varchar(100) NOT NULL,
      `author` varchar(51) NOT NULL,
      `version` varchar(8) NOT NULL,
      `requires` varchar(8) NOT NULL,
      `license` varchar(8) NOT NULL,
      `dir` varchar(51) NOT NULL,
      `img` varchar(100) NOT NULL,
      `link` varchar(100) DEFAULT NULL,
      `isAdminPlugin` tinyint(1) NOT NULL DEFAULT '0',
      `isMiddleware` tinyint(1) NOT NULL DEFAULT '0',
      `install_date` datetime NOT NULL,
      `enabled` tinyint(1) NOT NULL DEFAULT '0',
      `enable_date` datetime DEFAULT NULL,
      PRIMARY KEY (`id`),
      UNIQUE KEY `id` (`id`),
      UNIQUE KEY `dir` (`dir`),
    ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;
    

    Notable changes

    • [enh] Event System
    • [enh] Plugin System
    • [enh] Mailer Interface
    • [enh] first Plugin (SwiftMailer)
    Source code(tar.gz)
    Source code(zip)
    leafpub-1.1.0-beta1.zip(7.95 MB)
  • 1.0.0(Dec 22, 2016)

    :sparkles: Leafpub 1.0.0 :sparkles:

    Updating

    Replace index.php and source/ to update.

    Notable changes

    • [enh] Maintenance Mode via Error.php (#92)
    • [enh] Error templates via theme.json (see #92)
    • [enh] Added generator meta tag (8c7e944)
    • [enh] tag_cloud helper (d6ddf55)
    • [enh] time_ago option in date helper (c827025)
    • [enh] Read more option in excerpt helper (4849200)
    • [enh] Filter out Wordpress shortcodes (d13bcac)
    • [fix] fixed SQL Typo (c47a0f4)
    • added some new language strings

    I'm very happy to release the first stable version of Leafpub :smile:

    Source code(tar.gz)
    Source code(zip)
    leafpub-1.0.0.tar.gz(6.82 MB)
    leafpub-1.0.0.zip(7.02 MB)
  • 1.0.0-RC1(Dec 4, 2016)

    Updating

    Replace index.php and source/ to update.

    Notable changes

    • [enh] Added Maintenance Mode (#92)
    • [enh] Added classes to links (#93)
    • [enh] Added importer (#1)
    • [enh] Added resource helpers (#5)
    • [fix] Bootstrap variable changes (#95)
    • [doc] Code Comments (#81)

    :star: Thanks to all supporters, contributors and bug finders :star:

    Source code(tar.gz)
    Source code(zip)
    leafpub-1.0.0-RC1.tar.gz(6.79 MB)
  • 1.0.0-beta8(Nov 23, 2016)

    Updating

    Replace index.php and source/ to update.

    This is the first release as Leafpub.

    To work correctly with your theme(s), you have to edit your header.hbs and footer.hbs, which are usually located in the partials/ - folder.

    Open the files and change {{postleaf_head}} to {{leafpub_head}} (header.hbs) and {{postleaf_foot}} to {{leafpub_foot}} (footer.hbs)

    Notable changes

    :star2: over 600 stars, you rock :star2:

    Thanks to all supporters, contributors and bug finders

    Source code(tar.gz)
    Source code(zip)
    leafpub-1.0.0-beta8.tar.gz(6.76 MB)
  • 1.0.0-beta7(Aug 14, 2016)

    Updating

    Replace index.php and source/ to update.

    Important: If you're updating from 1.0.0-beta4 or below, update your database first using the following statement (you may have to adjust the postleaf_ prefix):

    ALTER TABLE `postleaf_posts` ADD `sticky` TINYINT NOT NULL AFTER `featured`;
    ALTER TABLE `postleaf_users` ADD `twitter` VARCHAR(191) NOT NULL AFTER `avatar`;
    

    Notable changes

    • Adds French language pack courtesy of @PanArnaud.
    • Adds Turkish language pack courtesy of @thedewil.
    • Updated Polish language pack courtesy of @micalm.
    • Fixed a bug where `{{version}} was output instead of the actual version number
    • Fixed an issue with the API where updating posts/tags/users required the resource to be a parameter instead of a URL argument.
    • Fixed a bug that caused a fatal error in PHP7.
    • Removed unused method Postleaf::generateToken(). This shouldn't cause breaking changes since plugins aren't available yet, but if you were using this method for some reason, use randomBytes() instead. The methods are identical.

    ⭐️ Over 350 stars! ⭐️

    Thanks for the love, support, and contributions! 💙💚

    Source code(tar.gz)
    Source code(zip)
  • 1.0.0-beta6(Aug 3, 2016)

    Fixes an installation bug introduced in beta5.

    Updating

    Replace index.php and source/ to update.

    Important: If you're updating from 1.0.0-beta4 or below, update your database first using the following statement (you may have to adjust the postleaf_ prefix):

    ALTER TABLE `postleaf_posts` ADD `sticky` TINYINT NOT NULL AFTER `featured`;
    ALTER TABLE `postleaf_users` ADD `twitter` VARCHAR(191) NOT NULL AFTER `avatar`;
    

    Notable changes (from 1.0.0-beta5)

    • Adds oEmbed support for 60+ providers
      • Accepts a URL in the embed panel
      • Accepts a URL pasted directly into the editor
    • Adds Twitter username for site and users
    • Adds Schema.org support
    • Adds Open Graph support
    • Adds Twitter Card support
    • Adds Portuguese (PT) translation
    • Adjust the cache button style so it doesn't look like a submit button
    • Adjust the announcement style to reflect success/info as appropriate
    • Fixed a time zone bug that caused posts to not show up
    • Fixes a bug where the meta description was empty for the blog template
    Source code(tar.gz)
    Source code(zip)
  • 1.0.0-beta5(Aug 3, 2016)

    Important: If you're updating from 1.0.0-beta4 or below, update your database first using the following statement (you may have to adjust the postleaf_ prefix):

    ALTER TABLE `postleaf_posts` ADD `sticky` TINYINT NOT NULL AFTER `featured`;
    ALTER TABLE `postleaf_users` ADD `twitter` VARCHAR(191) NOT NULL AFTER `avatar`;
    

    Updating

    Replace index.php and source/ to update.

    Notable changes

    • Adds oEmbed support for 60+ providers
      • Accepts a URL in the embed panel
      • Accepts a URL pasted directly into the editor
    • Adds Twitter username for site and users
    • Adds Schema.org support
    • Adds Open Graph support
    • Adds Twitter Card support
    • Adds Portuguese (PT) translation
    • Adjust the cache button style so it doesn't look like a submit button
    • Adjust the announcement style to reflect success/info as appropriate
    • Fixed a time zone bug that caused posts to not show up
    • Fixes a bug where the meta description was empty for the blog template
    Source code(tar.gz)
    Source code(zip)
  • 1.0.0-beta4(Aug 2, 2016)

    Important: If you're updating from 1.0.0-beta3 or below, update your database first using the following statement (you may have to adjust the postleaf_ prefix):

    ALTER TABLE `postleaf_posts` ADD `sticky` TINYINT NOT NULL AFTER `featured`;
    

    Updating

    Replace index.php and source/ to update.

    Notable changes

    • Adds Italian and Norwegian language packs
    • Adds an indicator when saving posts, users, tags, navigation, settings, etc.
    • No longer redirects to the post list when saving navigation/settings
    • Adds support for sticky posts (sticky posts remain at the top, featured posts no longer do)
    • Adds the ability to disable/clear cache from settings
    • Updates the build tools to support Node 6
    • Fixes an issue where entering a reserved usernames would cause the installer to fail
    • Fixes error reporting so logs won't be affected
    • Other minor updates and bug fixes
    Source code(tar.gz)
    Source code(zip)
  • 1.0.0-beta3(Jul 31, 2016)

  • 1.0.0-beta2(Jul 31, 2016)

  • 1.0.0-beta1(Jul 28, 2016)

Owner
Leafpub
Simple, beautiful publishing.
Leafpub
Scalable and durable data imports for publishing and consuming APIs

Porter Scalable and durable data imports for publishing and consuming APIs Porter is the all-purpose PHP data importer. She fetches data from anywhere

null 596 Jan 6, 2023
Google Cloud Eventarc Publishing for PHP

Google Cloud Eventarc Publishing for PHP Idiomatic PHP client for Google Cloud Eventarc Publishing. API documentation NOTE: This repository is part of

Google APIs 0 Apr 28, 2022
Simple WHOIS script with beautiful design.

Simple PHP Whois It is ideal in terms of design and has easy operation. / Tasarım açısından idealdir ve kullanımı kolaydır. It has a simple interface.

Raiven 1 Jul 16, 2022
It is an open-source and free project, which is faced with the drawing lovers, providing a free and simple Gallery service

It is an open-source and free project, which is faced with the drawing lovers, providing a free and simple Gallery service

WeepingDogel 5 Dec 15, 2022
Orangescrum is a simple yet powerful free and open source project management software that helps team to organize their tasks, projects and deliver more.

Free, open source Project Management software Introduction Orangescrum is the simple yet powerful free and open source project management software tha

Orangescrum 110 Dec 30, 2022
Shiki is a beautiful syntax highlighter powered by the same language engine that many code editors use.

Shiki is a beautiful syntax highlighter powered by the same language engine that many code editors use. This package allows you to use Shiki from PHP.

Spatie 229 Jan 4, 2023
🖍 Write beautiful blog articles using Markdown inside your Laravel app.

Blogged Write beautiful blog articles using Markdown inside your Laravel app. Blogged ?? Blogged is a carefully designed Laravel package provides an e

Saleem Hadad 131 Dec 16, 2022
Beautiful and understandable static analysis tool for PHP

PhpMetrics PhpMetrics provides metrics about PHP project and classes, with beautiful and readable HTML report. Documentation | Twitter | Contributing

PhpMetrics 2.3k Jan 5, 2023
Nuber is an open source container management platform it provides a front end to manage your own cloud infrastructure, using Linux Containers virtualization technology

Nuber is an open source container management platform it provides a front end to manage your own cloud infrastructure, using Linux Containers virtualization technology

null 33 Dec 14, 2022
MajorDoMo is an open-source DIY smarthome automation platform aimed to be used in multi-protocol and multi-services environment.

MajorDoMo (Major Domestic Module) is an open-source DIY smarthome automation platform aimed to be used in multi-protocol and multi-services environment. It is based on web-technologies stack and ready to be delivered to any modern device. It is very flexible in configuration with OOP paradigm used to set up automation rules and scripts. This platform can be installed on almost any personal computer running Windows or Linux OS.

Sergei Jeihala 369 Dec 30, 2022
SuiteCRM is the award-winning open-source, enterprise-ready Customer Relationship Management (CRM) software application.

SuiteCRM is the award-winning open-source, enterprise-ready Customer Relationship Management (CRM) software application.

SalesAgility 111 Dec 21, 2022
Camdram is an open source project developed by a team of volunteers for the benefit of the Cambridge student theatre community

Camdram is an open source project developed by a team of volunteers for the benefit of the Cambridge student theatre community. We use this repository to host the code that runs Camdram and to co-ordinate our work, however we welcome anyone to contribute bugs and suggest new features.

Camdram 19 Jun 26, 2022
Open-source library used in Gigadrive projects with common PHP utilities

PHP Commons This library provides PHP utilities used in Gigadrive projects, provided for the open-source community. Functions are registered globally

Gigadrive UG 3 Nov 10, 2021
🚀 An open source multiplayer space strategy game.

Badges Introduction The game story takes place in a virtual galaxy where randomly generated planets produce various raw materials which can be used by

Galaxy of Drones Online 192 Dec 25, 2022
A collection of open source projects built using Laravel.

Open Laravel A repository of open source projects built using Laravel. Getting Started Clone the project repository by running the command below if yo

Chimezie Enyinnaya 111 Dec 12, 2022
Wajex Finans'ın Open-Source versiyonunun tanıtımı

Merhaba ?? Wajex Finans projesine hoş geldiniz. Bu projenin 2 kısmı var, biri open-source kısmı bunu isteyen herkes kullanabilecek, ikinci kısmı ise d

Timur Tül 6 Dec 5, 2022
An open source Minecraft server (true-og.net)

true-og An open source Minecraft server (true-og.net) Website forked from aviel900 https://www.spigotmc.org/resources/minecraft-one-page-template.5973

Alex Noyle 0 Nov 28, 2022
Apache OpenWhisk is an open source serverless cloud platform

OpenWhisk OpenWhisk is a serverless functions platform for building cloud applications. OpenWhisk offers a rich programming model for creating serverl

The Apache Software Foundation 5.9k Jan 8, 2023
Private, self-hosted Composer/Satis repository with unlimited private and open-source packages and support for Git, Mercurial, and Subversion.

Private, self-hosted Composer/Satis repository with unlimited private and open-source packages and support for Git, Mercurial, and Subversion. HTTP API, HTTPs support, webhook handler, scheduled builds, Slack and HipChat integration.

Łukasz Lach 112 Nov 24, 2022