-
Notifications
You must be signed in to change notification settings - Fork 1
/
post.py
47 lines (33 loc) · 1.61 KB
/
post.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
#!/usr/bin/env python
from common import *
POST_DIRECTORY=os.path.join(CONTENT_DIRECTORY, "posts")
TODAYS_POST_DIRECTORY=os.path.join(POST_DIRECTORY, NOW.strftime("%Y/%m"))
def create(**kwargs):
"""Creates a brand new pelican post under content/posts.
arguments
--title: The title of the post and value used for slugifying the post
--tags: Tags to add to the post when created (ex. --tags programming,tech)
--category: Category or categories to use for the post (ex. --category Programming)
--markup: The markup language to use (default: markdown)
"""
markup = kwargs.get("markup", DEFAULT_MARKUP)
file_information = get_file_render_information("post", markup)
create_new_pelican_file(file_information, TODAYS_POST_DIRECTORY, kwargs)
def list(pattern):
"""Searches for and lists posts under content/posts.
arguments
<pattern>: The pattern to use when searching for posts, this is a case insensitive regular expression
--edit: If assert, will also open your git editor with the posts found
"""
list_pelican_files(POST_DIRECTORY, search=pattern)
def edit(pattern, **kwargs):
"""Works like list but opens the post in your git editor.
This is a shortcut method for editing a post.
arguments:
<pattern>: required pattern to use when searching for posts to edit
"""
list_pelican_files(POST_DIRECTORY, edit=True, search=pattern)
def remove(pattern, force=False):
"""Works like list but prompts user to remove the files instead.
"""
list_pelican_files(POST_DIRECTORY, search=pattern, remove=True, force=force)