diff --git a/lib/parse/__tests__/news.test.ts b/lib/parse/__tests__/news.test.ts
index 234f029e..df7d7641 100644
--- a/lib/parse/__tests__/news.test.ts
+++ b/lib/parse/__tests__/news.test.ts
@@ -117,7 +117,7 @@ describe('newsItem', () => {
BannerImageGuid: '7a8142d9d9d54cf090e8457e4c629227',
BannerImageListId: 'a88c22e8-7094-4a71-b4fd-8792c62a7b4a',
Body:
- '
Kära vårdnadshavare!
I helgen är det avlusningsdagar! Ta tillfället i akt att luskamma ditt barn
Du finner all info du behöver på 1177 hemsida
Trevlig helg!
',
+ 'Kära vårdnadshavare!
I helgen är det avlusningsdagar! Ta tillfället i akt att luskamma ditt barn
Du finner all info du behöver på 1177 hemsida
Trevlig helg!
',
BodyNoHtml: null,
AuthorDisplayName: 'Tieto Evry',
altText: null,
@@ -170,5 +170,73 @@ describe('newsItem', () => {
const expected =
'[1177 hemsida](https://www.1177.se/sjukdomar--besvar/hud-har-och-naglar/harbotten-och-harsackar/huvudloss/)'
expect(item.body).toContain(expected)
+ expect(item.body).toContain(' **tillfället** ')
})
})
+
+
+describe('newsItem', () => {
+ beforeEach(() => {
+ response = {
+ Success: true,
+ Error: null,
+ Data: {
+ CurrentNewsItem: {
+ NewsId: '123',
+ SiteId:
+ 'elevstockholm.sharepoint.com,d112c398-71d4-468f-9a59-84d806751b08,3addab10-546a-4551-8076-72c9cd67f961',
+ NewsListId: '95df7d70-fbf0-470d-9926-e4e633f77f27',
+ NewsItemId:
+ 'elevstockholm.sharepoint.com,d112c398-71d4-468f-9a59-84d806751b08,3addab10-546a-4551-8076-72c9cd67f961_40',
+ Header: 'Avlusningsdagarna 5-7 februari 2021',
+ PublicationDate: '/Date(1612445471000)/',
+ PubDateSE: '4 februari 2021 14:31',
+ ModifiedDate: '/Date(1612445852000)/',
+ ModDateSE: '14 februari 2021 14:37',
+ Source: 'Södra Ängby skola',
+ Preamble: 'Kära vårdnadshavare!I helgen är det avlusningsdagar!',
+ BannerImageUrl: '123123.jpeg',
+ BannerImageGuid: '7a8142d9d9d54cf090e8457e4c629227',
+ BannerImageListId: 'a88c22e8-7094-4a71-b4fd-8792c62a7b4a',
+ Body:
+ 'italic bold emphasis
strong',
+ BodyNoHtml: null,
+ AuthorDisplayName: 'Tieto Evry',
+ altText: null,
+ OriginalSourceUrl: null,
+ },
+ CurrentChild: null,
+ ViewGlobalTranslations: {},
+ ViewLocalTranslations: {},
+ Children: null,
+ Status: null,
+ GlobalTranslationIds: [
+ 'InformationalHeader',
+ 'ContactUsMessageLabel',
+ 'Send',
+ 'RequiredFieldMessageInfo',
+ 'Sex',
+ 'Male',
+ 'Female',
+ 'SSN',
+ 'FirstName',
+ 'LastName',
+ 'Email',
+ 'Zip',
+ 'Address',
+ 'ValidationRequiredFieldMessage',
+ 'ValidationErrorMessage',
+ ],
+ LocalTranslationIds: ['IndexPageHeading1'],
+ },
+ }
+ })
+ it(' emphasizes correctly', () => {
+ const item = newsItemDetails(response)
+
+ expect(item.body).toContain('*italic*')
+ expect(item.body).toContain('**bold**')
+ expect(item.body).toContain('*emphasis*')
+ expect(item.body).toContain('**strong**')
+ })
+})
\ No newline at end of file
diff --git a/lib/parseHtml.test.ts b/lib/parseHtml.test.ts
index 051319e3..7a4681aa 100644
--- a/lib/parseHtml.test.ts
+++ b/lib/parseHtml.test.ts
@@ -87,7 +87,7 @@ Nu är det dags för vattenballongkrig 12/2-21 till om med tisdag 16/2-21.
Alla knep är tillåtna.
-Det blir kul.
+**Det blir kul.**
Kolla in Reddit: [https://reddit.com/water-balloons/where-to-buy/](https://reddit.com/water-balloons/where-to-buy/)
@@ -99,29 +99,29 @@ Kolla in Reddit: [https://reddit.com/water-balloons/where-to-buy/](https://reddi
[https://wnews.ycombinator.com/](https://wnews.ycombinator.com/)
-Vi fortsätter också att:
+Vi fortsätter också att:
-- hålla avstånd.
+- hålla avstånd.
- ha flera digitala möten.
-- tvätta händerna.
-- undvika kollektivtrafik om det är möjligt.
+- tvätta händerna.
+- undvika kollektivtrafik om det är möjligt.
- stanna hemma även när man bara känner sig lite sjuk.
- vädra ofta
Ta hand om er!
-Ha kul tillsammans, på avstånd.
+**Ha kul tillsammans, på avstånd.**
-Stort tack för ert samarbete! ${nbsp}
+Stort tack för ert samarbete!
Vänligen,
-rektorfnamn rektorenamn, rektor${nbsp}
+rektorfnamn rektorenamn, rektor
-Vid frågor, kontakta oss gärna:
+**Vid frågor, kontakta oss gärna:**
-Skolledning
+**Skolledning**
rektorfnamn rektorenamn rektor: [rektorfnamn.rektorenamn@edu.stockholm.se](mailto:rektorfnamn.rektorenamn@edu.stockholm.se)
@@ -129,7 +129,7 @@ brektorfnamn brektorenamn, bitr. rektor: [brektorfnamn.u.brektorenamn@edu.stockh
b2rektorfnamn b2rektorenamn bitr. rektor: [b2rektorfnamn.b2rektorenamn@edu.stockholm.se](mailto:b2rektorfnamn.b2rektorenamn@edu.stockholm.se)
-Skolhälsan
+**Skolhälsan**
b2rektorfnamn skolskstenamn skolsköterska: [b2rektorfnamn.skolskstenamn@edu.stockholm.se](mailto:b2rektorfnamn.skolskstenamn@edu.stockholm.se)
diff --git a/lib/parseHtml.ts b/lib/parseHtml.ts
index 2df064a1..1303e9e0 100644
--- a/lib/parseHtml.ts
+++ b/lib/parseHtml.ts
@@ -40,6 +40,15 @@ const deepClean = (node: HTMLElement): HTMLElement => {
return cleaned
}
+const rearrangeWhitespace = (html: string = ''): string => {
+ let content = html.split(' ').join(' ')
+ trimNodes.forEach((trimNode) => {
+ content = content.split(`<${trimNode}> `).join(` <${trimNode}>`)
+ content = content.split(` ${trimNode}>`).join(`${trimNode}> `)
+ })
+ return content
+}
+
export const clean = (html: string = ''): string =>
deepClean(parse(decode(html))).outerHTML
@@ -52,10 +61,14 @@ interface Node {
const converter = 'MarkdownExtra'
const overides = {
a: (node: Node) => `[${node.md}](${node.attrs.href})`,
+ img: (node: Node) => `![${node.attrs.title || ''}](${node.attrs.src})`,
+ i: (node: Node) => `*${node.md}*`,
+ b: (node: Node) => `**${node.md}**`,
}
export const toMarkdown = (html: string): string => {
- const trimmed = clean(html)
+ const rearranged = rearrangeWhitespace(html)
+ const trimmed = clean(rearranged)
const markdown = h2m(trimmed, { overides, converter })
const decoded = htmlDecode(markdown)
return decoded