---
# System prepended metadata

title: 'Cocoapods, parsing HTML - Tues 22nd September, 2020'
tags: [C+, blogs, trunk, cocoapods, cdn, programmingjournal, '2020', htmltonativeview]

---

# Cocoapods, parsing HTML - Tues 22nd September, 2020

I had a frustrating day today. The build command we used for building the iOS C+ for Detox (e2e) tests was broken. In the process of trying to debug it, I was getting blocked by a Cocoapods `trunk` CDN issue, meaning `pod update` or `pod install` were both getting the error:

```
[!] CDN: trunk URL couldn't be downloaded: https://cdn.cocoapods.org/CocoaPods-version.yml Response: 500 
<html>
<head>
<title>Fastly error: unknown domain cdn.cocoapods.org</title>
</head>
<body>
<p>Fastly error: unknown domain: cdn.cocoapods.org. Please check that this domain has been added to a service.</p>
<p>Details: cache-fra19166-FRA</p></body></html>
```
I ended up getting around this issue by using the "legacy" Cocoapods method - fetching these `trunk` assets [from a Git URL rather than the CDN](https://github.com/CocoaPods/CocoaPods/issues/9190).

The parsing the HTML chunk we get back for blogs into native views was also frustrating. I do not want to have to handle *all* elements (for example: creating an element for `img`, `a` tags, etc). This should really be the domain of another team, and it would be too time consuming at present.

Rather, I would like it to look presentable for now, and handle important functionality, such as if the blog writer "@mentions" an employee, that link should be handled by C+ and navigate to their profile on press.

Other things, such as user avatars, I just want to style, but again this can be difficult because of lack of CSS class names and nested elements.

```typescript=
import { RendererFunction } from 'react-native-render-html'

import { BlockquoteWrapper } from './Blockquote.styles'

export const Blockquote: RendererFunction = (_htmlAttribs, children, _convertedCss, passProps) => (
    <BlockquoteWrapper key={passProps.key}>{children}</BlockquoteWrapper>
)
```

This is an example of a React Native component you can create to handle a particular HTML element, in this case, a `blockquote`.

###### tags: `programmingjournal` `2020` `C+` `blogs` `htmltonativeview` `cocoapods` `trunk` `cdn`
