Spaces:
Runtime error
Runtime error
feat: merge similar guidelines WIP
Browse files
app.py
CHANGED
@@ -6,7 +6,6 @@ from nltk.tokenize import word_tokenize
|
|
6 |
import itertools
|
7 |
|
8 |
nltk.download("punkt")
|
9 |
-
|
10 |
spell = SpellChecker()
|
11 |
|
12 |
st.title("Medium Headline")
|
@@ -23,8 +22,11 @@ headline = st.text_input(
|
|
23 |
"",
|
24 |
)
|
25 |
|
|
|
26 |
# TODO Use columns or expander to organise that
|
27 |
# TODO try to write a headline with that tool
|
|
|
|
|
28 |
# TODO maybe using markdown's H1-6 will result in better spacing
|
29 |
# TODO split to the most important quidelined (answear question, few traits, auto editing features) and expandable/on button click advanced guidelines
|
30 |
|
@@ -34,30 +36,27 @@ st.checkbox("What the story is about?")
|
|
34 |
st.checkbox("Why the story matters?")
|
35 |
|
36 |
st.subheader("Make sure the headline is:")
|
37 |
-
st.checkbox("clear")
|
38 |
-
st.checkbox("direct")
|
39 |
-
st.checkbox("assertive")
|
40 |
st.checkbox("focused on what is most interesting")
|
41 |
-
|
42 |
-
st.subheader("Consider below actions:")
|
43 |
st.checkbox(
|
44 |
-
"
|
45 |
-
"
|
46 |
)
|
|
|
|
|
47 |
|
48 |
st.subheader("Follow below principles:")
|
49 |
-
st.checkbox(
|
50 |
"Be direct.",
|
51 |
help="Your story is among many a reader is browsing. Be straightforward in what it is about.",
|
52 |
)
|
|
|
|
|
|
|
53 |
st.checkbox(
|
54 |
"Use conventional language.",
|
55 |
help="Avoid jargon, and think of what makes sense in casual conversation. Know the language that your audience is familiar with.",
|
56 |
)
|
57 |
-
st.checkbox(
|
58 |
-
"Focus on what’s interesting.",
|
59 |
-
help="Be straightforward about why a reader should read the article. Don’t bury or hide this.",
|
60 |
-
)
|
61 |
st.checkbox(
|
62 |
"Deliver on your promises.",
|
63 |
help="You’re building a relationship with your readers. The headline sets the expectations, and the story must deliver on that.",
|
@@ -68,11 +67,11 @@ st.checkbox(
|
|
68 |
)
|
69 |
|
70 |
st.subheader("Guiding questions to consider:")
|
71 |
-
st.checkbox("Could the headline be clearer?")
|
72 |
st.checkbox("Is the headline specific enough?")
|
73 |
st.checkbox("Does the tone reflect the voice or point of view of the article?")
|
74 |
st.checkbox("How might the headline convey what is unique about the story?")
|
75 |
-
st.checkbox("Is the headline
|
76 |
|
77 |
st.subheader("Avoid:")
|
78 |
st.checkbox("all caps") # implement warning?
|
@@ -104,6 +103,9 @@ st.checkbox(
|
|
104 |
"biases",
|
105 |
help="“Be aware of who is in the room writing the headline and what the limits of their perspective might be,” shares Rawls. Often biases will show up in the adjectives you use, so double-check the ones you use, and consider what they may unintentionally express.",
|
106 |
)
|
|
|
|
|
|
|
107 |
|
108 |
"In the short term this may help drive traffic, but in the long term it undermines your integrity as a writer."
|
109 |
|
@@ -185,7 +187,41 @@ st.markdown(
|
|
185 |
"""
|
186 |
)
|
187 |
|
188 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
189 |
st.markdown(
|
190 |
"""[”How to Write a Headline” by Medium Creators](https://medium.com/creators-hub/how-to-write-a-headline-a72ab3449150)"""
|
191 |
)
|
@@ -195,6 +231,6 @@ st.markdown(
|
|
195 |
st.markdown(
|
196 |
"""[”23 Examples of Effective Headlines” by Nadia Rawls](https://medium.com/creators-hub/23-examples-of-effective-headlines-2e7f753476f1)"""
|
197 |
)
|
198 |
-
|
199 |
-
|
200 |
-
|
|
|
6 |
import itertools
|
7 |
|
8 |
nltk.download("punkt")
|
|
|
9 |
spell = SpellChecker()
|
10 |
|
11 |
st.title("Medium Headline")
|
|
|
22 |
"",
|
23 |
)
|
24 |
|
25 |
+
# TODO keep merging guidelines
|
26 |
# TODO Use columns or expander to organise that
|
27 |
# TODO try to write a headline with that tool
|
28 |
+
# TODO ask in Facebook/reddit group/privs Medium Wroters/blohgers for feedback!
|
29 |
+
# TODO bloom few shot, BERT for surprise metric, train to paraphrase to specific types?
|
30 |
# TODO maybe using markdown's H1-6 will result in better spacing
|
31 |
# TODO split to the most important quidelined (answear question, few traits, auto editing features) and expandable/on button click advanced guidelines
|
32 |
|
|
|
36 |
st.checkbox("Why the story matters?")
|
37 |
|
38 |
st.subheader("Make sure the headline is:")
|
|
|
|
|
|
|
39 |
st.checkbox("focused on what is most interesting")
|
40 |
+
Is it interesting? Make it interesting
|
|
|
41 |
st.checkbox(
|
42 |
+
"Focus on what’s interesting.",
|
43 |
+
help="Be straightforward about why a reader should read the article. Don’t bury or hide this.",
|
44 |
)
|
45 |
+
Focus on what’s interesting. Your headline doesn’t need to address everything that’s in your story.
|
46 |
+
It just needs to focus on the most interesting part of your story in a way that represents the overall truth of your story.
|
47 |
|
48 |
st.subheader("Follow below principles:")
|
49 |
+
st.checkbox( # (trait or individual style?)
|
50 |
"Be direct.",
|
51 |
help="Your story is among many a reader is browsing. Be straightforward in what it is about.",
|
52 |
)
|
53 |
+
"How To Become Popular Without Being Charming, Funny, or Outgoing"
|
54 |
+
"How Google Earth Mapped 98% of the World"
|
55 |
+
|
56 |
st.checkbox(
|
57 |
"Use conventional language.",
|
58 |
help="Avoid jargon, and think of what makes sense in casual conversation. Know the language that your audience is familiar with.",
|
59 |
)
|
|
|
|
|
|
|
|
|
60 |
st.checkbox(
|
61 |
"Deliver on your promises.",
|
62 |
help="You’re building a relationship with your readers. The headline sets the expectations, and the story must deliver on that.",
|
|
|
67 |
)
|
68 |
|
69 |
st.subheader("Guiding questions to consider:")
|
70 |
+
st.checkbox("Make it clear. Could the headline be clearer?") # there is such type (is it rule along others or individual style)
|
71 |
st.checkbox("Is the headline specific enough?")
|
72 |
st.checkbox("Does the tone reflect the voice or point of view of the article?")
|
73 |
st.checkbox("How might the headline convey what is unique about the story?")
|
74 |
+
st.checkbox("Is it true? Make it true. Don't overpromise. Is the headline honest about what the story offers the reader?")
|
75 |
|
76 |
st.subheader("Avoid:")
|
77 |
st.checkbox("all caps") # implement warning?
|
|
|
103 |
"biases",
|
104 |
help="“Be aware of who is in the room writing the headline and what the limits of their perspective might be,” shares Rawls. Often biases will show up in the adjectives you use, so double-check the ones you use, and consider what they may unintentionally express.",
|
105 |
)
|
106 |
+
"Easy on the gerunds (-ing words)." # TODO implement check
|
107 |
+
"Don’t write a headline like you would a book title (avoid one-word or two-word headlines)." # TODO implement check
|
108 |
+
# Don’t ask a question unless you know the answer.
|
109 |
|
110 |
"In the short term this may help drive traffic, but in the long term it undermines your integrity as a writer."
|
111 |
|
|
|
187 |
"""
|
188 |
)
|
189 |
|
190 |
+
Personal headlines
|
191 |
+
It's 2020, And I Had to Leave My Home Because of the KKK
|
192 |
+
|
193 |
+
Validate readers’ feelings
|
194 |
+
In Defense of the Super Low-Key Workout
|
195 |
+
|
196 |
+
Clear promises
|
197 |
+
How to Talk To an Employee Obsessed With Promotion
|
198 |
+
An Embarassing Story Is a Secret Weapon to Work
|
199 |
+
|
200 |
+
Effective use of “I”
|
201 |
+
How I Accidentally Wound Up Running an Outlaw Bigger Gang in Ohio
|
202 |
+
|
203 |
+
Effective uses of "you"
|
204 |
+
You Might Be Using Your Hearing and You Don't Even Know It
|
205 |
+
How to Pitch a 4-Day Workweek to Your Boss
|
206 |
+
|
207 |
+
General guidelines
|
208 |
+
|
209 |
+
Don’t make the reader work. Or even think, really. Headlines should deliver all the information a reader needs for deciding whether they should dive into your story.
|
210 |
+
Use the right language for your audience. If you’re writing for a general audience, no jargon! Pick three friends: Would each of them know what your story is about based on the headline? If so, you have a great headline.
|
211 |
+
Answer: So what? Why now? Why does your story matter? Why does it matter to a reader right now?
|
212 |
+
|
213 |
+
Is it concise? Make it concise Omit unnecessary words
|
214 |
+
Is it assertive? Make it assertive (trait or individual style?)
|
215 |
+
Assertive headlines
|
216 |
+
Your Fitbit Might Be Able To Predict the Flu?
|
217 |
+
Would my really smart friend click on it?
|
218 |
+
|
219 |
+
st.subheader("Consider below actions:") # OK
|
220 |
+
st.checkbox("Share the headline with someone you trust and see what they think the story is about.")
|
221 |
+
st.checkbox("Give them a few options and tell them to make a choice.")
|
222 |
+
st.checkbox("When published, look at what people are saying when they share the article.")
|
223 |
+
|
224 |
+
st.header("Sources:") # OK
|
225 |
st.markdown(
|
226 |
"""[”How to Write a Headline” by Medium Creators](https://medium.com/creators-hub/how-to-write-a-headline-a72ab3449150)"""
|
227 |
)
|
|
|
231 |
st.markdown(
|
232 |
"""[”23 Examples of Effective Headlines” by Nadia Rawls](https://medium.com/creators-hub/23-examples-of-effective-headlines-2e7f753476f1)"""
|
233 |
)
|
234 |
+
st.markdown(
|
235 |
+
"""[”How to Write a Compelling Headline That Isn’t Clickbait” by Medium Creators](https://medium.com/creators-hub/how-to-write-a-compelling-headline-that-isnt-clickbait-7cb816cec438)"""
|
236 |
+
)
|