@codearcade/expo-markdown-native 2.0.1 → 2.0.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/module/markdown.js +4 -3
- package/lib/module/markdown.js.map +1 -1
- package/lib/typescript/src/markdown.d.ts.map +1 -1
- package/package.json +1 -13
- package/src/markdown.tsx +5 -3
- package/ExpoMarkdownNativeMarkdown.podspec +0 -20
- package/android/build.gradle +0 -67
- package/android/src/main/AndroidManifest.xml +0 -2
- package/android/src/main/java/com/codearcade/expomarkdownnativemarkdown/ExpoMarkdownNativeMarkdownPackage.kt +0 -17
- package/android/src/main/java/com/codearcade/expomarkdownnativemarkdown/ExpoMarkdownNativeMarkdownView.kt +0 -15
- package/android/src/main/java/com/codearcade/expomarkdownnativemarkdown/ExpoMarkdownNativeMarkdownViewManager.kt +0 -41
- package/ios/ExpoMarkdownNativeMarkdownView.h +0 -14
- package/ios/ExpoMarkdownNativeMarkdownView.mm +0 -48
package/lib/module/markdown.js
CHANGED
|
@@ -20,14 +20,15 @@ export const Markdown = ({
|
|
|
20
20
|
|
|
21
21
|
// 2. Define Custom Rules
|
|
22
22
|
const rules = useMemo(() => ({
|
|
23
|
-
code_inline: (node, _children, _parent,
|
|
23
|
+
code_inline: (node, _children, _parent, stylesheet) => {
|
|
24
24
|
return /*#__PURE__*/_jsx(Text, {
|
|
25
|
-
style: [
|
|
26
|
-
overflow: 'hidden',
|
|
25
|
+
style: [{
|
|
27
26
|
fontFamily: Platform.select({
|
|
28
27
|
ios: 'Menlo',
|
|
29
28
|
default: 'monospace'
|
|
30
29
|
})
|
|
30
|
+
}, stylesheet.code_inline, {
|
|
31
|
+
overflow: 'hidden'
|
|
31
32
|
}],
|
|
32
33
|
children: node.content
|
|
33
34
|
}, node.key);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","useMemo","Platform","Text","MarkdownDisplay","github","monokai","CodeBlock","jsx","_jsx","Markdown","content","theme","codeTheme","styles","codeStyle","onLinkPress","onCopy","activeCodeTheme","rules","code_inline","node","_children","_parent","
|
|
1
|
+
{"version":3,"names":["React","useMemo","Platform","Text","MarkdownDisplay","github","monokai","CodeBlock","jsx","_jsx","Markdown","content","theme","codeTheme","styles","codeStyle","onLinkPress","onCopy","activeCodeTheme","rules","code_inline","node","_children","_parent","stylesheet","style","fontFamily","select","ios","default","overflow","children","key","fence","_style","fenceNode","language","sourceInfo","syntaxTheme","appTheme","code_block","mergedStyles","baseStyles","markdownDark","markdownLight","result","userStyle","Array","isArray","body","color","fontSize","lineHeight","heading1","fontWeight","marginVertical","backgroundColor","borderRadius","blockquote","borderLeftColor"],"sourceRoot":"..\\..\\src","sources":["markdown.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"markdown.d.ts","sourceRoot":"","sources":["../../../src/markdown.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAkB,MAAM,OAAO,CAAC;AAMvC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAE7C,eAAO,MAAM,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,aAAa,
|
|
1
|
+
{"version":3,"file":"markdown.d.ts","sourceRoot":"","sources":["../../../src/markdown.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAkB,MAAM,OAAO,CAAC;AAMvC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAE7C,eAAO,MAAM,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,aAAa,CA6G5C,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@codearcade/expo-markdown-native",
|
|
3
|
-
"version": "2.0.
|
|
3
|
+
"version": "2.0.4",
|
|
4
4
|
"description": "Native Markdown rendering for Expo & React Native with built-in syntax highlighting.",
|
|
5
5
|
"main": "./lib/module/index.js",
|
|
6
|
-
"private": false,
|
|
7
6
|
"types": "./lib/typescript/src/index.d.ts",
|
|
8
7
|
"exports": {
|
|
9
8
|
".": {
|
|
@@ -16,17 +15,6 @@
|
|
|
16
15
|
"files": [
|
|
17
16
|
"src",
|
|
18
17
|
"lib",
|
|
19
|
-
"android",
|
|
20
|
-
"ios",
|
|
21
|
-
"cpp",
|
|
22
|
-
"*.podspec",
|
|
23
|
-
"react-native.config.js",
|
|
24
|
-
"!ios/build",
|
|
25
|
-
"!android/build",
|
|
26
|
-
"!android/gradle",
|
|
27
|
-
"!android/gradlew",
|
|
28
|
-
"!android/gradlew.bat",
|
|
29
|
-
"!android/local.properties",
|
|
30
18
|
"!**/__tests__",
|
|
31
19
|
"!**/__fixtures__",
|
|
32
20
|
"!**/__mocks__",
|
package/src/markdown.tsx
CHANGED
|
@@ -25,20 +25,22 @@ export const Markdown: React.FC<MarkdownProps> = ({
|
|
|
25
25
|
node: ASTNode,
|
|
26
26
|
_children: any,
|
|
27
27
|
_parent: any,
|
|
28
|
-
|
|
28
|
+
stylesheet: any
|
|
29
29
|
) => {
|
|
30
30
|
return (
|
|
31
31
|
<Text
|
|
32
32
|
key={node.key}
|
|
33
33
|
style={[
|
|
34
|
-
style,
|
|
35
34
|
{
|
|
36
|
-
overflow: 'hidden',
|
|
37
35
|
fontFamily: Platform.select({
|
|
38
36
|
ios: 'Menlo',
|
|
39
37
|
default: 'monospace',
|
|
40
38
|
}),
|
|
41
39
|
},
|
|
40
|
+
stylesheet.code_inline,
|
|
41
|
+
{
|
|
42
|
+
overflow: 'hidden',
|
|
43
|
+
},
|
|
42
44
|
]}
|
|
43
45
|
>
|
|
44
46
|
{node.content}
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
require "json"
|
|
2
|
-
|
|
3
|
-
package = JSON.parse(File.read(File.join(__dir__, "package.json")))
|
|
4
|
-
|
|
5
|
-
Pod::Spec.new do |s|
|
|
6
|
-
s.name = "ExpoMarkdownNativeMarkdown"
|
|
7
|
-
s.version = package["version"]
|
|
8
|
-
s.summary = package["description"]
|
|
9
|
-
s.homepage = package["homepage"]
|
|
10
|
-
s.license = package["license"]
|
|
11
|
-
s.authors = package["author"]
|
|
12
|
-
|
|
13
|
-
s.platforms = { :ios => min_ios_version_supported }
|
|
14
|
-
s.source = { :git => "https://github.com/codearcade-io/expo-markdown-native.git", :tag => "#{s.version}" }
|
|
15
|
-
|
|
16
|
-
s.source_files = "ios/**/*.{h,m,mm,swift,cpp}"
|
|
17
|
-
s.private_header_files = "ios/**/*.h"
|
|
18
|
-
|
|
19
|
-
install_modules_dependencies(s)
|
|
20
|
-
end
|
package/android/build.gradle
DELETED
|
@@ -1,67 +0,0 @@
|
|
|
1
|
-
buildscript {
|
|
2
|
-
ext.ExpoMarkdownNativeMarkdown = [
|
|
3
|
-
kotlinVersion: "2.0.21",
|
|
4
|
-
minSdkVersion: 24,
|
|
5
|
-
compileSdkVersion: 36,
|
|
6
|
-
targetSdkVersion: 36
|
|
7
|
-
]
|
|
8
|
-
|
|
9
|
-
ext.getExtOrDefault = { prop ->
|
|
10
|
-
if (rootProject.ext.has(prop)) {
|
|
11
|
-
return rootProject.ext.get(prop)
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
return ExpoMarkdownNativeMarkdown[prop]
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
repositories {
|
|
18
|
-
google()
|
|
19
|
-
mavenCentral()
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
dependencies {
|
|
23
|
-
classpath "com.android.tools.build:gradle:8.7.2"
|
|
24
|
-
// noinspection DifferentKotlinGradleVersion
|
|
25
|
-
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:${getExtOrDefault('kotlinVersion')}"
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
apply plugin: "com.android.library"
|
|
31
|
-
apply plugin: "kotlin-android"
|
|
32
|
-
|
|
33
|
-
apply plugin: "com.facebook.react"
|
|
34
|
-
|
|
35
|
-
android {
|
|
36
|
-
namespace "com.codearcade.expomarkdownnativemarkdown"
|
|
37
|
-
|
|
38
|
-
compileSdkVersion getExtOrDefault("compileSdkVersion")
|
|
39
|
-
|
|
40
|
-
defaultConfig {
|
|
41
|
-
minSdkVersion getExtOrDefault("minSdkVersion")
|
|
42
|
-
targetSdkVersion getExtOrDefault("targetSdkVersion")
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
buildFeatures {
|
|
46
|
-
buildConfig true
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
buildTypes {
|
|
50
|
-
release {
|
|
51
|
-
minifyEnabled false
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
lint {
|
|
56
|
-
disable "GradleCompatible"
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
compileOptions {
|
|
60
|
-
sourceCompatibility JavaVersion.VERSION_1_8
|
|
61
|
-
targetCompatibility JavaVersion.VERSION_1_8
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
dependencies {
|
|
66
|
-
implementation "com.facebook.react:react-android"
|
|
67
|
-
}
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
package com.codearcade.expomarkdownnativemarkdown
|
|
2
|
-
|
|
3
|
-
import com.facebook.react.BaseReactPackage
|
|
4
|
-
import com.facebook.react.bridge.NativeModule
|
|
5
|
-
import com.facebook.react.bridge.ReactApplicationContext
|
|
6
|
-
import com.facebook.react.module.model.ReactModuleInfoProvider
|
|
7
|
-
import com.facebook.react.uimanager.ViewManager
|
|
8
|
-
|
|
9
|
-
class ExpoMarkdownNativeMarkdownViewPackage : BaseReactPackage() {
|
|
10
|
-
override fun createViewManagers(reactContext: ReactApplicationContext): List<ViewManager<*, *>> {
|
|
11
|
-
return listOf(ExpoMarkdownNativeMarkdownViewManager())
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
override fun getModule(name: String, reactContext: ReactApplicationContext): NativeModule? = null
|
|
15
|
-
|
|
16
|
-
override fun getReactModuleInfoProvider() = ReactModuleInfoProvider { emptyMap() }
|
|
17
|
-
}
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
package com.codearcade.expomarkdownnativemarkdown
|
|
2
|
-
|
|
3
|
-
import android.content.Context
|
|
4
|
-
import android.util.AttributeSet
|
|
5
|
-
import android.view.View
|
|
6
|
-
|
|
7
|
-
class ExpoMarkdownNativeMarkdownView : View {
|
|
8
|
-
constructor(context: Context?) : super(context)
|
|
9
|
-
constructor(context: Context?, attrs: AttributeSet?) : super(context, attrs)
|
|
10
|
-
constructor(context: Context?, attrs: AttributeSet?, defStyleAttr: Int) : super(
|
|
11
|
-
context,
|
|
12
|
-
attrs,
|
|
13
|
-
defStyleAttr
|
|
14
|
-
)
|
|
15
|
-
}
|
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
package com.codearcade.expomarkdownnativemarkdown
|
|
2
|
-
|
|
3
|
-
import android.graphics.Color
|
|
4
|
-
import com.facebook.react.module.annotations.ReactModule
|
|
5
|
-
import com.facebook.react.uimanager.SimpleViewManager
|
|
6
|
-
import com.facebook.react.uimanager.ThemedReactContext
|
|
7
|
-
import com.facebook.react.uimanager.ViewManagerDelegate
|
|
8
|
-
import com.facebook.react.uimanager.annotations.ReactProp
|
|
9
|
-
import com.facebook.react.viewmanagers.ExpoMarkdownNativeMarkdownViewManagerInterface
|
|
10
|
-
import com.facebook.react.viewmanagers.ExpoMarkdownNativeMarkdownViewManagerDelegate
|
|
11
|
-
|
|
12
|
-
@ReactModule(name = ExpoMarkdownNativeMarkdownViewManager.NAME)
|
|
13
|
-
class ExpoMarkdownNativeMarkdownViewManager : SimpleViewManager<ExpoMarkdownNativeMarkdownView>(),
|
|
14
|
-
ExpoMarkdownNativeMarkdownViewManagerInterface<ExpoMarkdownNativeMarkdownView> {
|
|
15
|
-
private val mDelegate: ViewManagerDelegate<ExpoMarkdownNativeMarkdownView>
|
|
16
|
-
|
|
17
|
-
init {
|
|
18
|
-
mDelegate = ExpoMarkdownNativeMarkdownViewManagerDelegate(this)
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
override fun getDelegate(): ViewManagerDelegate<ExpoMarkdownNativeMarkdownView>? {
|
|
22
|
-
return mDelegate
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
override fun getName(): String {
|
|
26
|
-
return NAME
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
public override fun createViewInstance(context: ThemedReactContext): ExpoMarkdownNativeMarkdownView {
|
|
30
|
-
return ExpoMarkdownNativeMarkdownView(context)
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
@ReactProp(name = "color")
|
|
34
|
-
override fun setColor(view: ExpoMarkdownNativeMarkdownView?, color: Int?) {
|
|
35
|
-
view?.setBackgroundColor(color ?: Color.TRANSPARENT)
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
companion object {
|
|
39
|
-
const val NAME = "ExpoMarkdownNativeMarkdownView"
|
|
40
|
-
}
|
|
41
|
-
}
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
#import <React/RCTViewComponentView.h>
|
|
2
|
-
#import <UIKit/UIKit.h>
|
|
3
|
-
|
|
4
|
-
#ifndef ExpoMarkdownNativeMarkdownViewNativeComponent_h
|
|
5
|
-
#define ExpoMarkdownNativeMarkdownViewNativeComponent_h
|
|
6
|
-
|
|
7
|
-
NS_ASSUME_NONNULL_BEGIN
|
|
8
|
-
|
|
9
|
-
@interface ExpoMarkdownNativeMarkdownView : RCTViewComponentView
|
|
10
|
-
@end
|
|
11
|
-
|
|
12
|
-
NS_ASSUME_NONNULL_END
|
|
13
|
-
|
|
14
|
-
#endif /* ExpoMarkdownNativeMarkdownViewNativeComponent_h */
|
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
#import "ExpoMarkdownNativeMarkdownView.h"
|
|
2
|
-
|
|
3
|
-
#import <React/RCTConversions.h>
|
|
4
|
-
|
|
5
|
-
#import <react/renderer/components/ExpoMarkdownNativeMarkdownViewSpec/ComponentDescriptors.h>
|
|
6
|
-
#import <react/renderer/components/ExpoMarkdownNativeMarkdownViewSpec/Props.h>
|
|
7
|
-
#import <react/renderer/components/ExpoMarkdownNativeMarkdownViewSpec/RCTComponentViewHelpers.h>
|
|
8
|
-
|
|
9
|
-
#import "RCTFabricComponentsPlugins.h"
|
|
10
|
-
|
|
11
|
-
using namespace facebook::react;
|
|
12
|
-
|
|
13
|
-
@implementation ExpoMarkdownNativeMarkdownView {
|
|
14
|
-
UIView * _view;
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
+ (ComponentDescriptorProvider)componentDescriptorProvider
|
|
18
|
-
{
|
|
19
|
-
return concreteComponentDescriptorProvider<ExpoMarkdownNativeMarkdownViewComponentDescriptor>();
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
- (instancetype)initWithFrame:(CGRect)frame
|
|
23
|
-
{
|
|
24
|
-
if (self = [super initWithFrame:frame]) {
|
|
25
|
-
static const auto defaultProps = std::make_shared<const ExpoMarkdownNativeMarkdownViewProps>();
|
|
26
|
-
_props = defaultProps;
|
|
27
|
-
|
|
28
|
-
_view = [[UIView alloc] init];
|
|
29
|
-
|
|
30
|
-
self.contentView = _view;
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
return self;
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
- (void)updateProps:(Props::Shared const &)props oldProps:(Props::Shared const &)oldProps
|
|
37
|
-
{
|
|
38
|
-
const auto &oldViewProps = *std::static_pointer_cast<ExpoMarkdownNativeMarkdownViewProps const>(_props);
|
|
39
|
-
const auto &newViewProps = *std::static_pointer_cast<ExpoMarkdownNativeMarkdownViewProps const>(props);
|
|
40
|
-
|
|
41
|
-
if (oldViewProps.color != newViewProps.color) {
|
|
42
|
-
[_view setBackgroundColor: RCTUIColorFromSharedColor(newViewProps.color)];
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
[super updateProps:props oldProps:oldProps];
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
@end
|