Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
  • Loading branch information
Jooseppi12 committed Jan 11, 2023
1 parent 3967b58 commit 19a6933
Show file tree
Hide file tree
Showing 6 changed files with 39 additions and 13 deletions.
6 changes: 6 additions & 0 deletions WebSharper.UI.Templating.Runtime/DynamicTemplate.fs
Original file line number Diff line number Diff line change
Expand Up @@ -23,3 +23,9 @@ namespace WebSharper.UI.Templating
/// Fill more holes with .With() and finish it with .Doc().
type DynamicTemplate(html: string) =
inherit Runtime.Server.ProviderBuilder(html)

#if !IS_DESIGNTIME
// Put the TypeProviderAssemblyAttribute in the runtime DLL, pointing to the design-time DLL
[<assembly:CompilerServices.TypeProviderAssembly("WebSharper.UI.Templating.DesignTime.dll")>]
do ()
#endif
4 changes: 2 additions & 2 deletions WebSharper.UI.Templating.Runtime/Runtime.fs
Original file line number Diff line number Diff line change
Expand Up @@ -890,9 +890,9 @@ type Runtime private () =
ctx.Writer.WriteAttribute(k, v)
ctx.Writer.Write(HtmlTextWriter.TagRightChar)
for KeyValue(k, v) in attrHoles do
writeElement false true k v None [||]
writeElement false true k v None [||] None
for KeyValue(k, v) in contentHoles do
writeElement false true k [||] None v
writeElement false true k [||] None v None
textHole |> Option.iter ctx.Writer.WriteEncodedText
ctx.Writer.WriteEndTag(tagName)
Array.iter (fun t -> writeNode None plain t) template.Value
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
<WebSharperProject>Library</WebSharperProject>
<WebSharperSourceMap>false</WebSharperSourceMap>
<GenerateDocumentationFile>true</GenerateDocumentationFile>
<CopyLocalLockFileAssemblies>true</CopyLocalLockFileAssemblies>
<NoWarn>3218;3186</NoWarn>
</PropertyGroup>
<ItemGroup>
Expand All @@ -15,6 +16,10 @@
<ItemGroup>
<ProjectReference Include="../WebSharper.UI\WebSharper.UI.fsproj" />
<ProjectReference Include="../WebSharper.UI.Templating.Common\WebSharper.UI.Templating.Common.fsproj" />
<ProjectReference Include="../WebSharper.UI.Templating/WebSharper.UI.Templating.fsproj">
<IsFSharpDesignTimeProvider>true</IsFSharpDesignTimeProvider>
<PrivateAssets>all</PrivateAssets>
</ProjectReference>
</ItemGroup>
<Import Project="..\paket-files\wsbuild\github.com\dotnet-websharper\build-script\WebSharper.Fake.targets" Condition="Exists('..\paket-files\wsbuild\github.com\dotnet-websharper\build-script\WebSharper.Fake.targets')" />
<Import Project="..\.paket\Paket.Restore.targets" />
Expand Down
7 changes: 2 additions & 5 deletions WebSharper.UI.Templating/TemplatingProvider.fs
Original file line number Diff line number Diff line change
Expand Up @@ -705,7 +705,7 @@ type FileWatcher (invalidate: unit -> unit, disposing: IEvent<EventHandler, Even
/// `serverLoad`: Decide how the HTML is loaded when the template is used on the server side, default is WhenChanged.
/// `legacyMode`: Use WebSharper 3 or WebSharper 4+ templating engine or both, default is Both.
type TemplatingProvider (cfg: TypeProviderConfig) as this =
inherit TypeProviderForNamespaces(cfg)
inherit TypeProviderForNamespaces(cfg, assemblyReplacementMap=["WebSharper.UI.Templating.DesignTime","WebSharper.UI.Templating.Runtime"], addDefaultProbingLocation = true)

let thisAssembly = Assembly.GetExecutingAssembly()
let rootNamespace = "WebSharper.UI.Templating"
Expand Down Expand Up @@ -787,7 +787,4 @@ type TemplatingProvider (cfg: TypeProviderConfig) as this =
| Some f -> Assembly.LoadFrom f
| None ->
//eprintfn "Type provider didn't find assembly: %s" args.Name
null

[<assembly:TypeProviderAssembly>]
do ()
null
7 changes: 5 additions & 2 deletions WebSharper.UI.Templating/WebSharper.UI.Templating.fsproj
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,9 @@
<WebSharperProject>Library</WebSharperProject>
<WebSharperSourceMap>false</WebSharperSourceMap>
<GenerateDocumentationFile>true</GenerateDocumentationFile>
<DefineConstants>NO_GENERATIVE</DefineConstants>
<DefineConstants>NO_GENERATIVE;IS_DESIGNTIME</DefineConstants>
<AssemblyName>WebSharper.UI.Templating.DesignTime</AssemblyName>
<CopyLocalLockFileAssemblies>true</CopyLocalLockFileAssemblies>
<NoWarn>3218;3186</NoWarn>
</PropertyGroup>
<ItemGroup>
Expand All @@ -15,14 +17,15 @@
<Compile Include="../paket-files/fsprojects/FSharp.TypeProviders.SDK/src/ProvidedTypes.fs">
<Link>ProvidedTypes.fs</Link>
</Compile>
<Compile Include="../WebSharper.UI.Templating.Runtime/Runtime.fs" />
<Compile Include="../WebSharper.UI.Templating.Runtime/RuntimeClient.fs" />
<Compile Include="ProvidedTypesContextFunc.fs" />
<Compile Include="OldProvider.fs" />
<Compile Include="TemplatingProvider.fs" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="../WebSharper.UI\WebSharper.UI.fsproj" />
<ProjectReference Include="../WebSharper.UI.Templating.Common\WebSharper.UI.Templating.Common.fsproj" />
<ProjectReference Include="../WebSharper.UI.Templating.Runtime\WebSharper.UI.Templating.Runtime.fsproj" />
</ItemGroup>
<Import Project="..\paket-files\wsbuild\github.com\dotnet-websharper\build-script\WebSharper.Fake.targets" Condition="Exists('..\paket-files\wsbuild\github.com\dotnet-websharper\build-script\WebSharper.Fake.targets')" />
<Import Project="..\.paket\Paket.Restore.targets" />
Expand Down
23 changes: 19 additions & 4 deletions nuget/WebSharper.UI.paket.template
Original file line number Diff line number Diff line change
Expand Up @@ -19,10 +19,25 @@ files
../WebSharper.UI/bin/Release/netstandard2.0/WebSharper.UI.xml ==> lib/netstandard2.0
../WebSharper.UI.Templating/bin/Release/netstandard2.0/WebSharper.UI.Templating.Common.dll ==> lib/netstandard2.0
../WebSharper.UI.Templating/bin/Release/netstandard2.0/WebSharper.UI.Templating.Common.xml ==> lib/netstandard2.0
../WebSharper.UI.Templating/bin/Release/netstandard2.0/WebSharper.UI.Templating.Runtime.dll ==> lib/netstandard2.0
../WebSharper.UI.Templating/bin/Release/netstandard2.0/WebSharper.UI.Templating.Runtime.xml ==> lib/netstandard2.0
../WebSharper.UI.Templating/bin/Release/netstandard2.0/WebSharper.UI.Templating.dll ==> lib/netstandard2.0
../WebSharper.UI.Templating/bin/Release/netstandard2.0/WebSharper.UI.Templating.xml ==> lib/netstandard2.0
../WebSharper.UI.Templating.Runtime/bin/Release/netstandard2.0/WebSharper.UI.Templating.Runtime.dll ==> lib/netstandard2.0
../WebSharper.UI.Templating.Runtime/bin/Release/netstandard2.0/WebSharper.UI.Templating.Runtime.xml ==> lib/netstandard2.0
../WebSharper.UI/bin/Release/netstandard2.0/WebSharper.UI.dll ==> typeproviders/fsharp41/netstandard2.0
../WebSharper.UI/bin/Release/netstandard2.0/WebSharper.UI.xml ==> typeproviders/fsharp41/netstandard2.0
../WebSharper.UI.Templating/bin/Release/netstandard2.0/WebSharper.UI.Templating.DesignTime.dll ==> typeproviders/fsharp41/netstandard2.0
../WebSharper.UI.Templating/bin/Release/netstandard2.0/WebSharper.UI.Templating.DesignTime.xml ==> typeproviders/fsharp41/netstandard2.0
../WebSharper.UI.Templating/bin/Release/netstandard2.0/WebSharper.UI.Templating.Common.dll ==> typeproviders/fsharp41/netstandard2.0
../WebSharper.UI.Templating/bin/Release/netstandard2.0/WebSharper.UI.Templating.Common.xml ==> typeproviders/fsharp41/netstandard2.0
../WebSharper.UI.Templating/bin/Release/netstandard2.0/HtmlAgilityPack.dll ==> typeproviders/fsharp41/netstandard2.0
../WebSharper.UI.Templating/bin/Release/netstandard2.0/WebSharper.Collections.dll ==> typeproviders/fsharp41/netstandard2.0
../WebSharper.UI.Templating/bin/Release/netstandard2.0/WebSharper.Control.dll ==> typeproviders/fsharp41/netstandard2.0
../WebSharper.UI.Templating/bin/Release/netstandard2.0/WebSharper.Core.dll ==> typeproviders/fsharp41/netstandard2.0
../WebSharper.UI.Templating/bin/Release/netstandard2.0/WebSharper.Core.JavaScript.dll ==> typeproviders/fsharp41/netstandard2.0
../WebSharper.UI.Templating/bin/Release/netstandard2.0/WebSharper.InterfaceGenerator.dll ==> typeproviders/fsharp41/netstandard2.0
../WebSharper.UI.Templating/bin/Release/netstandard2.0/WebSharper.JavaScript.dll ==> typeproviders/fsharp41/netstandard2.0
../WebSharper.UI.Templating/bin/Release/netstandard2.0/WebSharper.Main.dll ==> typeproviders/fsharp41/netstandard2.0
../WebSharper.UI.Templating/bin/Release/netstandard2.0/WebSharper.Sitelets.dll ==> typeproviders/fsharp41/netstandard2.0
../WebSharper.UI.Templating/bin/Release/netstandard2.0/WebSharper.Web.dll ==> typeproviders/fsharp41/netstandard2.0

references
WebSharper.UI.dll
WebSharper.UI.Templating.Common.dll
Expand Down

0 comments on commit 19a6933

Please sign in to comment.