pelican icon indicating copy to clipboard operation
pelican copied to clipboard

Does a UI exist for Pelican?

Open patrickjohncollins opened this issue 10 years ago • 25 comments

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?

patrickjohncollins avatar Jan 26 '15 10:01 patrickjohncollins

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

justinmayer avatar Jan 26 '15 21:01 justinmayer

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

FedericoCeratto avatar Jan 26 '15 21:01 FedericoCeratto

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

patrickjohncollins avatar Jan 26 '15 21:01 patrickjohncollins

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

FedericoCeratto avatar Jan 27 '15 00:01 FedericoCeratto

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

kernc avatar Jan 31 '15 12:01 kernc

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.

jkw avatar Feb 07 '15 13:02 jkw

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.

patrickjohncollins avatar Feb 07 '15 13:02 patrickjohncollins

@patrickjohncollins graphical instead of web based?

FedericoCeratto avatar Feb 07 '15 20:02 FedericoCeratto

@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.

patrickjohncollins avatar Feb 08 '15 10:02 patrickjohncollins

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.

jkw avatar Feb 08 '15 12:02 jkw

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?

kernc avatar Feb 08 '15 14:02 kernc

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.

NoraCodes avatar Feb 24 '15 21:02 NoraCodes

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

iksteen avatar Apr 29 '15 09:04 iksteen

@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.

FedericoCeratto avatar Apr 29 '15 11:04 FedericoCeratto

@iksteen It looks great!

DirkR avatar Apr 29 '15 11:04 DirkR

@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!

iksteen avatar Apr 29 '15 12:04 iksteen

@iksteen very neat!

jonathan-s avatar May 24 '15 23:05 jonathan-s

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

leotrs avatar Aug 01 '16 18:08 leotrs

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

justinmayer avatar Aug 01 '16 19:08 justinmayer

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

dclong avatar Mar 27 '19 18:03 dclong

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

FedericoCeratto avatar Mar 28 '19 10:03 FedericoCeratto

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.

logological avatar Nov 11 '20 11:11 logological

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?

GiovanH avatar Mar 03 '24 22:03 GiovanH

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. 😏

jkw avatar Mar 03 '24 23:03 jkw

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:

  • quickly detect the drafts posts I have lingering around in my blog folder structure
  • trigger with a shortcut/button the build & preview command pelican && pelican -rl
  • autocomplete when I want to link an older post to the current one
  • ...

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.

frica avatar Apr 13 '24 10:04 frica