test_that("anchor links with duplicate id and text are not doubled", {
# https://github.com/ropensci/tinkr/issues/92
lines <- c("[thing]", "lala[^1] blabla", "", "[thing]: what", "[^1]: pof")
temp_file <- withr::local_tempfile()
writeLines(lines, temp_file)
res <- tinkr::yarn$new(temp_file)$show()
expect_equal(res[res != ""], lines[lines != ""])
#> [thing] lala[^1] blabla
#>
#> [thing]: what
#> [^1]: pof
})
test_that("anchored links are processed by default", {
f <- system.file("extdata", "link-test.md", package = "tinkr")
m <- yarn$new(f, sourcepos = TRUE)
expect_snapshot(show_user(m$show(), force = TRUE))
})
test_that("users can turn off anchor links", {
f <- system.file("extdata", "link-test.md", package = "tinkr")
m <- yarn$new(f, sourcepos = TRUE, anchor_links = FALSE)
expect_snapshot(show_user(m$show(), force = TRUE))
})
test_that("links can go round trip", {
f <- system.file("extdata", "link-test.md", package = "tinkr")
m <- yarn$new(f)
tmp <- withr::local_tempfile()
m$write(tmp)
mt <- yarn$new(tmp)
expect_equal(m$show(), mt$show())
})
test_that("singluar nodes can be added to the body", {
f <- system.file("extdata", "link-test.md", package = "tinkr")
m <- yarn$new(f)
node1 <- build_anchor_links("[a]: b 'c'")[[1]]
node2 <- build_anchor_links("[A]: B 'C'")[[1]]
# add node1 at the top of the body
add_nodes_to_body(m$body, node1)
buddy <- copy_xml(m$body)
buddy_node1 <- xml2::xml_find_first(buddy, ".//md:link", md_ns())
expect_equal(xml2::xml_text(buddy_node1), "a")
expect_equal(xml2::xml_attr(buddy_node1, "anchor"), "true")
# add node2 after node1
add_node_siblings(buddy_node1, node2, remove = FALSE)
buddy <- copy_xml(buddy)
buddy_node2 <- xml2::xml_find_all(buddy, ".//md:link", md_ns())[[2]]
expect_equal(xml2::xml_text(buddy_node2), "A")
expect_equal(xml2::xml_attr(buddy_node2, "anchor"), "true")
})
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.