2016-08-24 15 views
6

Tôi đang tạo ứng dụng Sáng bóng với một số HTML được tạo động, bao gồm liên kết ở giữa câu. Thật không may nếu tôi sử dụng các chức năng tags để làm điều này, mọi phần tử đều có khoảng trống xung quanh nó cho dù tôi có muốn hay không.Làm tổ sáng bóng liên kết trong một đoạn có khoảng trắng không mong muốn

Ví dụ, nếu tôi muốn viết

Đây là favorite link ever của tôi!

Người ta có thể nghĩ rằng bạn có thể làm điều này

p('This is my ', a(href = 'https://stackoverflow.com/', 'favorite link ever'), '!') 

Nhưng kết quả này trong mỗi phần tử là trên một dòng riêng biệt, mà theo spec HTML nghĩa là sẽ có một không gian render giữa mỗi.

<p> 
    This is my 
    <a href="https://stackoverflow.com/">favorite link ever</a> 
    ! 
</p> 

nào trông như thế này (lưu ý không gian trước dấu chấm than)

Đây là favorite link ever của tôi!

Tôi có phải sử dụng HTML(paste0(...)) để tạo HTML hoặc có một số kỹ thuật sử dụng các chức năng tags mà tôi đang thiếu không?

Cảm ơn ..

Trả lời

0

Tôi nghĩ bạn phải sử dụng dán. Nếu không lồng nhau sẽ không hoạt động như mong đợi.

div(p('hi'),p('what up'),p(HTML(paste0('This is my ',a(href = 'https://stackoverflow.com/', 'favorite link ever'),'!')))) 

Kết quả:

<div> 
    <p>hi</p> 
    <p>what up</p> 
    <p>This is my <a href="https://stackoverflow.com/">favorite link ever</a>!</p> 
</div> 

Bạn sẽ không muốn tất cả những người trên cùng một dòng.

Từ trợ giúp: Đối số được đặt tên trở thành thuộc tính và đối số vị trí sẽ trở thành trẻ em.

Sẽ phức tạp hơn nếu có đối số vị trí cũng đôi khi không phải là trẻ em; và có lẽ sẽ không đơn giản, linh hoạt và mạnh mẽ như chỉ xây dựng nó cho mình.

+0

1. Tại sao nhà phát triển Quảng cáo sử dụng chức năng của trình tạo HTML quan tâm nếu HTML kết quả là tất cả trên một dòng? Đối với tất cả chúng ta quan tâm, toàn bộ đầu ra có thể được giảm thiểu. 2. Ngay cả với việc giữ ngắt dòng, tôi không thấy bất kỳ lý do gì khiến chúng tôi không thể có một số chức năng đặt trẻ em trên các dòng riêng biệt và một số sẽ không - 'div' sẽ,' p' sẽ không, ví dụ. Tôi không nghĩ điều này đặc biệt phức tạp hay đáng ngạc nhiên. 3. Khi sử dụng nội dung được tạo động, các hàm trợ giúp thực sự tạo ra mã tìm kiếm sạch hơn nhiều so với việc dán HTML rõ ràng. Các hàm này tồn tại vì một lý do. –

+0

BTW, tôi thực sự nên thực hiện yêu cầu tính năng này vì hiện tại không có câu trả lời thực tế. Nguồn của vấn đề này tôi tin là ngược dòng trong gói 'htmltools', tại đây: https://github.com/rstudio/htmltools/blob/02678ee19192f406d1aa5c360916f54df09802a1/R/tags.R#L429 –

+0

Tôi đã viết vấn đề này như một vấn đề: https://github.com/rstudio/htmltools/issues/92 –

Các vấn đề liên quan