getpelican / pelican

Static site generator that supports Markdown and reST syntax. Powered by Python.
https://getpelican.com
GNU Affero General Public License v3.0
12.56k stars 1.81k forks source link

Does a UI exist for Pelican? #1601

Open patrickjohncollins opened 9 years ago

patrickjohncollins commented 9 years ago

I'd like to know if a graphical user interface exists for Pelican? It would be nice to be able to have a visual interface for creating a new site, setting the parameters, creating & editing articles, and more. If one does not exist, I would be interested in creating one. Comments?

justinmayer commented 9 years ago

That would be wonderful. The only related project I'm aware of is https://github.com/FedericoCeratto/shoebill by @FedericoCeratto.

FedericoCeratto commented 9 years ago

Thanks for mentioning it - is there any feature that you think Shoebill is lacking?

patrickjohncollins commented 9 years ago

Is there a demo of Shoebill ? I'm not sure what it does.

FedericoCeratto commented 9 years ago

There is no demo, I've added few lines on the readme file and a screenshot.

kernc commented 9 years ago

Provided pelican-md-yaml plugin can be enabled, one can use Prose to edit articles.

jkw commented 9 years ago

To do the core design you need to learn html/css/javascript and create your own template. That code you can write in any editor that supports those languages. For articles I don't know if you use .rst or .md, but there is a few nice Markdown editors out there. I use Remarkable in ArchLinux.

patrickjohncollins commented 9 years ago

Certainly, it is possible to use Pelican in combination with a text editor, personally I use Sublime Text on Mac OS X, and it works fine, but it is a rather manual process. A graphical user interface would simplify greatly the tasks of creating a new site, setting up the parameters, selecting a pre-existing template, perhaps also providing the possibility to preview the site locally in a browser, and also publish the result to a server with the click of a button. Such an interface would open the door to many users who are not as comfortable as we are at using the command line.

FedericoCeratto commented 9 years ago

@patrickjohncollins graphical instead of web based?

patrickjohncollins commented 9 years ago

@FedericoCeratto I think it would make most sense for the UI to be developed in HTML/CSS/JS so that it can be run on multiple platforms, either locally on the desktop or hosted on a server.

jkw commented 9 years ago

Yeah, that's true. It makes it more platform independant.

On 2015-02-08 11:33, Patrick John Collins wrote:

@FedericoCeratto https://github.com/FedericoCeratto I think it would make most sense for the UI to be developed in HTML/CSS/JS so that it can be run on multiple platforms, either locally on the desktop or hosted on a server.

— Reply to this email directly or view it on GitHub https://github.com/getpelican/pelican/issues/1601#issuecomment-73405368.

kernc commented 9 years ago

it would make most sense for the UI to be developed in HTML/CSS/JS so that it can be run on multiple platforms, either locally on the desktop or hosted on a server.

Like Prose?

NoraCodes commented 9 years ago

I think a distinction should be made between a graphical text editor with Pelican support, and a Pelican management frontend. For example, a Prose-like editor could be deployed on a per-site basis, while a GTK- or Qt-based multisite management interface could be used by an administrator to back up, move, and deploy sites rapidly. Both would be extremely useful, however.

iksteen commented 9 years ago

I've been busy creating a (web based) IDE for Pelican based sites. It's very much a work in progress, but I've written a small post about it: http://blurringexistence.net/introducing-pelicide.html

There's also an interactive demo: http://blurringexistence.net/pelicide-demo/

Screenshot

FedericoCeratto commented 9 years ago

@iksteen nice UI - you might want to reuse code from https://github.com/FedericoCeratto/shoebill ... or maybe I might integrate your UI in it in future.

DirkR commented 9 years ago

@iksteen It looks great!

iksteen commented 9 years ago

@FedericoCeratto Thanks! While that demo isn't connected to a back-end, the back-end does exist. It's basically a Twisted site that connects to a runner script which can perform various pelican tasks by importing the pelican modules and pelicanconf.py directly (it replaces the main pelican executable).

The code (both front-end and back-end) is available in a GitHub repository.

@DirkR thanks!

jonathan-s commented 9 years ago

@iksteen very neat!

leotrs commented 8 years ago

If there are no plans to implement another pelican GUI, this should probably be closed.

justinmayer commented 8 years ago

For folks who want an administrative interface for Pelican, I suggest you encourage @tarekziade to expand upon his work on Henet.

dclong commented 5 years ago

For command-line users, I have a cool little blogging util written in Python which is based on Pelican. It supports adding, deleting, editing, searching (leveraging SQLite3 FTS5) blog posts, etc. Even though it's command-line tool, you can use your favorite GUI editor (e.g., I use VS Code) to edit post. It's coupled with my personal blog but it might give people inspirations.

I have been writing blog in this way for many years. And here is my personal blog.

./blog.py -h

usage: blog.py [-h]
               {update_tags,utag,utag1,utag2,utag3,utag4,utag5,utag6,utag7,utag8,utag9,utag10,update_category,ucat,ucat1,ucat2,ucat3,ucat4,ucat5,ucat6,ucat7,ucat8,ucat9,ucat10,tags,t,cats,c,update,u,reload,r,list,l,search,s,add,a,edit,e,e1,e2,e3,e4,e5,e6,e7,e8,e9,e10,move,m,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,publish,p,delete,d,d1,d2,d3,d4,d5,d6,d7,d8,d9,d10,query,q,auto_git_push,auto,agp,ap,space_vim,isv,sv,svim,clear,status,st,sts,diff,df,dif}
               ...

Write blog in command line.

positional arguments:
  {update_tags,utag,utag1,utag2,utag3,utag4,utag5,utag6,utag7,utag8,utag9,utag10,update_category,ucat,ucat1,ucat2,ucat3,ucat4,ucat5,ucat6,ucat7,ucat8,ucat9,ucat10,tags,t,cats,c,update,u,reload,r,list,l,search,s,add,a,edit,e,e1,e2,e3,e4,e5,e6,e7,e8,e9,e10,move,m,m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,publish,p,delete,d,d1,d2,d3,d4,d5,d6,d7,d8,d9,d10,query,q,auto_git_push,auto,agp,ap,space_vim,isv,sv,svim,clear,status,st,sts,diff,df,dif}
                        Sub commands.
    update_tags (utag, utag1, utag2, utag3, utag4, utag5, utag6, utag7, utag8, utag9, utag10)
                        update tags of posts.
    update_category (ucat, ucat1, ucat2, ucat3, ucat4, ucat5, ucat6, ucat7, ucat8, ucat9, ucat10)
                        update category of posts.
    tags (t)            List all tags and their frequencies.
    cats (c)            List all categories and their frequencies.
    update (u)          Update information of changed posts.
    reload (r)          Reload information of posts.
    list (l)            List last search results.
    search (s)          Search for posts. Tokens separated by spaces ( ) or
                        plus signs (+) in the search phrase are matched in
                        order with tokens in the text. ORDERLESS match of
                        tokens can be achieved by separating them with the AND
                        keyword. You can also limit match into specific
                        columns. For more information, please refer to
                        https://sqlite.org/fts5.html
    add (a)             Add a new post.
    edit (e, e1, e2, e3, e4, e5, e6, e7, e8, e9, e10)
                        edit a post.
    move (m, m1, m2, m3, m4, m5, m6, m7, m8, m9, m10)
                        Move a post.
    publish (p)         Publish the blog.
    delete (d, d1, d2, d3, d4, d5, d6, d7, d8, d9, d10)
                        Delete a post/page.
    query (q)           Run a SQL query.
    auto_git_push (auto, agp, ap)
                        Run a SQL query.
    space_vim (isv, sv, svim)
                        Install SpaceVim.
    clear (c)           Remove the underlying SQLite3 database.
    status (st, sts)    The git status command.
    diff (df, dif)      The git diff command.

optional arguments:
  -h, --help            show this help message and exit
FedericoCeratto commented 5 years ago

@patrickjohncollins my UI https://github.com/FedericoCeratto/shoebill is indeed web-based. PRs are welcome.

logological commented 3 years ago

I haven't used it myself, but apparently Netlify CMS works with Pelican, and even provides a starter Pelican template. If I understand correctly, Netlify CMS provides a web interface for editing statically generated sites. It might not allow one to set up and modify the Pelican configuration, but I think it will allow one to add, change, and remove website content.

GiovanH commented 8 months ago

I'm not sure what the purpose of this issue is. Is it meant to track a new feature to create a UI as part of the main project, or a new subproject, or is it just an answered question?

jkw commented 8 months ago

As user states. GUI would be nice. As in app for Desktop. Linux/macOS/Windows that is. It's 2024 so anything else than platform independent is just stupid. 😏

frica commented 6 months ago

Hello,

This should be moved to a discussion, agree with @GiovanH.

It's an interesting topic though. In a time where the code editors are so versatile (I think of VS code but there are many others), can preview markdown, have a terminal view, what would be the use of that tool?

I can think a few features that would be interesting for me:

I guess the feature list depends on your usage.

Would be a nice side project, I would contribute if it'd use a modern python based UI framework like NiceGUI.