GithubHelp home page GithubHelp logo

docs's Introduction

Typemill: A Flat File CMS for Publishers

Typemill is a lightweight, flat-file CMS designed for simple, fast, and flexible website and eBook creation using Markdown.

Typemill Screenshot

With a focus on content and text, it perfectly fits use cases such as documentations, manuals, and other text-heavy websites.

Key Features (Selection)

  • No database required (flat-file approach).
  • High performance, with a modern tech stack including Vue.js, Tailwind CSS, and Slim PHP.
  • Lightweight, with a gzip size of about 2MB.
  • Markdown editing with a visual block editor or a raw markdown editor.
  • Easy extendible with plugins, themes, and page-tabs.
  • Generation of ebooks (pdf, epub) with an ebook-plugin.
  • Flexible form-generation.
  • API-architecture and headless mode.

Resources

Requirements

To run Typemill, you need the following:

  • Web server (Apache, not tested on other servers).
  • PHP 8.0 or higher.
  • Standard PHP libraries like mod_rewrite, gd-image, mbstring, fileinfo, session, iconv, and more.

Installation

Check installations with different setups on typemill.net

Using ZIP File and FTP

  1. Download and unpack the latest version of Typemill as a zip file from Typemill Website.
  2. Upload all files to your server.
  3. Visit your new website at www.your-typemill-website.com/tm/setup and create an admin user.
  4. Log in and start publishing.

Using GitHub and Composer

Clone this repository:

git clone https://github.com/typemill/typemill.git

Then update composer to load the libraries:

composer update

Using Docker

See description on typemill.net

Folder Permissions

Ensure that the following folders are writable:

  • /cache
  • /content
  • /data
  • /media
  • /settings

Tech Stack

  • PHP (Slim Framework Version 4)
  • JavaScript (Vue.js Version 3)
  • CSS (Tailwind)

Security Issues

If you discover a potential security issue related to Typemill, please report it via email to [email protected], and we'll address it promptly.

License

Typemill is an open-source project published under the MIT License. Plugins, themes, and services are published under MIT and commercial licenses.

docs's People

Contributors

ezequielbruni avatar streaps avatar trendschau avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

docs's Issues

The docs need more variety and specificity in function examples

The problem I've run into when trying to develop themes for Typemill is that I am very much not a programmer. Showing me how a Twig function or loop works with a single example isn't really enough for those of us who have a good handle on HTML/CSS and the like, but have trouble understanding anything more complicated than an if/else statement.

Take this example from the docs:

{% set pagelist = getPageList(navigation, settings.themes.emergency.listpages, base_url) %}
  <ol class="postlist" reversed>
    {% for element in pagelist.folderContent %}
      {% set post = getPageMeta(settings, element) %}
      {% set date = element.order[0:4] ~ '-' ~ element.order[4:2] ~ '-' ~ element.order[6:2] %}
      <li>
         <a href="{{ element.urlAbs }}">{{ post.meta.title }}</a> <time datetime="{{date}}">({{ date | date("d.m.Y") }})</time>
      </li>

    {% endfor %}
  </ol>

That tells me how to make it so I can set a folder in getPageList based on theme settings, and use it to display a folder's contents. But how would I set the folder manually, in the code itself? Is there some sort of page ID that needs to go where settings.themes.emergency.listpages is? How would I use this code to loop through all of my top-level folders to display their contents in a directory-style page?

Failing that, how would I add more details about each page or item to the navigation function, such as the meta description?

Simply put, we need more examples in the documentation, and I'm not smart enough to write them myself.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.